Självstudie: Använda Azure Key Vault med en virtuell dator i Python

Azure Key Vault hjälper dig att skydda nycklar, hemligheter och certifikat, till exempel API-nycklar och databasanslutningssträngar.

I den här självstudien konfigurerar du ett Python program för att läsa information från Azure Key Vault med hjälp av en hanterad identitet för Azure resurser. Du lär dig att:

  • Skapa ett nyckelvalv
  • Lagra en hemlighet i Key Vault
  • Skapa en Azure virtuell Linux-dator
  • Aktivera en hanterad identitet för den virtuella datorn
  • Bevilja de behörigheter som krävs för konsolprogrammet för att läsa data från Key Vault
  • Hämta en hemlighet från Key Vault

Innan du börjar läser du Key Vault grundläggande begrepp.

Om du inte har en Azure prenumeration skapar du ett free-konto.

Förutsättningar

För Windows, Mac och Linux:

  • Git
  • En aktuell version av Azure CLI. Kör az --version för att kontrollera den installerade versionen.

Logga in på Azure

Logga in på Azure med Azure CLI:

az login

Skapa en resursgrupp och ett nyckelvalv

Den här snabbstarten använder ett förskapat Azure nyckelvalv. Du kan skapa ett nyckelvalv genom att följa stegen i dessa snabbguider:

Du kan också köra dessa Azure CLI- eller Azure PowerShell-kommandon.

Viktigt!

Varje nyckelvalv måste ha ett unikt namn. Ersätt <vault-name> med namnet på ditt nyckelvalv i följande exempel.

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

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

Fyll i ditt nyckelvalv med en hemlighet

Nu ska vi skapa en hemlighet med namnet mySecret med värdet Success!. En hemlighet kan vara ett lösenord, en SQL-reťazec pripojenia eller annan information som du behöver för att hålla både säker och tillgänglig för ditt program.

Om du vill lägga till en hemlighet i ditt nyligen skapade nyckelvalv använder du följande kommando:

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

Skapa en virtuell dator

Skapa en virtuell dator med namnet myVM med någon av följande metoder:

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

Om du vill skapa en virtuell Linux-dator med hjälp av Azure CLI använder du kommandot az vm create. I följande exempel läggs ett användarkonto med namnet azureuser till. Parametern --generate-ssh-keys används för att automatiskt generera en SSH-nyckel och placera den på standardnyckelplatsen (~/.ssh).

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

Observera värdet publicIpAddress i resultatet.

Tilldela en identitet till den virtuella datorn

Skapa en systemtilldelad hanterad identitet för den virtuella datorn med kommandot az vm identity assign :

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

Observera den systemtilldelade identiteten i utdata:

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

Tilldela behörigheter till den virtuella datorns identitet

Om du vill få behörighet till ditt nyckelvalv via Role-Based Access Control (RBAC) tilldelar du en roll till ditt UPN (User Principal Name) med kommandot Azure CLI 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>"

Ersätt <upn>, <subscription-id>och <vault-name> med dina faktiska värden. Om du använde ett annat resursgruppsnamn ersätter du även "myResourceGroup". Ditt UPN är vanligtvis i samma format som en e-postadress (t.ex. username@domain.com).

Logga in på den virtuella datorn

Om du vill logga in på den virtuella datorn följer du anvisningarna i Anslut och loggar in på en Azure virtuell dator som kör Linux eller Anslut och loggar in på en Azure virtuell dator som kör Windows.

Om du vill logga in på en virtuell Linux-dator använder du ssh från <public-ip-address> steget Skapa en virtuell dator :

ssh azureuser@<public-ip-address>

Installera Python bibliotek på den virtuella datorn

På den virtuella datorn installerar du de två Python bibliotek som exempelskriptet använder: azure-keyvault-secrets och azure-identity.

Installera dem på en virtuell Linux-dator med pip3:

pip3 install azure-keyvault-secrets azure-identity

Skapa och redigera exempelskriptet Python

På den virtuella datorn skapar du en Python fil med namnet sample.py. Klistra in följande kod i filen och ersätt <vault-name> med ditt nyckelvalvnamn:

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

Kör exempelappen Python

Kör sample.py. Om allt är korrekt konfigurerat skriver appen ut det hemliga värdet:

python3 sample.py

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

Rensa resurser

När du inte längre behöver dem tar du bort den virtuella datorn och nyckelvalvet. Det snabbaste sättet är att ta bort den resursgrupp som de tillhör:

az group delete -g "myResourceGroup"

Nästa steg

REST API för Azure Key Vault