Rychlý start: klientská knihovna spravovaného HSM Azure Key Vault pro Python

Začínáme s klientskou knihovnou Azure Key Vault Managed HSM pro Python Spravovaný HSM je plně spravovaná, vysoce dostupná cloudová služba určená pro jednoho nájemce, která umožňuje chránit kryptografické klíče pro cloudové aplikace s využitím ověřených HSM splňujících standard FIPS 140-3 úroveň 3. Další informace o spravovaném HSM najdete v přehledu.

V tomto rychlém startu se dozvíte, jak přistupovat ke klíčům spravovaného HSM a provádět kryptografické operace pomocí klientské knihovny Python.

Spravované prostředky klientské knihovny HSM:

Referenční dokumentace k API | Břery zdrojový kód | Package (PyPI)

Předpoklady

Nastavení místního prostředí

Tento rychlý start používá knihovnu identit Azure s Azure CLI k ověření ve službách Azure. Vývojáři také můžou k ověření volání použít Visual Studio Code. Další informace najdete v tématu Ověření klienta pomocí klientské knihovny Azure Identity.

Přihlášení k Azure

Spuštěním az login příkazu se přihlaste:

az login

Vytvoření složky projektu a virtuálního prostředí

  1. Vytvořte složku projektu a přejděte na ni:

    mkdir mhsm-python-app && cd mhsm-python-app
    
  2. Vytvoření a aktivace virtuálního prostředí:

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

Instalace balíčků

Nainstalujte klientské knihovny Azure Identity a Azure Key Vault Keys.

pip install azure-identity azure-keyvault-keys

Vytvoření ukázkového kódu

Vytvořte soubor s názvem mhsm_keys.py s následujícím kódem. Nahraďte <hsm-name> názvem spravovaného HSM a <key-name> názvem existujícího klíče.

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

Spuštění aplikace

Spusťte aplikaci:

python mhsm_keys.py

Měl by se zobrazit výstup podobný následujícímu:

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!

Vysvětlení kódu

Ověřování pomocí DefaultAzureCredential

DefaultAzureCredential automaticky vybere příslušné přihlašovací údaje na základě vašeho prostředí:

Životní prostředí Použité přihlašovací údaje
Azure VMs, App Service, Functions Spravovaná identita přiřazená systémem nebo přiřazená uživatelem
Azure Kubernetes Service Identita úloh
Místní vývoj Azure CLI, Visual Studio nebo přihlašovací údaje VS Code
Kanály CI/CD Federace identit pracovního zatížení nebo objekt služby

Kontrola přihlašovacích údajů využívá tyto zdroje v pořadí:

  1. Proměnné prostředí
  2. Identita úloh
  3. Spravovaná identita
  4. Azure CLI
  5. Azure PowerShell
  6. Visual Studio / přihlašovací údaje VS Code

Pro produkční úlohy v Azure se důrazně doporučují spravované identity, protože zcela eliminují správu přihlašovacích údajů.

Klíčové operace

Třída KeyClient poskytuje metody pro:

  • Vytvoření, získání, aktualizace a odstranění klíčů
  • Výpis klíčů a verzí klíčů
  • Zálohování a obnovení klíčů

Třída CryptographyClient poskytuje kryptografické operace:

  • Šifrování a dešifrování dat
  • Podepsání a ověření podpisů
  • Zabalení a rozbalení klíčů

Přiřazení rolí ve spravovaném HSM

Aby vaše aplikace mohla přistupovat ke klíčům, přiřaďte správnou místní roli RBAC Managed HSM k vaší spravované identitě. Nahraďte hodnoty <vm-name>, <resource-group> a <hsm-name> skutečnými hodnotami.

# 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

Další informace o rolích a oprávněních naleznete v vestavěné role místního RBAC pro spravované HSM.

Vyčistěte zdroje

Pokud už ji nepotřebujete, odstraňte skupinu prostředků a všechny související prostředky:

az group delete --name <resource-group>

Výstraha

Odstraněním skupiny prostředků se spravovaný HSM umístí do stavu měkkého odstranění. Spravovaný HSM bude nadále účtován, dokud se neodstraní. Viz Ochrana proti měkkému odstranění a zneužití spravovaného HSM

Další kroky