Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Key Vault hjälper dig att skydda nycklar, hemligheter och certifikat, till exempel API-nycklar och databas anslutningssträng.
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 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 <your-unique-keyvault-name> med namnet på ditt nyckelvalv i de följande exemplen.
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-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 Portal | portalen för Azure |
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
i resultatet.
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
För att få behörigheter till ditt nyckelvalv via rollbaserad åtkomstkontroll (RBAC) tilldelar du en roll till din "User Principal Name" (UPN) med hjälp av Azure CLI-kommandot az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Ersätt <upn>, <subscription-id>, <resource-group-name> och <your-unique-keyvault-name> med dina faktiska värden. 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 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