Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozpocznij pracę z biblioteką klienta zarządzanego modułu HSM Azure Key Vault na potrzeby Python. Kompleksowo zarządzany HSM to w pełni zarządzana, wysoce dostępna, jednostanowa usługa w chmurze zgodna ze standardami, która umożliwia ochronę kluczy kryptograficznych dla aplikacji w chmurze przy użyciu modułów HSM zweryfikowanych według standardu FIPS 140-3 poziomu 3. Aby uzyskać więcej informacji na temat zarządzanego modułu HSM, zapoznaj się z omówieniem.
Z tego przewodnika Szybki start dowiesz się, jak uzyskiwać dostęp do kluczy i wykonywać operacje kryptograficzne w zarządzanym module HSM przy użyciu biblioteki klienta Python.
Zasoby biblioteki klienta zarządzanego modułu HSM:
dokumentacja referencyjna API | biblioteka kodu źródłowego | Pakiet (PyPI)
Wymagania wstępne
- Subskrypcja Azure. Utwórz je bezpłatnie.
- Zarządzane HSM, które zostało wdrożone i aktywowane. Zobacz Quickstart: Aprowizuj i aktywuj zarządzany moduł HSM przy użyciu Azure CLI.
- Klucz utworzony w zarządzanym module HSM. Zobacz Zarządzanie kluczami w zarządzanym module HSM.
- Zasób Azure z tożsamością zarządzaną (taką jak maszyna wirtualna, usługa App Service lub funkcja Azure) lub Azure CLI na potrzeby programowania lokalnego.
- Tożsamość zarządzana musi mieć przypisaną odpowiednią lokalną rolę RBAC w Zarządzanym HSM. Zobacz Bezpieczny dostęp do zarządzanych modułów HSM.
Konfigurowanie środowiska lokalnego
W tym szybkim starcie użyto biblioteki Azure Identity z Azure CLI do uwierzytelniania usług na platformie Azure. Deweloperzy mogą również używać Visual Studio Code do uwierzytelniania wywołań. Aby uzyskać więcej informacji, zobacz Uwierzytelnij klienta za pomocą biblioteki Client Azure Identity.
Zaloguj się do Azure
Uruchom polecenie , az login aby się zalogować:
az login
Tworzenie folderu projektu i środowiska wirtualnego
Utwórz folder projektu i przejdź do niego:
mkdir mhsm-python-app && cd mhsm-python-appTworzenie i aktywowanie środowiska wirtualnego:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
Instalowanie pakietów
Zainstaluj biblioteki klienta Azure Identity i Key Vault Keys:
pip install azure-identity azure-keyvault-keys
Tworzenie przykładowego kodu
Utwórz plik o nazwie mhsm_keys.py z następującym kodem. Zastąp <hsm-name> nazwą zarządzanego HSM i <key-name> istniejącą nazwą klucza.
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!")
Uruchamianie aplikacji
Uruchom aplikację:
python mhsm_keys.py
Powinny zostać wyświetlone dane wyjściowe podobne do następujących:
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!
Omówienie kodu
Uwierzytelnianie przy użyciu DefaultAzureCredential
DefaultAzureCredential automatycznie wybiera odpowiednie poświadczenie na podstawie środowiska:
| Środowisko | Używane poświadczenia |
|---|---|
| Azure VMs, App Service, Funkcje | Tożsamość zarządzana przypisana przez system lub przypisana przez użytkownika |
| Azure Kubernetes Service | Tożsamość zadania |
| Rozwój lokalny | Azure CLI, Visual Studio lub poświadczenia programu VS Code |
| Potoki CI/CD | Federacja tożsamości obciążenia lub jednostka usługi |
Poświadczenie sprawdza te źródła w następującej kolejności:
- Zmienne środowiskowe
- Tożsamość zadania
- Tożsamość zarządzana
- Azure CLI
- Azure PowerShell
- Visual Studio / VS Code poświadczenia
W przypadku obciążeń produkcyjnych w Azure tożsamości zarządzane są zdecydowanie zalecane, ponieważ całkowicie eliminują zarządzanie poświadczeniami.
Kluczowe operacje
Klasa KeyClient udostępnia metody:
- Tworzenie, pobieranie, aktualizowanie i usuwanie kluczy
- Lista kluczy i wersji kluczy
- Tworzenie kopii zapasowych i przywracanie kluczy
Klasa CryptographyClient udostępnia operacje kryptograficzne:
- Szyfrowanie i odszyfrowywanie danych
- Podpisywanie i weryfikowanie podpisów
- Zawijanie i odpakowywanie kluczy
Przypisywanie ról zarządzanego modułu HSM
Aby aplikacja mogła uzyskiwać dostęp do kluczy, przypisz odpowiednią lokalną rolę RBAC zarządzanego modułu HSM do tożsamości zarządzanej. Zastąp <vm-name>, <resource-group> i <hsm-name> rzeczywistymi wartościami.
# 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
Aby uzyskać więcej informacji na temat ról i uprawnień, zobacz Zarządzanie lokalnymi rolami RBAC modułu HSM.
Uprzątnij zasoby
Gdy grupa zasobów i wszystkie powiązane zasoby nie będą już potrzebne, usuń je:
az group delete --name <resource-group>
Ostrzeżenie
Usunięcie grupy zasobów powoduje przełączenie zarządzanego modułu HSM do stanu usunięcia nietrwałego. Zarządzany moduł HSM będzie nadal rozliczany, dopóki nie zostanie usunięty. Zobacz Nietrwałe usuwanie zarządzanego modułu HSM i ochrona przed przeczyszczaniem
Następne kroki
- Dowiedz się więcej o bezpiecznym dostępie do zarządzanych modułów HSM
- Konfigurowanie zautomatyzowanego obracania kluczy
- Przejrzyj najlepsze praktyki dotyczące zarządzanego HSM
- Dowiedz się więcej o rolach wbudowanych lokalnej kontroli dostępu opartej na rolach zarządzanego modułu HSM