Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hier finden Sie Informationen zu den ersten Schritten mit der Azure Key Vault-Geheimnisclientbibliothek für Python. Führen Sie die nachfolgenden Schritte aus, um das Paket zu installieren und den Beispielcode für grundlegende Aufgaben zu testen. Wenn Sie Key Vault zum Speichern von Geheimnissen verwenden, vermeiden Sie das Speichern von Geheimnissen im Code, was die Sicherheit Ihrer App erhöht.
API-Referenzdokumentation | Quellcode der Bibliothek | Paket (Python-Paketindex)
Voraussetzungen
- Ein Azure-Abonnement – erstellen Sie eines kostenlos.
- Python 3.7+
- Azure CLI oder Azure PowerShell.
In diesem Schnellstart wird davon ausgegangen, dass Sie die Azure CLI oder Azure PowerShell in einem Linux-Terminalfenster ausführen.
Einrichten Ihrer lokalen Umgebung
In dieser Schnellstartanleitung wird die Azure Identity-Bibliothek mit Azure CLI oder Azure PowerShell verwendet, um den Benutzer bei Azure-Diensten zu authentifizieren. Entwickler können auch Visual Studio oder Visual Studio Code verwenden, um ihre Aufrufe zu authentifizieren. Weitere Informationen finden Sie unter Authentifizieren des Clients mit der Azure Identity-Clientbibliothek.
Anmelden bei Azure
Führen Sie den
az login
Befehl aus.az login
Die CLI öffnet Ihren Standardbrowser, sofern sie dazu in der Lage ist, und lädt eine Azure-Anmeldeseite.
Öffnen Sie andernfalls eine Browserseite unter https://aka.ms/devicelogin und geben Sie den Autorisierungscode ein, der in Ihrem Terminal angezeigt wird.
Melden Sie sich im Browser mit Ihren Anmeldeinformationen an.
Installieren der Pakete
Erstellen Sie in einem Terminal oder an einer Eingabeaufforderung einen geeigneten Projektordner, und erstellen und aktivieren Sie dann eine virtuelle Python-Umgebung, wie unter Verwenden von virtuellen Python-Umgebungen beschrieben.
Installieren Sie die Microsoft Entra Identity-Bibliothek:
pip install azure-identity
Installieren Sie die Key Vault-Geheimnisbibliothek:
pip install azure-keyvault-secrets
Erstellen einer Ressourcengruppe und eines Schlüsseltresors
Verwenden Sie den
az group create
Befehl, um eine Ressourcengruppe zu erstellen:az group create --name myResourceGroup --location eastus
Falls gewünscht, können Sie „eastus“ in eine Region ändern, die näher an Ihrem Standort liegt.
Verwenden Sie
az keyvault create
, um den Schlüsseltresor zu erstellen:az keyvault create --name <your-unique-keyvault-name> --resource-group myResourceGroup
Ersetzen Sie
<your-unique-keyvault-name>
durch einen Namen, der in ganz Azure eindeutig ist. In der Regel verwenden Sie Ihren persönlichen oder Firmennamen zusammen mit Ziffern und anderen Bezeichnern.
Festlegen der Umgebungsvariablen KEY_VAULT_NAME
Unser Skript verwendet den der Umgebungsvariablen KEY_VAULT_NAME
zugewiesenen Wert als Namen des Schlüsseltresors. Sie müssen diesen Wert daher mit dem folgenden Befehl festlegen:
export KEY_VAULT_NAME=<your-unique-keyvault-name>
Gewähren des Zugriffs auf Ihren Schlüsseltresor
Um über die rollenbasierte Zugriffskontrolle (Role-Based Access Control, RBAC) Berechtigungen für Ihren Schlüsseltresor zu erhalten, weisen Sie Ihrem Benutzerprinzipalname (User Principal Name, UPN) mit dem Azure CLI-Befehl az role assignment create eine Rolle zu.
az role assignment create --role "Key Vault Secrets Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Ersetzen Sie <upn>, <subscription-id>, <resource-group-name> und <your-unique-keyvault-name> durch Ihre tatsächlichen Werte. Ihr Benutzerprinzipalname (UPN) hat in der Regel das Format einer E-Mail-Adresse (z. B. username@domain.com).
Erstellen des Beispielcodes
Mit der Azure Key Vault-Geheimnisclientbibliothek für Python können Sie Geheimnisse verwalten. Im folgenden Codebeispiel wird gezeigt, wie Sie einen Client erstellen und ein Geheimnis festlegen, abrufen und löschen.
Erstellen Sie eine Datei mit dem Namen kv_secrets.py, die diesen Code enthält.
import os
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
keyVaultName = os.environ["KEY_VAULT_NAME"]
KVUri = f"https://{keyVaultName}.vault.azure.net"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=KVUri, credential=credential)
secretName = input("Input a name for your secret > ")
secretValue = input("Input a value for your secret > ")
print(f"Creating a secret in {keyVaultName} called '{secretName}' with the value '{secretValue}' ...")
client.set_secret(secretName, secretValue)
print(" done.")
print(f"Retrieving your secret from {keyVaultName}.")
retrieved_secret = client.get_secret(secretName)
print(f"Your secret is '{retrieved_secret.value}'.")
print(f"Deleting your secret from {keyVaultName} ...")
poller = client.begin_delete_secret(secretName)
deleted_secret = poller.result()
print(" done.")
Ausführen des Codes
Stellen Sie sicher, dass sich der Code aus dem vorherigen Abschnitt in einer Datei namens kv_secrets.py befindet. Führen Sie den Code dann mithilfe des folgenden Befehls aus:
python kv_secrets.py
- Wenn Berechtigungsfehler auftreten, stellen Sie sicher, dass Sie den Befehl
az keyvault set-policy
oderSet-AzKeyVaultAccessPolicy
ausgeführt haben. - Wenn Sie den Code mit demselben Geheimnisnamen erneut ausführen, kann die Fehlermeldung "(Konflikt) Geheimnisname< ist derzeit in einem gelöschten, aber wiederherstellbaren Zustand" angezeigt werden. Verwenden Sie daher einen unterschiedlichen Geheimnisnamen.
Codedetails
Authentifizieren und Erstellen eines Clients
Anwendungsanforderungen an die meisten Azure-Dienste müssen autorisiert werden. Die Verwendung der von der Azure Identity-Clientbibliothek bereitgestellten Klasse DefaultAzureCredential ist der empfohlene Ansatz zum Implementieren von kennwortlosen Verbindungen mit Azure-Diensten in Ihrem Code. DefaultAzureCredential
unterstützt mehrere Authentifizierungsmethoden und bestimmt, welche Methode zur Laufzeit verwendet werden soll. Bei diesem Ansatz kann Ihre App unterschiedliche Authentifizierungsmethoden in verschiedenen Umgebungen (lokal gegenüber Produktion) verwenden, ohne umgebungsspezifischen Code zu implementieren.
In diesem Schnellstart authentifiziert sich DefaultAzureCredential
mit den Anmeldeinformationen des lokalen Entwicklungsbenutzers, der bei der Azure-Befehlszeilenschnittstelle angemeldet ist, beim Schlüsseltresor. Wenn die Anwendung in Azure bereitgestellt wird, kann derselbe DefaultAzureCredential
-Code automatisch eine verwaltete Identität ermitteln und verwenden, die einem App Service, einem virtuellen Computer oder anderen Diensten zugewiesen ist. Weitere Informationen finden Sie in der Übersicht zur verwaltete Identität.
Im folgenden Beispielcode wird der Name Ihres Schlüsseltresors mit dem Wert der Variable KVUri
erweitert in das Format „https://<your-key-vault-name>.vault.azure.net“.
credential = DefaultAzureCredential()
client = SecretClient(vault_url=KVUri, credential=credential)
Speichern eines Geheimnisses
Nachdem Sie das Clientobjekt für den Schlüsseltresor abgerufen haben, können Sie ein Geheimnis mithilfe der Methode set_secret-Methode:
client.set_secret(secretName, secretValue)
Der Aufruf von set_secret
generiert einen Aufruf der Azure-REST-API für den Key Vault.
Wenn Azure die Anforderung bearbeitet, authentifiziert Azure die Identität des Aufrufers (Dienstprinzipal) mithilfe des Anmeldeinformationen-Objekts, das Sie für den Client bereitgestellt haben.
Abrufen eines Geheimnisses
Um ein Geheimnis aus Key Vault zu lesen, verwenden Sie die Methode get_secret:
retrieved_secret = client.get_secret(secretName)
Der Wert für das Geheimnis ist in retrieved_secret.value
enthalten.
Sie können ein Geheimnis auch mit dem Azure CLI-Befehl az keyvault secret show oder dem Azure PowerShell-Cmdlet Get-AzKeyVaultSecret abrufen.
Löschen eines Geheimnisses
Um ein Geheimnis zu löschen, verwenden Sie die begin_delete_secret-Methode:
poller = client.begin_delete_secret(secretName)
deleted_secret = poller.result()
Die begin_delete_secret
-Methode ist asynchron und gibt ein Pollerobjekt zurück. Wenn die result
-Methode des Pollers aufgerufen wird, wird auf ihren Abschluss gewartet.
Mithilfe des Azure CLI-Befehls az keyvault secret show oder dem Azure PowerShell-Cmdlet Get-AzKeyVaultSecret können Sie sich vergewissern, dass das Geheimnis entfernt wurde.
Nach dem Löschen verbleibt ein Geheimnis für einen bestimmten Zeitraum in einem gelöschten, aber wiederherstellbaren Zustand. Wenn Sie den Code erneut ausführen, verwenden Sie einen anderen Geheimnisnamen.
Bereinigen von Ressourcen
Wenn Sie auch mit Zertifikaten und Schlüsseln experimentieren möchten, können Sie den in diesem Artikel erstellten Key Vault wiederverwenden.
Verwenden Sie andernfalls den folgenden Befehl, um die Ressourcengruppe und alle darin enthaltenen Ressourcen zu löschen, wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr benötigen:
az group delete --resource-group myResourceGroup
Nächste Schritte
- Übersicht über Azure Key Vault
- Entwicklerhandbuch zu Azure Key Vault
- Key Vault-Sicherheitsübersicht
- Authentifizieren mit Azure Key Vault