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.
Azure Key Vault hilft Ihnen beim Schützen von Schlüsseln, geheimen Schlüsseln und Zertifikaten, z. B. API-Schlüssel und Datenbankverbindungszeichenfolgen.
In diesem Lernprogramm richten Sie eine Python Anwendung ein, um Informationen aus Azure Key Vault mithilfe einer verwalteten Identität 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
- Eine aktuelle Version des Azure CLI. Führen Sie die Ausführung
az --versionaus, um die installierte Version zu überprüfen.
Anmelden bei Azure
Melden Sie sich mit dem Azure CLI bei Azure an:
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 einen virtuellen Computer mit dem Namen "myVM ", indem Sie eine der folgenden Methoden verwenden:
| Linux | Windows |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Azure Portal | 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 verwaltete Identität für den virtuellen Computer mithilfe des Befehls "az vm identity assign ":
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Beachten Sie die vom System zugewiesene Identität in der Ausgabe:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Zuweisen von Berechtigungen für die VM-Identität
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 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).
Melden Sie sich bei der VM an
Wenn Sie sich bei der VM anmelden möchten, folgen Sie den Anweisungen in Connect, und melden Sie sich bei einem virtuellen Azure Computer mit Linux oder Connect an und melden Sie sich bei einem Azure virtuellen Computer an, auf dem Windows ausgeführt wird.
Verwenden Sie zum Anmelden bei einer Linux-VM ssh zusammen mit <public-ip-address> aus dem Schritt Erstellen eines virtuellen Computers:
ssh azureuser@<public-ip-address>
Installieren von Python Bibliotheken auf dem virtuellen Computer
Installieren Sie auf dem virtuellen Computer die beiden Python Bibliotheken, die das Beispielskript verwendet: azure-keyvault-secrets und azure-identity.
Installieren Sie sie auf einer Linux-VM mit pip3:
pip3 install azure-keyvault-secrets azure-identity
Erstellen und Bearbeiten des Beispielskripts Python
Erstellen Sie auf dem virtuellen Computer eine Python Datei mit dem Namen sample.py. Fügen Sie den folgenden Code in die Datei ein und ersetzen Sie dabei <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 sample.py aus. Wenn alles richtig konfiguriert ist, druckt die App den geheimen Wert:
python3 sample.py
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Bereinigen von Ressourcen
Wenn Sie sie nicht mehr benötigen, löschen Sie die VM und den Schlüsseltresor. Die schnellste Möglichkeit besteht darin, die Ressourcengruppe zu löschen, zu der sie gehören:
az group delete -g "myResourceGroup"