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 Pythonhoz készült Azure Key Vault ü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ítási kulcsok tárolására való használatával elkerülheti az ilyen kulcsok tárolását a kódban, ami növeli az alkalmazás biztonságát.
API-referenciadokumentáció | Kódtár forráskódja | (Python-csomagindex)
Előfeltételek
- Azure-előfizetés – hozzon létre egyet ingyenesen.
- Python 3.7+
- Azure CLI
Ez a rövid útmutató feltételezi, hogy Azure CLI-t vagy Azure PowerShellt használ egy Linux terminálablakban.
A helyi környezet beállítása
Ez a rövid útmutató az Azure Identity Library és az Azure CLI vagy az Azure PowerShell használatával hitelesíti a felhasználót az Azure-szolgáltatásokban. A fejlesztők a Visual Studio vagy a Visual Studio Code használatával is hitelesíthetik hívásaikat. További információért tekintse meg a Az ügyfél hitelesítése az Azure Identity ügyfélkódtárával részt.
Bejelentkezés az Azure-ba
- Azure CLI
- Azure PowerShell
Futtassa a
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 következő címen: https://aka.ms/devicelogin, és 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ő projekt könyvtárat, majd hozzon létre és helyezze üzembe egy Python virtuális környezetet a Python virtuális környezet 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 kulcsügyfél-kódtárát:
pip install azure-keyvault-keys
Erőforráscsoport és kulcstár létrehozása
- Azure CLI
- Azure PowerShell
Használja a
az group createparancsot egy erőforráscsoport létrehozásához:az group create --name "myResourceGroup" --location "EastUS"Tetszés szerint módosíthatja az "EastUS" értékét az Önhöz közelebbi helyre.
A kulcstár létrehozásához használja a
az keyvault createjelölőt.az keyvault create --name "<vault-name>" --resource-group "myResourceGroup" --enable-rbac-authorization true --enable-purge-protection trueCserélje le a
<vault-name>egy egyedi névre az Azure-ben. 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 KEY_VAULT_NAME környezeti változóhoz rendelt értéket fogja használni kulcstárhely neveként. Ezért ezt az értéket a következő paranccsal kell beállítania:
export KEY_VAULT_NAME=<vault-name>
Hozzáférés biztosítása a kulcstárolóhoz
Ha szerepköralapú hozzáférés-vezérléssel (RBAC) szeretne engedélyeket szerezni a kulcstartóban, rendeljen hozzá egy szerepkört a Felhasználói Főnévhez (UPN) az Azure CLI-paranccsal az "az role assignment create" használatával.
az role assignment create --role "Key Vault Crypto Officer" --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 (például username@domain.com) formátumában van.
A mintakód létrehozása
A Pythonhoz készült Azure Key Vault-kulcs ügyfélkódtár lehetővé teszi a titkosítási kulcsok kezelését. Az alábbi kódminta bemutatja, hogyan hozhat létre ügyfelet, állíthat be egy kulcsot, hogyan kérdezhet le és törölhet egy kulcsot.
Hozzon létre egy kv_keys.py nevű fájlt, amely tartalmazza ezt a kódot.
import os
from azure.keyvault.keys import KeyClient
from azure.identity import DefaultAzureCredential
keyVaultName = os.environ["KEY_VAULT_NAME"]
KVUri = "https://" + keyVaultName + ".vault.azure.net"
credential = DefaultAzureCredential()
client = KeyClient(vault_url=KVUri, credential=credential)
keyName = input("Input a name for your key > ")
print(f"Creating a key in {keyVaultName} called '{keyName}' ...")
rsa_key = client.create_rsa_key(keyName, size=2048)
print(" done.")
print(f"Retrieving your key from {keyVaultName}.")
retrieved_key = client.get_key(keyName)
print(f"Key with name '{retrieved_key.name}' was found.")
print(f"Deleting your key from {keyVaultName} ...")
poller = client.begin_delete_key(keyName)
deleted_key = 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_keys.py nevű fájlban található. Ezután futtassa a kódot a következő paranccsal:
python kv_keys.py
Ha újrafuttatja a kódot ugyanazzal a kulcsnévvel, a következő hibaüzenet jelenhet meg: "(Ütközés) A kulcs <name> jelenleg törölt, de helyreállítható állapotban van." Használjon másik kulcsnevet.
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 klienskö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ához a kódban.
DefaultAzureCredential több hitelesítési módszert támogat, és meghatározza, hogy melyik módszert kell használni futásidőben. 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 gyorsindítóban DefaultAzureCredential hitelesít a Key Vaulthoz az Azure CLI-be bejelentkezett helyi fejlesztési felhasználó hitelesítő adataival. Az alkalmazás Azure-ban való üzembe helyezésekor ugyanaz a DefaultAzureCredential kód automatikusan fel tudja deríteni és használni tud egy felügyelt identitást, amelyet egy App Service-hez, virtuális géphez vagy más szolgáltatáshoz rendeltek hozzá. További információért lásd a következőt: Felügyelt identitás áttekintése.
A példakódban a kulcstár neve bővítve lesz a KVUri változó értékével, a következő formátumban: https://<vault-name>.vault.azure.net.
credential = DefaultAzureCredential()
client = KeyClient(vault_url=KVUri, credential=credential)
Kulcs mentése
Miután beszerezte a kulcstár ügyfélobjektumát, tárolhat egy kulcsot a create_rsa_key metódussal.
rsa_key = client.create_rsa_key(keyName, size=2048)
Használhatja create_key vagy create_ec_key is.
Egy create metódus meghívása hívást generál az Azure REST API felé a Key Vault 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.
Kulcs lekérése
A Key Vaultból kulcs olvasásához használja a get_key metódust.
retrieved_key = client.get_key(keyName)
Azt is ellenőrizheti, hogy a kulcs be van-e állítva az Azure CLI-paranccsal az keyvault key show vagy az Azure PowerShell parancsmaggal Get-AzKeyVaultKey.
Kulcs törlése
Kulcs törléséhez használja a begin_delete_key metódust:
poller = client.begin_delete_key(keyName)
deleted_key = poller.result()
A begin_delete_key metódus aszinkron, és egy poller objektumot ad vissza. A poller result metódusának meghívása megvárja a befejezését.
A kulcs törlését a következő módon ellenőrizheti: az Azure CLI parancs az keyvault key show használatával, vagy az Azure PowerShell cmdlet Get-AzKeyVaultKey alkalmazásával.
A törlés után egy kulcs egy ideig törölt, de helyreállítható állapotban marad. Ha újra futtatja a kódot, használjon másik kulcsnevet.
Az erőforrások megtisztítása
Ha tanúsítványokkal és titkokkal is kísérletezni szeretne, újra felhasználhatja a cikkben létrehozott kulcstárat.
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
- Biztonságos hozzáférés egy kulcstárolóhoz
- Kulcsspecifikus biztonsági ajánlott eljárások
- RBAC útmutató
- Azure Key Vault fejlesztői útmutató
- Hitelesítés a Key Vaulttal