Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zakres wpisów tajnych obszaru roboczego to nazwana kolekcja sekretów w jednym obszarze roboczym. Uprawnienia zakresu wpisów tajnych określają, kto może czytać, zapisywać i zarządzać wpisami tajnymi w tym zakresie. Uprawnienia dotyczą całego scope, a nie pojedynczych sekretów, więc użytkownik, który potrafi odczytać jeden sekret w scope, może przeczytać wszystkie. Aby porównać zakres sekretów przestrzeni roboczej z sekretami Unity Catalog, zobacz Wybierz miejsce, gdzie przechowywać sekret.
Aby użyć tajnego zakresu przestrzeni roboczej:
- Utwórz zakres tajny.
- Dodaj sekrety do tego zakresu.
- Udziel uprawnień do zakresu.
- Odwołuj się do sekretów w swoim kodzie lub w właściwościach konfiguracji Spark bądź zmiennej środowiskowej. ** Zobacz Używanie sekretu w właściwości konfiguracji Spark lub zmiennej środowiskowej.
Warning
Administratorzy przestrzeni roboczej, twórcy sekretów oraz użytkownicy, którym przyznano uprawnienia, mogą uzyskać dostęp do sekretów Azure Databricks i je odczytać. Chociaż Azure Databricks próbuje maskować tajne wartości w danych wyjściowych notesów, nie jest możliwe całkowite uniemożliwienie tym użytkownikom przeglądania tajnych treści. Zawsze należy ostrożnie przypisywać tajne uprawnienia dostępu, aby chronić poufne informacje.
Zarządzanie tajnymi zakresami
Azure Databricks zaleca dopasowywanie zakresów wpisów tajnych do ról lub aplikacji, a nie do poszczególnych osób.
Istnieją dwa typy zakresu tajnego:
- Oparte na usłudze Azure Key Vault: możesz odwoływać się do wpisów tajnych przechowywanych w usłudze Azure Key Vault przy użyciu zakresów wpisów tajnych opartych na usłudze Azure Key Vault. Zakres wpisów tajnych oparty na Azure Key Vault to interfejs tylko do odczytu do Key Vault. Zarządzasz jego wpisami tajnymi na platformie Azure.
- Obsługiwane przez Databricks: Zakres tajnych wpisów obsługiwany przez Databricks jest przechowywany w zaszyfrowanej bazie danych należącej do oraz zarządzanej przez Azure Databricks.
Important
Zakresy wpisów tajnych oparte na usłudze Azure Key Vault obsługują tylko model uprawnień zasad dostępu do magazynu, a nie mechanizm Azure role-based access control (RBAC). Nowe magazyny kluczy Azure domyślnie używają Azure RBAC. Jeśli Twój magazyn kluczy korzysta z Azure RBAC, zmień jego model uprawnień na zasady dostępu do magazynu przed utworzeniem zakresu wpisów tajnych zabezpieczonego przez Azure Key Vault.
Po utworzeniu zakresu wpisu tajnego można przypisać uprawnienia, aby przyznać użytkownikom dostęp do zakresów wpisów tajnych odczytu, zapisu i zarządzania nimi.
Tworzenie zakresu sekretów opartego na usłudze Azure Key Vault
Utwórz zakres wpisów tajnych obsługiwany przez Azure Key Vault w portalu Azure oraz w interfejsie użytkownika obszaru roboczego Azure Databricks. Możesz też użyć CLI Databricks.
Requirements
- Musisz posiadać instancję usługi Azure Key Vault. Jeśli nie masz wystąpienia magazynu kluczy, postępuj zgodnie z instrukcjami w Tworzeniu magazynu kluczy za pomocą portalu Azure.
- Musisz mieć rolę Key Vault Contributor, Contributor lub Owner w wystąpieniu usługi Azure Key Vault, którego chcesz użyć do obsługi zakresu tajnego.
Uwaga / Notatka
Tworzenie zakresu sekretów opartego na magazynie kluczy usługi Azure Key Vault wymaga roli współautora lub właściciela wystąpienia magazynu kluczy, nawet jeśli usługa Azure Databricks miała wcześniej przyznany dostęp do magazynu kluczy.
Jeśli sejf kluczy znajduje się w innej dzierżawie niż obszar roboczy Azure Databricks, użytkownik Microsoft Entra ID, który tworzy zakres wpisów tajnych, musi mieć uprawnienia do tworzenia jednostek usługi w dzierżawie sejfu kluczy. W przeciwnym razie wystąpi następujący błąd:
Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}
Skonfiguruj instancję usługi Azure Key Vault dla usługi Azure Databricks
Zaloguj się do portalu Azure, znajdź i wybierz instancję Azure key vault.
W obszarze Ustawienia kliknij kartę Konfiguracja dostępu.
Ustaw model uprawnień
na zasady dostępu Vault . Nowe magazyny kluczy domyślnie używają kontroli dostępu opartej na rolach Azure, których nie obsługują zakresy wpisów tajnych oparte na Azure Key Vault.Uwaga / Notatka
Tworzenie zakresu wpisów tajnych opartych na Azure Key Vault zapewnia uprawnienia Pobierz i Wyświetl do identyfikatora aplikacji dla usługi Azure Databricks przy użyciu zasad dostępu do magazynu.
W obszarze Ustawienia wybierz pozycję Sieć.
W Zapory i sieci wirtualne ustawić Zezwalaj na dostęp z:Zezwalaj na dostęp publiczny z określonych sieci wirtualnych i adresów IP.
W obszarze Wyjątek zaznacz pole wyboru Zezwalaj na obejście tej zapory przez zaufane usługi firmy Microsoft.
Uwaga / Notatka
Można również ustawić Zezwalaj na dostęp z: na Zezwalaj na dostęp publiczny ze wszystkich sieci.
Tworzenie zakresu tajemnic zabezpieczonego przez Azure Key Vault
Przejdź do
https://<databricks-instance>#secrets/createScope. Zastąp ciąg<databricks-instance>adresem URL obszaru roboczego wdrożenia usługi Azure Databricks. Ten adres URL jest czuły na wielkość liter. Na przykładscopewcreateScopemusi używać wielkiej literyS.
Wprowadź nazwę zakresu tajnego. W tajnych nazwach zakresów wielkość liter nie ma znaczenia.
pl-PL: W Zarządzaj podmiotem zabezpieczeń wybierz pozycję Creator lub Wszyscy użytkownicy obszaru roboczego, aby określić użytkowników z uprawnieniami ZARZĄDZANIE w zakresie tajnym.
Uprawnienie ZARZĄDZANIE pozwala użytkownikom na odczyt, zapis i udzielanie uprawnień w ramach zakresu. Twoje konto musi mieć plan Premium, aby wybrać pozycję Twórca.
Wprowadź nazwę DNS (na przykład
https://databrickskv.vault.azure.net/) i identyfikator zasobu, na przykład:/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKVTe właściwości są dostępne na karcie Ustawienia > Właściwości usługi Azure Key Vault w witrynie Azure Portal.
Kliknij pozycję Utwórz.
Użyj polecenia Databricks CLI
databricks secrets list-scopesdo sprawdzenia, czy zakres został utworzony pomyślnie.
Utwórz zakres tajemnic oparty na Databricks
Utwórz zakres wpisów tajnych za pomocą CLI Databricks (wersja 0.205 i nowsza) lub Secrets API.
Nazwy tajnych zakresów
- Musi być unikatowa w obszarze roboczym.
- Musi składać się ze znaków alfanumerycznych, kresek, podkreśleń
@i kropek, a nie może przekraczać 128 znaków. - Są niewrażliwe na wielkość liter.
Nazwy tajnych zakresów są uznawane za niewrażliwe i są widoczne dla wszystkich użytkowników w obszarze roboczym.
Aby utworzyć zakres przy użyciu interfejsu wiersza polecenia usługi Databricks:
databricks secrets create-scope <scope-name>
Domyślnie zakresy są tworzone z uprawnieniem ZARZĄDZAJ dla użytkownika, który utworzył zakres. Po utworzeniu zakresu tajemnic opartych na Databricks, można do niego dodać tajemnice.
Wylistuj tajne zakresy
Aby wyświetlić listę istniejących zakresów w obszarze roboczym przy użyciu interfejsu wiersza polecenia:
databricks secrets list-scopes
Można również wyświetlać tajne zakresy przy użyciu interfejsu API Secrets.
Usuń zakres tajny
Usunięcie zakresu tajnego powoduje usunięcie wszystkich wpisów tajnych i list ACL zastosowanych w tym zakresie. Aby usunąć zakres przy użyciu interfejsu wiersza polecenia, uruchom następujące polecenie:
databricks secrets delete-scope <scope-name>
Zakres tajny można również usunąć przy użyciu API do wpisów tajnych.
Zarządzanie sekretami
Sekret to para klucz-wartość, która przechowuje poufne materiały, posługując się nazwą klucza, która jest niepowtarzalna w obrębie zakresu sekretnych.
Metoda tworzenia tajemnicy zależy od tego, czy używasz zakresu z usługi Azure Key Vault, czy zakresu z usługi Databricks.
Utwórz sekret w zakresie opartym na Azure Key Vault
Aby utworzyć tajny w usłudze Azure Key Vault, użyj Azure Portal lub interfejsu API REST Azure Set Secret.
Utwórz sekret w zakresie wspieranym przez Databricks
Stwórz sekret za pomocą Databricks CLI (wersja 0.205 i wyższa), Databricks SDK dla Python w notatniku lub Secrets API. Nazwy tajne są nieczułe na wielkość liter.
Databricks CLI
Podczas tworzenia sekretu w zakresie obsługiwanym przez Databricks można określić jego wartość na jeden z trzech sposobów:
- Określ wartość jako ciąg znaków z flagą
--string-value. - Wprowadź hasło, gdy pojawi się interaktywny monit (hasła w formie jednowierszowej).
- Przekaż tajne dane przy użyciu standardowego wejścia (tajne dane wielowierszowe).
Na przykład:
databricks secrets put-secret --json '{
"scope": "<scope-name>",
"key": "<key-name>",
"string_value": "<secret>"
}'
Jeśli tworzysz wpis tajny wielowierszowy, możesz przekazać wpis tajny przy użyciu standardowych danych wejściowych. Na przykład:
(cat << EOF
this
is
a
multi
line
secret
EOF
) | databricks secrets put-secret <scope-name> <key-name>
Zestaw SDK usługi Databricks dla języka Python
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.secrets.put_secret("<secret_scope>","<key-name>",string_value ="<secret>")
Przeczytać sekret
Przeczytaj sekret za pomocą Databricks CLI (wersja 0.205 i wyższa) lub w notatniku z narzędziem Secrets (dbutils.secrets).
Databricks CLI
Aby odczytać wartość sekretu za pomocą CLI Databricks, musisz odkodować wartość zakodowaną w base64. Możesz użyć jq do wyodrębnienia wartości i base64 --decode do jej zdekodowania.
databricks secrets get-secret <scope-name> <key-name> | jq -r .value | base64 --decode
Narzędzie Secrets (dbutils.secrets)
password = dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")
Lista tajemnic
Aby wylistować tajemnice w danym zakresie:
databricks secrets list-secrets <scope-name>
Odpowiedź pokazuje metadane dotyczące sekretów, takie jak ich nazwy kluczy. Aby wyświetlić te metadane w notesie lub zadaniu, użyj narzędzia Secrets (dbutils.secrets). Na przykład:
dbutils.secrets.list('my-scope')
Usuń sekret
Aby usunąć sekret z zakresu przy użyciu Databricks CLI:
databricks secrets delete-secret <scope-name> <key-name>
Możesz również użyć interfejsu Secrets API.
Aby usunąć sekret z zakresu wspieranego przez Azure Key Vault, wykorzystaj interfejs API REST Azure SetSecret lub Portal Azure.
Zarządzanie uprawnieniami zakresu tajnego
Domyślnie użytkownik, który tworzy zakres wpisów tajnych, ma do niego uprawnienie MANAGE, które pozwala mu odczytywać wpisy tajne w zakresie, zapisywać do niego wpisy tajne oraz zarządzać jego uprawnieniami.
Uwaga / Notatka
Tajne listy ACL znajdują się na poziomie zakresu. Jeśli używasz zakresów wspieranych przez Azure Key Vault, użytkownicy, którym udzielono dostępu do zakresu, mają dostęp do wszystkich tajemnic w Azure Key Vault. Aby ograniczyć dostęp, użyj oddzielnych wystąpień usługi Azure Key Vault.
Zarządzaj uprawnieniami zakresu wpisów tajnych za pomocą Databricks CLI (wersja 0.205 i wyższa) lub Secrets API. Poziomy uprawnień Secret znajdziesz w Secret ACLs.
Przyznaj użytkownikowi uprawnienia do zakresu tajnego
Uwaga / Notatka
Przyznanie uprawnień w zakresie wpisów tajnych wymaga planu Premium.
Aby przyznać użytkownikowi uprawnienia do zakresu tajnego przy użyciu interfejsu wiersza polecenia Databricks:
databricks secrets put-acl <scope-name> <principal> <permission>
Wysyłanie żądania put dla głównego podmiotu, który ma już zastosowane uprawnienie, zastępuje istniejący poziom uprawnień.
Pole principal określa istniejący podmiot usługi Azure Databricks. Użytkownik jest określany za pomocą swojego adresu e-mail, usługa zasadnicza za pomocą jej wartości applicationId, a grupa za pomocą nazwy grupy. Aby uzyskać więcej informacji, zobacz Principal.
Na przykład, aby umożliwić grupie takiej jak datascience odczyt sekretów w zakresie, przyznaj jej READ:
databricks secrets put-acl <scope-name> <group> READ
Wyświetl uprawnienia tajnego zakresu
Aby wyświetlić wszystkie uprawnienia zakresu tajnego dla danego zakresu tajnego:
databricks secrets list-acls <scope-name>
Aby uzyskać uprawnienia sekretnego zakresu zastosowane do podmiotu dla danego zakresu:
databricks secrets get-acl <scope-name> <principal>
Jeśli dla danego podmiotu zabezpieczeń i zakresu nie istnieje żadna lista kontroli dostępu (ACL), żądanie zakończy się niepowodzeniem.
Usuń uprawnienie zakresu tajnego
Aby usunąć uprawnienie do zakresu tajnego przypisane do podmiotu w ramach danego zakresu tajnego:
databricks secrets delete-acl <scope-name> <principal>
Redagowanie tajne
Przechowywanie poświadczeń jako sekretów Azure Databricks pomaga je chronić podczas uruchamiania notatników i zadań. Jednak nadal możesz przypadkowo wydrukować sekret do standardowych buforów wyjściowych lub wyświetlić wartość podczas przypisywania zmiennej.
Aby temu zapobiec, Azure Databricks próbuje ukryć wartości wpisów tajnych, które są odczytywane przy użyciu dbutils.secrets.get() i do których odwołuje się we właściwości konfiguracji Spark. Po wyświetleniu wartości tajnych zostają zastąpione ciągiem [REDACTED].
Jeśli na przykład ustawisz zmienną na wartość tajną przy użyciu dbutils.secrets.get(), a następnie drukuj zmienną, ta zmienna jest zamieniana na [REDACTED].
Warning
Redagowanie ma zastosowanie tylko do dosłownych wartości tajnych. Funkcjonalność redagowania informacji tajnych nie zapobiega celowym i arbitralnym przekształceniom dosłownej treści tajnej. Aby kontrolować sekrety, użyj list kontroli dostępu (ACL) do ograniczania uprawnień do wykonywania poleceń. Zapobiega to nieautoryzowanemu dostępowi do kontekstów notesu udostępnionego.
Ukrywanie tajnych informacji w SQL
Azure Databricks próbuje ukryć wszystkie polecenia języka SQL Data Query Language (DQL), które wywołują funkcję sekretną, w tym widoki referencyjne i funkcje definiowane przez użytkownika. Gdy używana jest funkcja secret, dane wyjściowe są zastępowane [REDACTED] tam, gdzie to możliwe. Podobnie jak w przypadku redagowania notatnika, dotyczy to tylko wartości literałów, a nie przekształconych lub pośrednio odwołanych tajnych danych.
W przypadku poleceń SQL Data Manipulation Language (DML) Azure Databricks pozwala na wyszukiwanie sekretów, jeśli sekret jest uznawany za bezpieczny. Na przykład sekret jest bezpieczny, gdy jest owinięty w funkcję kryptograficzną, taką jak sha() lub aes_encrypt(), które zapobiegają przechowywaniu surowych wartości bez szyfrowania.
Walidacja wpisu tajnego w usłudze SQL
Usługa Azure Databricks stosuje również walidację w celu blokowania poleceń DML SQL, które mogą spowodować zapisanie niezaszyfrowanych wpisów tajnych w tabelach. Analizator zapytań próbuje zidentyfikować i zapobiec tym scenariuszom, co pomaga uniknąć przypadkowego przechowywania poufnych informacji w postaci zwykłego tekstu.
Dodatkowe zasoby
| Resource | Description |
|---|---|
| Zarządzanie sekretami | Porównaj zakresy wpisów tajnych obszaru roboczego z wpisami tajnymi Unity Catalog i zobacz, gdzie możesz ich używać. |
| Użyj sekretu w właściwości konfiguracji Spark lub zmiennej środowiskowej | Odwołania do wpisów tajnych we właściwościach konfiguracji Spark oraz zmiennych środowiskowych. |