Lernprogramm: Zugreifen auf Azure Blob Storage mit Azure Databricks und Azure Key Vault

In diesem Lernprogramm greifen Sie mithilfe eines in Azure Key Vault gespeicherten Speicherkontoschlüssels von Azure Databricks auf Azure Blob Storage zu.

Wichtig

Speicherkontoschlüsselzugriff ist ein Legacymuster. Verwenden Sie für neue Workloads mit Azure Databricks die Autorisierung mit Microsoft Entra ID (über Unity Catalog-Anmeldeinformationen oder eine ABFS-Einbindung, die OAuth verwendet), und deaktivieren Sie die Shared Key-Autorisierung für das Speicherkonto. Die Autorisierung mit Entra ID macht es überflüssig, Speicherkontoschlüssel zu speichern oder zu erneuern, und ermöglicht eine granulare Auditierung. Die Schritte in diesem Artikel bleiben gültig für Speicherkonten, die weiterhin den Zugriff auf gemeinsam genutzte Schlüssel verwenden.

In diesem Tutorial lernen Sie:

  • Erstellen Sie ein Speicherkonto und einen BLOB-Container mit dem Azure CLI.
  • Erstellen Sie eine Key Vault-Instanz und legen Sie ein Geheimnis fest.
  • Erstellen Sie einen Azure Databricks Arbeitsbereich, und fügen Sie einen Key Vault geheimen Bereich hinzu.
  • Greifen Sie über den Azure Databricks Arbeitsbereich auf Ihren BLOB-Container zu.

Voraussetzungen

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Bevor Sie dieses Lernprogramm starten, installieren Sie die Azure CLI.

Erstellen eines Speicherkontos und eines BLOB-Containers mit Azure CLI

Erstellen Sie ein allgemeines Speicherkonto, um Blobs zu verwenden. Wenn Sie nicht über eine Ressourcengruppe verfügen, erstellen Sie eine, bevor Sie den Befehl ausführen. Der folgende Befehl erstellt das Speicherkonto und zeigt dessen Metadaten an. Kopieren Sie den ID-Wert .

az storage account create --name <storage-account-name> --resource-group <resource-group> --location <location> --sku Standard_ZRS --encryption-services blob

Konsolenausgabe des obigen Befehls. Die ID ist grün hervorgehoben, damit Endbenutzer sehen können.

Bevor Sie einen Container für das Hochladen des Blobs erstellen, weisen Sie sich die Rolle Storage Blob Data Contributor zu. In diesem Beispiel wird die Rolle für das zuvor erstellte Speicherkonto zugewiesen.

az role assignment create --role "Storage Blob Data Contributor" --assignee <user-principal-name> --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>

Nachdem Sie die Rolle zugewiesen haben, erstellen Sie einen Container für Ihr Blob:

az storage container create --account-name <storage-account-name> --name <container-name> --auth-mode login

Nachdem der Container erstellt wurde, laden Sie ein BLOB (Datei Ihrer Wahl) darauf hoch. In diesem Beispiel wird eine .txt-Datei mit helloworld hochgeladen.

az storage blob upload --account-name <storage-account-name> --container-name <container-name> --name helloworld --file helloworld.txt --auth-mode login

Listet die Blobs im Container auf, um folgendes zu überprüfen:

az storage blob list --account-name <storage-account-name> --container-name <container-name> --output table --auth-mode login

Konsolenausgabe des obigen Befehls. Sie zeigt die Datei an, die gerade im Container gespeichert wurde.

Rufen Sie den Schlüssel1-Wert Ihres Speicherkontos mit dem folgenden Befehl ab. Kopieren Sie den Wert.

az storage account keys list -g <resource-group> -n <storage-account-name>

Konsolenausgabe des obigen Befehls. Der Wert von Key1 wird in einem grünen Feld hervorgehoben.

Erstellen Sie einen Schlüsseltresor, und legen Sie ein Geheimnis fest

Erstellen Sie einen Schlüsseltresor mit dem folgenden Befehl. Der Befehl zeigt auch die Metadaten des Schlüsseltresors an. Kopieren Sie die ID - und VaultUri-Werte .

az keyvault create --name <vault-name> --resource-group <resource-group> --location <location> --enable-rbac-authorization true --enable-purge-protection true

Bildschirmdarstellung der Konsolenausgabe des obigen Befehls. Sowohl die ID als auch der VaultUri sind grün hervorgehoben, damit der Benutzer sie leicht erkennen kann.

Verwenden Sie den folgenden Befehl, um den geheimen Schlüssel zu erstellen. Legen Sie den Wert des geheimen Schlüssels auf den Schlüssel1-Wert aus Ihrem Speicherkonto fest.

az keyvault secret set --vault-name <vault-name> --name storageKey --value "value of your key1"

Erstellen Sie einen Azure Databricks-Arbeitsbereich, und fügen Sie einen Key Vault-Geheimnisbereich hinzu

Für diesen Abschnitt ist das Azure Portal erforderlich. Verwenden Sie es zu folgenden Zwecken:

  1. Erstellen Sie Ihre Azure Databricks Ressource.
  2. Starten Sie Ihren Arbeitsbereich.
  3. Erstellen Sie einen Key Vault-basierten Geheimnisbereich.

Zugreifen auf Ihren BLOB-Container über den Azure Databricks-Arbeitsbereich

Dieser Abschnitt wird im Azure Databricks Arbeitsbereich abgeschlossen. Im Arbeitsbereich:

  1. Erstellen Sie einen neuen Cluster.
  2. Erstellen Sie ein neues Notizbuch.
  3. Füllen Sie die entsprechenden Felder im skript Python aus.
  4. Führen Sie das Python-Skript aus.
dbutils.fs.mount(
source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net",
mount_point = "/mnt/<mount-name>",
extra_configs = {"<conf-key>":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")})

df = spark.read.text("/mnt/<mount-name>/<file-name>")

df.show()

Nächste Schritte

Stellen Sie sicher, dass Ihr Key Vault wiederhergestellt werden kann: