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, titkos kulcsokat és tanúsítványokat, például az API-kulcsokat és az adatbázis-kapcsolati sztring.

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. Az alábbiak végrehajtásának módját ismerheti meg:

  • Kulcstartó 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
  • Titkos kulcs lekérése a Key Vaultbó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 kulcstartó létrehozása

Ez a rövid útmutató egy előre létrehozott Azure Key Vaultot használ. Kulcstartót az Azure CLI rövid útmutatójában, az Azure PowerShell gyorsútmutatójában vagy az Azure Portal rövid útmutatójában ismertetett lépések 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 <az egyedi-keyvault-nevét> a kulcstartó nevére az alábbi példákban.

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

az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup" --enable-rbac-authorization

Kulcstartó feltöltése titkos kóddal

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

Ha szerepköralapú hozzáférés-vezérléssel (RBAC) szeretne engedélyt adni az alkalmazásnak a kulcstartóhoz, rendeljen hozzá egy szerepkört az az role assignment create Azure CLI paranccsal.

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

Cserélje le <app-id>a , <subscription-id>és <resource-group-name> <your-unique-keyvault-name> a tényleges értékeket. <app-id> A regisztrált alkalmazás (ügyfél) azonosítója a Microsoft Entrában.

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 <virtuális gép létrehozása lépésben megadott nyilvánosIpAddress> paranccsal:

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-keyvault-nevét> a kulcstartó 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!'

Az erőforrások eltávolí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