Bereiche von Geheimnissen

Die Verwaltung von Geheimnissen beginnt mit dem Erstellen eines Geheimnisbereichs. Ein Geheimnisbereich ist eine Sammlung von Geheimnissen, die durch einen Namen identifiziert werden.

Ein Arbeitsbereich ist auf maximal 1.000 Geheimnisbereiche beschränkt. Wenden Sie sich an Ihr Azure Databricks-Supportteam, wenn Sie mehr brauchen.

Hinweis

Databricks empfiehlt, Geheimnisbereiche an Rollen oder Anwendungen statt an Einzelpersonen auszurichten.

Übersicht

Es gibt zwei Arten von Geheimnisbereichen: von Azure Key Vault und von Databricks unterstützt.

Von Azure Key Vault unterstützte Bereiche

Um auf Geheimnisse zu verweisen, die in einer Azure Key Vault-Instanz gespeichert sind, können Sie einen Geheimnisbereich erstellen, der von Azure Key Vault unterstützt wird. Sie können dann alle Geheimnisse in der entsprechenden Key Vault-Instanz aus diesem Geheimnisbereich nutzen. Da es sich bei dem von Azure Key Vault unterstützten Geheimnisbereich um eine schreibgeschützte Schnittstelle zu Key Vault handelt, sind die Vorgänge PutSecret und DeleteSecret der Geheimnis-API nicht zulässig. Für die Verwaltung von Geheimnissen in Azure Key Vault muss die Azure-REST-API Set Secret oder die Benutzeroberfläche des Azure-Portals verwendet werden.

Von Databricks unterstützte Bereiche

Ein von Databricks unterstützter Geheimnisbereich wird in einer verschlüsselten Datenbank gespeichert, die sich im Besitz von Azure Databricks befindet und von Azure Databricks verwaltet wird. Der Name des Geheimnisbereichs:

  • Muss innerhalb eines Arbeitsbereichs eindeutig sein.
  • Muss aus alphanumerischen Zeichen, Bindestrichen, Unterstrichen, @ und Punkten bestehen und darf 128 Zeichen nicht überschreiten.

Die Namen gelten als nicht vertraulich und sind für alle Benutzer im Arbeitsbereich lesbar.

Sie erstellen einen von Databricks unterstützten Geheimnisbereich mithilfe der Databricks-CLI (ab Version 0.205). Alternativ können Sie auch die Geheimnis-API verwenden.

Bereichsberechtigungen

Bereiche werden mit Berechtigungen erstellt, die von geheimen ACLs gesteuert werden. Standardmäßig werden Bereiche mit der MANAGE-Berechtigung für den Benutzer erstellt, der den Bereich erstellt hat (der „Ersteller“), wodurch der Ersteller Geheimnisse im Bereich lesen, Geheimnisse in den Bereich schreiben und ACLs für den Bereich ändern kann. Wenn Ihr Konto über den Premium-Plan verfügt, können Sie nach dem Erstellen des Bereichs jederzeit präzise Berechtigungen zuweisen. Weitere Informationen finden Sie unter Geheimnis-ACLs.

Sie können auch die Standardeinstellung außer Kraft setzen und allen Benutzern explizit die MANAGE-Berechtigung erteilen, wenn Sie den Bereich erstellen. Tatsächlich müssen Sie dies tun, wenn Ihr Konto nicht über den Premium-Plan verfügt.

Hinweis

Geheime ACLs befinden sich auf der Bereichsebene. Wenn Sie Azure Key Vault-gestützte Bereiche verwenden, haben Benutzer, denen Zugriff auf den Bereich gewährt wird, Zugriff auf alle Geheimnisse im Azure-Key Vault. Verwenden Sie separate Azure Key Vault-Instanzen, um den Zugriff einzuschränken.

Erstellen eines von Azure Key Vault unterstützten Geheimnisbereichs

In diesem Abschnitt wird beschrieben, wie Sie einen geheimen Azure Key Vault-gesicherten Bereich mithilfe des Azure-Portals und der Benutzeroberfläche des Azure Databricks-Arbeitsbereichs erstellen. Sie können einen von Azure Key Vault unterstützten Geheimnisbereich auch über die Databricks-CLI erstellen.

Anforderungen

  • Sie müssen über die Rolle „Key Vault-Mitwirkender“, „Mitwirkender“ oder „Besitzer“ für die Azure Key Vault-Instanz verfügen, die Sie zur Unterstützung des Geheimnisbereichs verwenden möchten.

    Wenn Sie nicht über eine Key Vault-Instanz verfügen, befolgen Sie die Anweisungen unter Festlegen eines Geheimnisses und Abrufen des Geheimnisses aus Azure Key Vault mithilfe des Azure-Portals.

    Hinweis

    Zum Erstellen eines von Azure Key Vault unterstützten Geheimnisbereichs ist die Rolle „Mitwirkender“ oder „Besitzer“ in der Azure Key Vault-Instanz erforderlich, auch wenn dem Azure Databricks-Dienst zuvor der Zugriff auf den Schlüsseltresor gewährt wurde.

    Wenn der Schlüsseltresor in einem anderen Mandanten als dem Azure Databricks-Arbeitsbereich vorhanden ist, muss der Azure AD-Benutzer, der den Geheimnisbereich erstellt, über die Berechtigung zum Erstellen von Dienstprinzipalen im Mandanten des Schlüsseltresors verfügen. Andernfalls tritt der folgende Fehler auf:

    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"}}
    

Konfigurieren Ihrer Azure Key Vault-Instanz für Azure Databricks

  1. Melden Sie sich beim Azure-Portal an, suchen Sie die Azure-Schlüsseltresorinstanz, und wählen Sie sie aus.

  2. Wählen Sie die Registerkarte Zugriffskonfiguration unter Einstellungen aus.

  3. Legen Sie das Berechtigungsmodell auf Tresorzugriffsrichtlinie fest.

    Hinweis

    Das Erstellen einer von Azure Key Vault unterstützten Geheimnisbereichsrolle gewährt die Berechtigungen Abrufen (Get) und Auflisten (List) der Anwendungs-ID für den Azure Databricks-Dienst mithilfe von Schlüsseltresor-Zugriffsrichtlinien. Das rollenbasierte Zugriffssteuerungsberechtigungsmodell in Azure wird derzeit mit Azure Databricks nicht unterstützt.

  4. Wählen Sie die Registerkarte Netzwerk unter Einstellungen aus.

  5. Legen Sie unter Firewalls und virtuelle Netzwerke die Option Zugriff zulassen von: fest, um den öffentlichen Zugriff von bestimmten virtuellen Netzwerken und IP-Adressen zuzulassen.

    Wählen Sie unter Ausnahme die Option Vertrauenswürdigen Microsoft-Diensten die Umgehung dieser Firewall erlauben aus.

    Hinweis

    Sie können auch für Zugriff erlauben von: die Option Öffentlichen Zugriff aus allen Netzwerken zulassen auswählen.

Erstellen eines von Azure Key Vault unterstützten Geheimnisbereichs

  1. Wechseln Sie zu https://<databricks-instance>#secrets/createScope. Ersetzen Sie <databricks-instance> durch die Arbeitsbereichs-URL Ihrer Azure Databricks-Bereitstellung. Bei dieser URL wird die Groß-/Kleinschreibung beachtet. (Der Bereich in createScope muss in Großbuchstaben geschrieben werden.)

    Bereich erstellen

  2. Geben Sie den Namen des Geheimnisbereichs ein. Bei Namen von Geheimnisbereichen wird Groß- und Kleinschreibung beachtet.

  3. Verwenden Sie das Dropdownfeld Prinzipal verwalten, um anzugeben, ob Alle Benutzer über die MANAGE-Berechtigung für diesen Geheimnisbereich verfügen, oder nur der Ersteller des Geheimnisbereichs (d. h. Sie).

    Die Berechtigung MANAGE ermöglicht Benutzern das Lesen und Schreiben in diesen Geheimnisbereich und im Fall von Konten im Premium-Plan auch das Ändern der Berechtigungen für den Bereich.

    Ihr Konto muss über den Premium-Plan verfügen, damit Sie Ersteller auswählen können. Dies ist der empfohlene Ansatz: Erteilen Sie die MANAGE-Berechtigung dem Ersteller, wenn Sie den Geheimnisbereich erstellen, und weisen Sie dann präzisere Zugriffsberechtigungen zu, nachdem Sie den Bereich getestet haben. Einen Beispielworkflow finden Sie unter Beispiel für einen Geheimnisworkflow.

    Wenn Ihr Konto über den Standard-Plan verfügt, müssen Sie die MANAGE-Berechtigung für die Gruppe „Alle Benutzer“ festlegen. Wenn Sie hier Ersteller auswählen, wird eine Fehlermeldung angezeigt, wenn Sie versuchen, den Bereich zu speichern.

    Weitere Informationen zur MANAGE-Berechtigung finden Sie unter Geheimnis-ACLs.

  4. Geben Sie den DNS-Namen (z. B. https://databrickskv.vault.azure.net/) und die Ressourcen-ID ein, z. B.:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Diese Eigenschaften sind auf der Registerkarte Eigenschaften einer Azure Key Vault-Instanz in Ihrem Azure-Portal verfügbar.

    Registerkarte „Eigenschaften“ in Azure Key Vault

  5. Klicken Sie auf die Schaltfläche Erstellen .

  6. Verwenden Sie den Databricks-CLI-Befehl databricks secrets list-scopes, um zu überprüfen, ob der Bereich erfolgreich erstellt wurde.

Erstellen eines von Databricks unterstützten Geheimnisbereichs

Bei Namen von Geheimnisbereichen wird Groß- und Kleinschreibung beachtet.

So erstellen Sie einen Bereich mithilfe der Databricks-Befehlszeilenschnittstelle:

databricks secrets create-scope <scope-name>

Standardmäßig werden Bereiche mit der MANAGE-Berechtigung für den Benutzer erstellt, der den Bereich erstellt hat. Wenn Ihr Konto nicht über den Premium-Plan verfügt, müssen Sie diesen Standard außer Kraft setzen und der Gruppe „Benutzer“ (alle Benutzer) explizit die MANAGE-Berechtigung zuweisen, wenn Sie den Bereich erstellen:

databricks secrets create-scope <scope-name> --initial-manage-principal users

Sie können auch mithilfe der Geheimnis-API einen von Databricks unterstützten Geheimnisbereich erstellen.

Wenn Ihr Konto über den Premium-Plan verfügt, können Sie nach dem Erstellen des Bereichs jederzeit Berechtigungen ändern. Weitere Informationen finden Sie unter Geheimnis-ACLs.

Nachdem Sie einen von Databricks unterstützten Geheimnisbereich erstellt haben, können Sie Geheimnisse hinzufügen.

Auflisten von Geheimnisbereichen

So listen Sie die vorhandenen Bereiche in einem Arbeitsbereich mithilfe der CLI auf:

databricks secrets list-scopes

Sie können vorhandene Bereiche auch mithilfe der Geheimnis-API auflisten.

Löschen eines Geheimnisbereichs

Beim Löschen eines Geheimnisbereichs werden alle Geheimnisse und ACLs gelöscht, die auf den Bereich angewendet werden. Führen Sie Folgendes aus, um einen Bereich mithilfe der CLI zu löschen:

databricks secrets delete-scope <scope-name>

Sie können Geheimbereiche auch mithilfe der Geheimnis-API löschen.