Freigeben über


Lernprogramm: Verwenden von Azure Key Vault mit einem virtuellen Computer in Python

Azure Key Vault hilft Ihnen, Schlüssel, geheime Schlüssel und Zertifikate wie API-Schlüssel und Datenbankverbindungszeichenfolgen zu schützen.

In diesem Lernprogramm richten Sie eine Python Anwendung ein, um Informationen aus Azure Key Vault mithilfe von verwalteten Identitäten für Azure Ressourcen zu lesen. Hier erfahren Sie, wie Sie:

  • Erstellen eines Schlüsseltresors
  • Speichern eines geheimen Schlüssels in Key Vault
  • Erstellen eines Azure virtuellen Linux-Computers
  • Aktivieren einer verwalteten Identität für den virtuellen Computer
  • Erteilen der erforderlichen Berechtigungen für die Konsolenanwendung zum Lesen von Daten aus Key Vault
  • Abrufen eines geheimen Schlüssels aus Key Vault

Lesen Sie vor Beginn Key Vault grundlegende Konzepte.

Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein free-Konto.

Voraussetzungen

Für Windows, Mac und Linux:

  • Git
  • In diesem Lernprogramm müssen Sie die Azure CLI lokal ausführen. Sie müssen eine aktuelle Version der Azure CLI installiert haben. Führen Sie az --version aus, um die Version zu ermitteln. Wenn Sie die CLI installieren oder aktualisieren müssen, lesen Sie Install Azure CLI.

Melden Sie sich bei Azure an

Um sich mit dem Azure CLI bei Azure anzumelden, geben Sie Folgendes ein:

az login

Erstellen einer Ressourcengruppe und eines Schlüsseltresors

In dieser Schnellstartanleitung wird ein vorkonfigurierter Azure Key Vault verwendet. Sie können einen Schlüsseltresor erstellen, indem Sie die Schritte in den folgenden Schnellstarts ausführen:

Alternativ können Sie diese Azure CLI oder Azure PowerShell Befehle ausführen.

Wichtig

Jeder Schlüsseltresor muss einen eindeutigen Namen haben. Ersetzen Sie in den folgenden Beispielen <vault-name> durch den Namen Ihres Schlüsseltresors.

az group create --name "myResourceGroup" -l "EastUS"

az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true

Einfügen eines Geheimnisses in Ihren Schlüsseltresor

Erstellen Sie ein Geheimnis mit dem Namen mySecret und dem Wert Success! . Ein Geheimer Schlüssel kann ein Kennwort, ein SQL-Verbindungszeichenfolge oder andere Informationen sein, die Sie benötigen, um sowohl sicher als auch für Ihre Anwendung verfügbar zu sein.

Fügen Sie Ihrem neu erstellten Schlüsseltresor mit dem folgenden Befehl ein Geheimnis hinzu:

az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"

Erstellen eines virtuellen Computers

Erstellen Sie mit einer der folgenden Methoden einen virtuellen Computer namens myVM:

Linux Windows
Azure CLI Azure CLI
PowerShell PowerShell
Azure Portal Das Azure Portal

Verwenden Sie den Befehl az vm create, um eine Linux-VM mit dem Azure CLI zu erstellen. Im folgenden Beispiel wird ein Benutzerkonto mit dem Namen azureuser hinzugefügt. Der Parameter --generate-ssh-keys wird genutzt, um automatisch einen SSH-Schlüssel zu generieren und am Speicherort für den Standardschlüssel abzulegen ( ~/.ssh).

az vm create \
  --resource-group <resource-group> \
  --name myVM \
  --image Ubuntu2204 \
  --admin-username azureuser \
  --generate-ssh-keys

Beachten Sie den Wert von publicIpAddress in der Ausgabe.

Zuweisen einer Identität zum virtuellen Computer

Erstellen Sie eine vom System zugewiesene Identität für den virtuellen Computer mithilfe des Befehls Azure CLI az vm identity assign:

az vm identity assign --name "myVM" --resource-group "<resource-group>"

Beachten Sie die systemseitig zugewiesene Identität, die im folgenden Code angezeigt wird. Die Ausgabe des obigen Befehls lautet etwa wie folgt:

{
  "systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "userAssignedIdentities": {}
}

Zuweisen von Berechtigungen für die VM-Identität

Um Berechtigungen für Ihren Schlüsseltresor über Role-Based Access Control (RBAC) zu erhalten, weisen Sie Ihrem Benutzerprinzipalnamen (User Principal Name, UPN) eine Rolle zu, mithilfe des Azure CLI-Befehls az role assignment create.

az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"

Ersetzen Sie <upn>, <subscription-id> und <vault-name> durch Ihre tatsächlichen Werte. Wenn Sie einen anderen Ressourcengruppennamen verwendet haben, ersetzen Sie auch "myResourceGroup". Ihr Benutzerprinzipalname (UPN) hat in der Regel das Format einer E-Mail-Adresse (z. B. username@domain.com).

Anmelden am virtuellen Computer

Um sich an der virtuellen Maschine anzumelden, folgen Sie den Anweisungen in Verbinden und Anmelden bei einer Azure-VM mit Linux oder Verbinden und Anmelden bei einer Azure-VM mit Windows.

Um sich bei einer Linux-VM anzumelden, können Sie den ssh-Befehl mit dem <public-ip-address> im Schritt " Erstellen eines virtuellen Computers " angegebenen Befehl verwenden:

ssh azureuser@<public-ip-address>

Installieren von Python Bibliotheken auf dem virtuellen Computer

Installieren Sie auf dem virtuellen Computer die beiden Python Bibliotheken, die wir in unserem Python Skript verwenden: azure-keyvault-secrets und azure-identity.

Auf einem virtuellen Linux-Computer können Sie diese beispielsweise mithilfe von pip3 installieren:

pip3 install azure-keyvault-secrets

pip3 install azure-identity

Erstellen und Bearbeiten des Beispielskripts Python

Erstellen Sie auf dem virtuellen Computer eine Python Datei namens sample.py. Bearbeiten Sie die Datei so, dass sie den folgenden Code enthält, und ersetzen Sie <vault-name> durch den Namen Ihres Schlüsseltresors.

from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential

key_vault_name = "<vault-name>"
key_vault_uri = f"https://{key_vault_name}.vault.azure.net"
secret_name = "mySecret"

credential = DefaultAzureCredential()
client = SecretClient(vault_url=key_vault_uri, credential=credential)
retrieved_secret = client.get_secret(secret_name)

print(f"The value of secret '{secret_name}' in '{key_vault_name}' is: '{retrieved_secret.value}'")

Ausführen der Beispiel-Python-App

Führen Sie abschließend sample.py aus. Wenn alles gut gelaufen ist, sollte der Wert Ihres Geheimnisses angezeigt werden.

python3 sample.py

The value of secret 'mySecret' in '<vault-name>' is: 'Success!'

Bereinigen von Ressourcen

Löschen Sie die VM und Ihren Schlüsseltresor, wenn diese nicht mehr benötigt werden. Das geht ganz schnell, indem Sie einfach die Ressourcengruppe löschen, zu der diese Elemente gehören:

az group delete -g "myResourceGroup"

Nächste Schritte

Azure Key Vault REST-API