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 hanterade identiteter för Azure-resurser. Lär dig att:

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

Läs Key Vault grundläggande begrepp innan du börjar.

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.

Förutsättningar

För Windows, Mac och Linux:

  • Git
  • Den här självstudien kräver att du kör Azure CLI lokalt. Du måste ha Azure CLI version 2.0.4 eller senare installerat. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera CLI kan du läsa Installera Azure CLI 2.0.

Logga in på Azure

Om du vill logga in i Azure med hjälp av Azure CLI anger du:

az login

Skapa en resursgrupp och ett nyckelvalv

Den här snabbstarten använder ett i förväg skapat Azure-nyckelvalv. Du kan skapa ett nyckelvalv genom att följa stegen i Azure CLI-snabbstarten, Azure PowerShell snabbstart eller Azure Portal snabbstart.

Du kan också köra Azure CLI- eller Azure PowerShell-kommandona nedan.

Viktigt

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

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

az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup"

Fylla i nyckelvalvet 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-anslutningssträng 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 "<your-unique-keyvault-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-portalen Azure-portalen

Om du vill skapa en virtuell Linux-dator med 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 myResourceGroup \
  --name myVM \
  --image Ubuntu2204 \
  --admin-username azureuser \
  --generate-ssh-keys

Observera värdet publicIpAddress för i utdata.

Tilldela en identitet till den virtuella datorn

Skapa en systemtilldelad identitet för den virtuella datorn med hjälp av kommandot Azure CLI az vm identity assign :

az vm identity assign --name "myVM" --resource-group "myResourceGroup"

Observera den systemtilldelade identiteten som visas i följande kod. Utdata från föregående kommando är:

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

Tilldela behörigheter till den virtuella datorns identitet

Nu kan du tilldela de tidigare skapade identitetsbehörigheterna till ditt nyckelvalv genom att köra följande kommando:

az keyvault set-policy --name "<your-unique-keyvault-name>" --object-id "<systemAssignedIdentity>" --secret-permissions get list

Logga in på den virtuella datorn

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

Om du vill logga in på en virtuell Linux-dator kan du använda ssh-kommandot med publicIpAddress <> som anges i steget Skapa en virtuell dator:

ssh azureuser@<PublicIpAddress>

Installera Python-bibliotek på den virtuella datorn

Installera de två Python-biblioteken som vi ska använda i vårt Python-skript på den virtuella datorn: azure-keyvault-secrets och azure.identity.

På en virtuell Linux-dator kan du till exempel installera dessa med hjälp av pip3:

pip3 install azure-keyvault-secrets

pip3 install azure.identity

Skapa och redigera Python-exempelskriptet

Skapa en Python-fil med namnet sample.py på den virtuella datorn. Redigera filen så att den innehåller följande kod och ersätt <ditt-unika-keyvault-namn> med namnet på ditt nyckelvalv:

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

key_vault_name = "<your-unique-keyvault-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 Python-exempelappen

Slutligen kör du sample.py. Om allt har gått bra bör det returnera värdet för din hemlighet:

python3 sample.py

The value of secret 'mySecret' in '<your-unique-keyvault-name>' is: 'Success!'

Rensa resurser

När de inte längre behövs tar du bort den virtuella datorn och ditt nyckelvalv. Du kan göra det snabbt genom att ta bort den resursgrupp som de tillhör:

az group delete -g myResourceGroup

Nästa steg

REST API för Azure Key Vault