Oktatóanyag: Azure Key Vault használata virtuális géppel a Python

Azure Key Vault segít megvédeni a kulcsokat, titkos kulcsokat és tanúsítványokat, például az API-kulcsokat és az adatbázis-kapcsolati sztringeket.

Ebben az oktatóanyagban beállít egy Python-alkalmazást, amely az Azure Key Vaultból olvas információkat egy Azure-erőforrásokhoz készült felügyelt identitás használatával. Megtudhatja, hogyan:

  • Kulcstároló létrehozása
  • Egy titok tárolása a Key Vaultban
  • Azure Linux rendszerű virtuális gép létrehozása
  • Felügyelt identitás engedélyezése a virtuális géphez
  • Adja meg a szükséges engedélyeket a konzolalkalmazás számára, hogy adatokat olvashasson a Key Vaultból.
  • Titok lekérése a Key Vaultból

A kezdés előtt olvassa el Key Vault alapfogalmakat.

Ha nem rendelkezik Azure előfizetéssel, hozzon létre egy felszabadító fiókot.

Előfeltételek

Windows, Mac és Linux esetén:

  • Git
  • A Azure CLI aktuális verziója. A telepített verzió ellenőrzéséhez futtassa a(z) az --version parancsot.

Bejelentkezés az Azure-ba

Jelentkezzen be az Azure-ba az Azure CLI segítségével:

az login

Erőforráscsoport és kulcstár létrehozása

Ez a gyorsútmutató egy előre létrehozott Azure kulcstárat használ. Kulcstárt az alábbi gyors útmutatók lépéseinek követésével hozhat létre:

Másik lehetőségként futtathatja ezeket a Azure CLI vagy Azure PowerShell parancsokat.

Fontos

Minden kulcstartónak egyedi névvel kell rendelkeznie. Cserélje le a(z) <vault-name> kulcstár nevét az alábbi példákban.

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

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

Kulcstár feltöltése titkos beállítással

Hozzunk létre egy mySecret nevű titkos kulcsot, amelynek értéke siker!. A titkos kód lehet jelszó, SQL-kapcsolati karakterlánc vagy bármilyen más információ, amelyet biztonságosan és az alkalmazás számára elérhetővé kell tenni.

Ha titkos kulcsot szeretne hozzáadni az újonnan létrehozott kulcstartóhoz, használja a következő parancsot:

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

Virtuális gép létrehozása

Hozzon létre egy myVM nevű virtuális gépet az alábbi módszerek egyikével:

Linux Windows
Azure parancssori felület Azure parancssori felület
PowerShell PowerShell
Azure portál Azure portál

Linux rendszerű virtuális gép Azure CLI használatával való létrehozásához használja a az virtuális gép létrehozása parancsot. Az alábbi példa egy azureuser nevű felhasználói fiókot ad hozzá. A --generate-ssh-keys paraméter automatikusan létrehoz egy SSH-kulcsot, és az alapértelmezett kulcshelyre helyezi (~/.ssh).

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

Jegyezze fel a kimenet értékét publicIpAddress .

Identitás hozzárendelése a virtuális géphez

Hozzon létre egy rendszer által hozzárendelt felügyelt identitást a virtuális gép számára az az vm identity assign paranccsal:

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

Figyelje meg a rendszer által hozzárendelt identitást a kimenetben:

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

Engedélyek hozzárendelése a virtuálisgép-identitáshoz

Ha szerepkör alapú hozzáférés-vezérlés (RBAC) segítségével szeretne engedélyeket szerezni a kulcstartóhoz, rendelje hozzá a szerepkört az "User Principal Name" (UPN) használatával az Azure CLI parancs az role assignment create segítségével.

az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"

Cserélje le <upn>-t, <subscription-id>-t és <vault-name>-t a tényleges értékekre. Ha más erőforráscsoportnevet használt, cserélje le a "myResourceGroup" nevet is. Az UPN általában egy e-mail-cím (pl. username@domain.com) formátumban lesz.

Bejelentkezés a virtuális gépre

A virtuális gépre való bejelentkezéshez kövesse a Connectben található utasításokat, és jelentkezzen be egy Linux vagy Connect rendszert futtató Azure virtuális gépre, és jelentkezzen be egy Azure Windows futó virtuális gépre.

Linux rendszerű virtuális gépre való bejelentkezéshez használja ssh a <public-ip-address>Virtuális gép létrehozása lépésben:

ssh azureuser@<public-ip-address>

Python kódtárak telepítése a virtuális gépen

A virtuális gépen telepítse a mintaszkript által használt két Python kódtárat: azure-keyvault-secrets ésazure-identity.

Linux rendszerű virtuális gépen telepítse őket a következővel pip3:

pip3 install azure-keyvault-secrets azure-identity

A minta Python szkript létrehozása és szerkesztése

A virtuális gépen hozzon létre egy Python nevű fájltsample.py. Illessze be a következő kódot a fájlba, és cserélje le a(z) <vault-name> elemet a kulcstartó nevére:

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

A minta Python alkalmazás futtatása

Futtassa a sample.py programot. Ha minden megfelelően van konfigurálva, az alkalmazás kinyomtatja a titkos értéket:

python3 sample.py

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

Erőforrások tisztítása

Ha már nincs rájuk szüksége, törölje a virtuális gépet és a kulcstartót. A leggyorsabb módszer az erőforráscsoport törlése, amelyhez tartoznak:

az group delete -g "myResourceGroup"

Következő lépések

AZURE KEY VAULT REST API