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
Om du vill ge ditt program behörigheter till ditt nyckelvalv via rollbaserad åtkomstkontroll (RBAC) tilldelar du en roll med hjälp av Azure CLI-kommandot az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<app-id>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Ersätt <app-id>
, <subscription-id>
och <resource-group-name>
<your-unique-keyvault-name>
med dina faktiska värden. <app-id>
är program-ID:t (klient) för ditt registrerade program i Microsoft Entra.
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