Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ismerkedés a Python Azure Key Vault titkos ügyfélkódtárával. Az alábbi lépések végrehajtásával telepítheti a csomagot, és kipróbálhatja az alapműveletek példakódját. A Key Vault titkos kulcsok tárolására való használatával elkerülheti a titkos kódok tárolását a kódban, ami növeli az alkalmazás biztonságát.
API-referenciadokumentáció | Könyvtár forráskód | Csomag (Python-csomagindex)
Előfeltételek
- Azure-előfizetés – hozzon létre egyet ingyenesen.
- Python 3.7+.
- Azure CLI vagy Azure PowerShell.
Ez a rövid útmutató feltételezi, hogy az Azure CLI-t vagy az Azure PowerShellt egy linuxos terminálablakban futtatja.
A helyi környezet beállítása
Ez a rövid útmutató az Azure Identity könyvtár, valamint az Azure CLI vagy az Azure PowerShell használatával hitelesíti a felhasználót az Azure szolgáltatások esetén. A fejlesztők a Visual Studio vagy a Visual Studio Code segítségével is hitelesíthetik a hívásaikat. További információért nézze meg: Az ügyfél hitelesítése az Azure Identity ügyfélkönyvtárral.
Bejelentkezés az Azure-ba
- Azure CLI
- Azure PowerShell
Futtassa a
az loginparancsot.az loginHa a parancssori felület meg tudja nyitni az alapértelmezett böngészőt, az meg fogja tenni, és betölt egy Azure-bejelentkezési lapot.
Ellenkező esetben nyisson meg egy böngészőlapot a https://aka.ms/devicelogin, majd adja meg a terminálban megjelenő engedélyezési kódot.
A böngészőben jelentkezzen be fiókja hitelesítő adataival.
A csomagok telepítése
Egy terminálban vagy parancssorban hozzon létre egy megfelelő projektmappát, majd hozzon létre és aktiváljon egy Python virtuális környezetet a Python virtuális környezetek használata című témakörben leírtak szerint.
Telepítse a Microsoft Entra identitáskönyvtárat:
pip install azure-identityTelepítse a Key Vault titkos kulcstárát:
pip install azure-keyvault-secrets
Erőforráscsoport és kulcstár létrehozása
- Azure CLI
- Azure PowerShell
A
az group createparancs használatával hozzon létre egy erőforráscsoportot:az group create --name myResourceGroup --location eastusHa szeretné, módosíthatja az "eastus" értékét az Önhöz közelebbi helyre.
A kulcstartó létrehozásához használja a
az keyvault createjelölést.az keyvault create --name <your-unique-keyvault-name> --resource-group myResourceGroupCserélje le
<your-unique-keyvault-name>egy egyedi névre, amely az Azure-on belül is egyedülálló. A személyes vagy céges nevét általában más számokkal és azonosítókkal együtt használja.
A KEY_VAULT_NAME környezeti változó beállítása
A szkript a környezeti változóhoz KEY_VAULT_NAME rendelt értéket fogja használni a kulcstartó nevének. Ezért ezt az értéket a következő paranccsal kell beállítania:
export KEY_VAULT_NAME=<your-unique-keyvault-name>
Hozzáférés biztosítása a kulcstárhoz
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 Officer" --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.
A mintakód létrehozása
A Pythonhoz készült Azure Key Vault titkos ügyfélkódtár lehetővé teszi a titkos kódok kezelését. Az alábbi kódminta bemutatja, hogyan hozhat létre egy ügyfelet, állíthat be egy titkos kulcsot, lekérhet egy titkos kulcsot, és törölheti a titkos kulcsokat.
Hozzon létre egy kv_secrets.py nevű fájlt, amely tartalmazza ezt a kódot.
import os
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
keyVaultName = os.environ["KEY_VAULT_NAME"]
KVUri = f"https://{keyVaultName}.vault.azure.net"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=KVUri, credential=credential)
secretName = input("Input a name for your secret > ")
secretValue = input("Input a value for your secret > ")
print(f"Creating a secret in {keyVaultName} called '{secretName}' with the value '{secretValue}' ...")
client.set_secret(secretName, secretValue)
print(" done.")
print(f"Retrieving your secret from {keyVaultName}.")
retrieved_secret = client.get_secret(secretName)
print(f"Your secret is '{retrieved_secret.value}'.")
print(f"Deleting your secret from {keyVaultName} ...")
poller = client.begin_delete_secret(secretName)
deleted_secret = poller.result()
print(" done.")
A kód futtatása
Győződjön meg arról, hogy az előző szakaszban szereplő kód egy kv_secrets.py nevű fájlban található. Ezután futtassa a kódot a következő paranccsal:
python kv_secrets.py
- Ha engedélyekkel kapcsolatos hibákat tapasztal, győződjön meg arról, hogy futtatta a
az keyvault set-policyvagy aSet-AzKeyVaultAccessPolicyparancsot. - Ha újrafuttatja a kódot ugyanazzal a titkos kódnévvel, a következő hibaüzenet jelenhet meg: "(Ütközés) A titkos kód <neve> jelenleg törölt, de helyreállítható állapotban van." Használjon másik titkos nevet.
Kód részletei
Ügyfél hitelesítése és létrehozása
A legtöbb Azure-szolgáltatáshoz irányuló alkalmazáskéréseket engedélyezni kell. Az Azure Identity ügyfélkönyvtár által biztosított DefaultAzureCredential osztály használata az ajánlott megközelítés az Azure-szolgáltatások jelszó nélküli kapcsolatainak megvalósítására a kódban. DefaultAzureCredential több hitelesítési módszert támogat, és futásidőben meghatározza, melyik eljárást kell alkalmazni. Ez a megközelítés lehetővé teszi, hogy az alkalmazás különböző hitelesítési módszereket használjon különböző környezetekben (helyi és éles környezetben) környezetspecifikus kód implementálása nélkül.
Ebben a gyors útmutatóban DefaultAzureCredential az Azure CLI-be bejelentkezett helyi fejlesztési felhasználó hitelesítő adatait használva hitelesíti a Key Vaultot. Az alkalmazás Azure-ben történő üzembe helyezésekor ugyanaz a DefaultAzureCredential kód automatikusan felderítheti és használhatja az App Service-hez, a virtuális géphez vagy más szolgáltatásokhoz rendelt felügyelt identitást. További információért lásd: Felügyelt identitás áttekintése.
A példakódban a kulcstartó neve a KVUri változó értékével van kibontva, a következő formátumban: "https://<a-kulcstartó-neved>.vault.azure.net".
credential = DefaultAzureCredential()
client = SecretClient(vault_url=KVUri, credential=credential)
Titkos kód mentése
Miután beszerezte a kulcstartóhoz tartozó ügyfélobjektumot, tárolhat egy titkos kulcsot a set_secret metódussal:
client.set_secret(secretName, secretValue)
set_secret hívása egy hívást generál az Azure REST API-hoz a kulcstartó számára.
Amikor az Azure kezeli a kérést, hitelesíti a hívó identitását (a szolgáltatásnevet) az ügyfélnek megadott hitelesítő objektummal.
Titkos kód lekérése
A Key Vault titok olvasásához használja a get_secret metódust:
retrieved_secret = client.get_secret(secretName)
A titkos érték a következőben van: retrieved_secret.value.
Az Azure CLI az keyvault secret show paranccsal vagy az Azure PowerShell Get-AzKeyVaultSecret parancsmaggal is lekérhet egy titkot.
Titkos kulcs törlése
Egy titok törléséhez használja a begin_delete_secret metódust:
poller = client.begin_delete_secret(secretName)
deleted_secret = poller.result()
A begin_delete_secret metódus aszinkron, és egy poller objektumot ad vissza. A poller result metódusának meghívása megvárja a befejezését.
Ellenőrizheti, hogy a titkos el lett-e távolítva a következő Azure CLI-paranccsal az keyvault secret show vagy a következő Azure PowerShell-parancsmaggal Get-AzKeyVaultSecret.
A törlés után a titkos kódok egy ideig törölt, de helyreállítható állapotban maradnak. Ha ismét futtatja a kódot, használjon másik titkos nevet.
Az erőforrások tisztítása
Ha a tanúsítványokkal és kulcsokkal is kísérletezni szeretne, újra felhasználhatja a cikkben létrehozott kulcstárolót.
Ellenkező esetben, ha végzett a cikkben létrehozott erőforrásokkal, az alábbi paranccsal törölje az erőforráscsoportot és az összes benne foglalt erőforrást:
- Azure CLI
- Azure PowerShell
az group delete --resource-group myResourceGroup
Következő lépések
- Az Azure Key Vault áttekintése
- Az Azure Key Vault útmutató fejlesztőknek
- A Key Vault biztonsági áttekintése
- Key Vaulttal hitelesítés