Dela via


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 databas niska veze.

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. Du 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 konsolprogrammet för att läsa data från Key Vault
  • Hämta en hemlighet från Key Vault

Läs grundläggande begrepp för Key Vault 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 installerad. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera CLI kan du läsa mer i 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 förskapat Azure-nyckelvalv. Du kan skapa ett nyckelvalv genom att följa stegen i snabbstarten för Azure CLI, Azure PowerShell-snabbstarten eller azure-portalens snabbstart.

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

Viktigt!

Varje nyckelvalv måste ha ett unikt namn. Ersätt <ditt unika keyvault-name> 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" --enable-rbac-authorization

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-niska veze 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 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 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 identitet som visas i följande kod. Utdata från föregående kommando skulle vara:

{
  "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 loggar in på en virtuell Azure-dator som kör Linux eller Connect 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

På den virtuella datorn skapar du en Python-fil med namnet sample.py. Redigera filen så att den innehåller följande kod och ersätt <ditt unika nyckelvalv 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