Rövid útmutató: Azure Key Vault felügyelt HSM klienskönyvtár Pythonhoz

Kezdjen a Python Azure Key Vault felügyelt HSM ügyféltár használatával. A felügyelt HSM egy teljes körűen felügyelt, magas rendelkezésre állású, egybérlős, szabványoknak megfelelő felhőszolgáltatás, amely lehetővé teszi a titkosítási kulcsok védelmét a felhőalkalmazások számára a FIPS 140-3 3. szintű hitelesített HSM-ekkel. A felügyelt HSM-ről további információt az áttekintésben talál.

Ebben a rövid útmutatóban megtudhatja, hogyan érheti el és hajthatja végre a titkosítási műveleteket egy felügyelt HSM kulcsaiban az Python ügyfélkódtár használatával.

Felügyelt HSM-ügyfélkódtár erőforrásai:

API referenciadokumentáció | Library forráskód | Package (PyPI)

Előfeltételek

A helyi környezet beállítása

Ez a rövid útmutató az Azure Identity könyvtárat használja az Azure CLI-vel az Azure szolgáltatások hitelesítéséhez. A fejlesztők Visual Studio Code is használhatják hívásaik hitelesítéséhez. További információ: A Azure Identity-ügyfélkódtár használatával történő hitelesítése.

Bejelentkezés a Azure

A bejelentkezéshez futtassa a az login parancsot:

az login

Projektmappa és virtuális környezet létrehozása

  1. Hozzon létre egy projektmappát, és navigáljon hozzá:

    mkdir mhsm-python-app && cd mhsm-python-app
    
  2. Virtuális környezet létrehozása és aktiválása:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    

A csomagok telepítése

Telepítse a Azure Identitás és Key Vault Kulcsok ügyfélkódtárakat:

pip install azure-identity azure-keyvault-keys

A mintakód létrehozása

Hozzon létre egy fájlt mhsm_keys.py az alábbi kóddal. Cserélje le a <hsm-name> kifejezést a felügyelt HSM nevére, és a <key-name> kifejezést egy meglévő kulcs nevére.

from azure.identity import DefaultAzureCredential
from azure.keyvault.keys import KeyClient
from azure.keyvault.keys.crypto import CryptographyClient, EncryptionAlgorithm

# Use DefaultAzureCredential for automatic credential selection
credential = DefaultAzureCredential()

# Connect to Managed HSM - replace with your HSM URI
hsm_uri = "https://<hsm-name>.managedhsm.azure.net"
key_client = KeyClient(vault_url=hsm_uri, credential=credential)

# Get a key reference
key_name = "<key-name>"
print(f"Retrieving key '{key_name}' from Managed HSM...")
key = key_client.get_key(key_name)
print(f"Key retrieved. Key type: {key.key_type}")

# Perform cryptographic operations
crypto_client = CryptographyClient(key, credential)

# Encrypt data
plaintext = b"Hello, Managed HSM!"
print(f"\nOriginal text: {plaintext.decode()}")

encrypt_result = crypto_client.encrypt(EncryptionAlgorithm.rsa_oaep_256, plaintext)
print(f"Encrypted (hex): {encrypt_result.ciphertext.hex()[:64]}...")

# Decrypt data
decrypt_result = crypto_client.decrypt(EncryptionAlgorithm.rsa_oaep_256, encrypt_result.ciphertext)
print(f"Decrypted text: {decrypt_result.plaintext.decode()}")

print("\nDone!")

Az alkalmazás futtatása

Futtassa az alkalmazást:

python mhsm_keys.py

A következőhöz hasonló kimenetnek kell megjelennie:

Retrieving key 'myrsakey' from Managed HSM...
Key retrieved. Key type: RSA-HSM

Original text: Hello, Managed HSM!
Encrypted (hex): 5a8f3b2c1d4e5f6a7b8c9d0e1f2a3b4c...
Decrypted text: Hello, Managed HSM!

Done!

A kód értelmezése

Hitelesítés DefaultAzureCredential használatával

DefaultAzureCredential a környezet alapján automatikusan kiválasztja a megfelelő hitelesítő adatokat:

Környezet Használt hitelesítő adatok
Azure virtuális gépek, App Service, Funkciók Rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitás
Azure Kubernetes Service Munkaterhelés-azonosság
Helyi fejlesztés Azure CLI, Visual Studio vagy VS Code hitelesítő adatai
CI/CD csővezetékek Számítási feladat identitásának összevonása vagy szolgáltatásnév

A hitelesítési folyamat a forrásokat a következő sorrendben ellenőrzi:

  1. Környezeti változók
  2. Munkaterhelés-azonosság
  3. Felügyelt identitás
  4. Azure CLI
  5. Azure PowerShell
  6. Visual Studio/ VS Code hitelesítő adatai

A Azure éles számítási feladatai esetében erősen ajánlott a felügyelt identitások használata, mert teljesen megszüntetik a hitelesítő adatok kezelését.

Kulcsműveletek

Az KeyClient osztály a következő módszereket kínálja:

  • Kulcsok létrehozása, lekérése, frissítése és törlése
  • Kulcsok és kulcsverziók listázása
  • Kulcsok biztonsági mentése és visszaállítása

Az CryptographyClient osztály titkosítási műveleteket biztosít:

  • Adatok titkosítása és visszafejtése
  • Aláírások aláírása és ellenőrzése
  • Kulcsok csomagolása és kibontása

Felügyelt HSM szerepkörök hozzárendelése

Ahhoz, hogy az alkalmazás hozzáférhessen a kulcsokhoz, rendelje hozzá a megfelelő felügyelt HSM helyi RBAC-szerepkört a felügyelt identitáshoz. Cserélje le <vm-name>-t, <resource-group>-t és <hsm-name>-t a tényleges értékekre.

# Get the principal ID of your managed identity
principalId=$(az vm identity show --name <vm-name> --resource-group <resource-group> --query principalId -o tsv)

# Assign the Crypto User role for key operations
az keyvault role assignment create \
    --hsm-name <hsm-name> \
    --role "Managed HSM Crypto User" \
    --assignee $principalId \
    --scope /keys

További információt a szerepkörökről és engedélyekről a felügyelt HSM helyi RBAC beépített szerepkörei című dokumentumban talál.

Erőforrások tisztítása

Ha már nincs rá szükség, törölje az erőforráscsoportot és az összes kapcsolódó erőforrást:

az group delete --name <resource-group>

Figyelmeztetés

Az erőforráscsoport törlésével a felügyelt HSM helyreállíthatóan törölt állapotba kerül. A felügyelt HSM számlázása a végleges törléséig folytatódik. Lásd: A Managed HSM lágy törlése és a törlés elleni védelem

Következő lépések