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 sztringeket.

Ebben az oktatóanyagban beállít egy Python-alkalmazást az Azure Key Vault adatainak olvasásához az Azure-erőforrások felügyelt identitásainak használatával. Az alábbiak végrehajtásának módját ismerheti meg:

  • Kulcstartó létrehozása
  • Titkos kód tárolása Key Vault
  • 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 Vault
  • Titkos kód lekérése Key Vault

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

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

Előfeltételek

Windows, Mac és Linux rendszeren:

  • Git
  • Ehhez az oktatóanyaghoz helyileg kell futtatnia az Azure CLI-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ának, Azure PowerShell rövid útmutatójának vagy Azure Portal rövid útmutatójának lépéseit követve hozhat létre.

Másik lehetőségként egyszerűen futtathatja az Azure CLI-t vagy Azure PowerShell alábbi parancsokat.

Fontos

Minden kulcstartónak egyedi névvel kell rendelkeznie. Cserélje le <az egyedi-keyvault-name> nevet 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"

Kulcstartó feltöltése titkos kóddal

Hozzunk létre egy mySecret nevű titkos kulcsot, amelynek értéke Sikeres!. A titkos kód lehet egy jelszó, egy SQL-kapcsolati sztring vagy bármely más információ, amelyet meg kell őriznie ahhoz, hogy biztonságos és elérhető legyen az alkalmazás számára.

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 Portal Az Azure Portal

Linux rendszerű virtuális gép Azure CLI-vel történő 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"

Jegyezze fel 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

Most az alábbi parancs futtatásával rendelheti hozzá a korábban létrehozott identitásengedélyeket a kulcstartóhoz:

az keyvault set-policy --name "<your-unique-keyvault-name>" --object-id "<systemAssignedIdentity>" --secret-permissions get list

Bejelentkezés a virtuális gépre

A virtuális gépre való bejelentkezéshez kövesse a Csatlakozás című témakör utasításait, és jelentkezzen be egy Linuxot vagy Connectet 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álhatja az ssh parancsot a <virtuális gép létrehozása lépésben megadott publicIpAddress> 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 a következővel pip3telepítheti őket:

pip3 install azure-keyvault-secrets

pip3 install azure.identity

Python-mintaszkript létrehozása és szerkesztése

A virtuális gépen hozzon létre egy Sample.py nevű Python-fájlt. Szerkessze a fájlt, hogy az tartalmazza a következő kódot, és cserélje le <a-unique-keyvault-name> nevet 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égezheti azt az erőforráscsoportot, amelyhez tartoznak:

az group delete -g myResourceGroup

Következő lépések

Azure Key Vault REST API