Megosztás a következőn keresztül:


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

Az Azure Key Vault segít megvédeni a kulcsokat, titkokat é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 származó információkat az Azure-erőforrások felügyelt identitásainak használatával olvassa be. Megtudhatja, hogyan:

  • Kulcstároló létrehozása
  • Titkos kulcs 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 konzolalkalmazáshoz szükséges engedélyeket az adatok Key Vaultból való beolvasásához
  • Egy titok lekérése a Kulcs Vaultról

Mielőtt hozzákezdene, olvassa el a Key Vault alapfogalmait.

Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot.

Előfeltételek

Windows, Mac és Linux esetén:

  • Git
  • Ez az oktatóanyag megköveteli az Azure CLI helyi futtatását. Az Azure CLI 2.0.4-es vagy újabb verziójával kell rendelkeznie. A verzió azonosításához futtassa a következőt: az --version. Ha telepíteni vagy frissíteni szeretné a parancssori felületet: Az Azure CLI 2.0 telepítése.

Jelentkezzen be az Azure-ba

Ha az Azure-ba az Azure CLI használatával szeretne bejelentkezni, írja be a következőt:

az login

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

Ez a gyorsútmutató egy előre létrehozott Azure key vaultot 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 az Azure CLI- vagy Azure PowerShell-parancsokat.

Fontos

Minden kulcstartónak egyedi névvel kell rendelkeznie. Cserélje le a következő példákban a <your-unique-keyvault-name> szöveget a kulcsvalutájának nevére.

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

az keyvault create --name "<your-unique-keyvault-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 sztring 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 "<your-unique-keyvault-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 CLI Azure CLI
PowerShell PowerShell
Azure Portál Az Azure Portal

Linux rendszerű virtuális gép Azure CLI-vel való létrehozásához használja az az vm create 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 myResourceGroup \
  --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 identitást a virtuális géphez az Azure CLI az vm identity assign paranccsal:

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

Figyelje meg a rendszer által hozzárendelt identitást, amely az alábbi kódban jelenik meg. Az előző parancs kimenete a következő:

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

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

Ahhoz, hogy szerepköralapú hozzáférés-vezérléssel (RBAC) engedélyeket szerezzen a kulcstartóhoz, rendeljen egy szerepkört a "Felhasználói főnév" (UPN) használatával a "az role assignment create" Azure CLI-paranccsal.

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>"

Cserélje le <upn>, <subscription-id>, <resource-group-name> és <your-unique-keyvault-name> elemeket a tényleges értékekre. 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-beli virtuális gépre, és jelentkezzen be egy Windows rendszerű Azure-beli virtuális gépre.

Linux rendszerű virtuális gépre való bejelentkezéshez használja az ssh parancsot a <létrehozási lépésben megadott nyilvános IP-cím> használatával:

ssh azureuser@<PublicIpAddress>

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

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

Linux rendszerű virtuális gépeken például az alábbiakat pip3telepítheti:

pip3 install azure-keyvault-secrets

pip3 install azure-identity

Python-példaszkript létrehozása és szerkesztése

A virtuális gépen hozzon létre egy Python-fájlt sample.py néven. Szerkessze a fájlt úgy, hogy az tartalmazza a következő kódot, és cserélje le <az-egyedi-kulcstár-nevedet> a kulcstár nevére:

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

A Python-mintaalkalmazás futtatása

Végül futtassa a sample.py. Ha minden jól ment, akkor a titkos kód értékét kell visszaadnia:

python3 sample.py

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

Erőforrások tisztítása

Ha már nincs rájuk szükség, törölje a virtuális gépet és a kulcstartót. Gyorsan elvégezhető annak az erőforráscsoportnak a törlésével, amelyhez tartoznak:

az group delete -g myResourceGroup

Következő lépések

Azure Key Vault REST API