Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mulai menggunakan pustaka klien Azure Key Vault Managed HSM untuk Python. Managed HSM adalah layanan cloud yang dikelola sepenuhnya, tersedia tinggi, berpenyewa tunggal, sesuai standar yang memungkinkan Anda untuk melindungi kunci kriptografi aplikasi cloud Anda dengan menggunakan HSM yang tervalidasi FIPS 140-3 Level 3. Untuk informasi selengkapnya tentang HSM Terkelola, tinjau Gambaran Umum.
Panduan cepat ini mengajarkan Anda cara mengakses dan melakukan operasi kriptografi pada kunci di HSM yang Dikelola menggunakan pustaka klien Python.
Sumber daya pustaka klien HSM terkelola:
dokumentasi referensi API | Kode sumber pustaka | Package (PyPI)
Prasyarat
- Langganan Azure. Buat akun gratis.
- HSM Terkelola yang disediakan dan diaktifkan. Lihat Quickstart: Memprovisikan dan mengaktifkan HSM terkelola menggunakan Azure CLI.
- Kunci yang dibuat di HSM Terkelola Anda. Lihat Mengelola kunci di HSM Terkelola.
- Sumber daya Azure dengan identitas terkelola (seperti VM, App Service, atau Fungsi Azure) atau Azure CLI untuk pengembangan lokal.
- Identitas terkelola harus diberikan peran RBAC lokal HSM terkelola yang sesuai. Lihat Akses aman ke HSM terkelola Anda.
Siapkan lingkungan lokal Anda
Panduan mulai cepat ini menggunakan pustaka Identitas Azure, dengan Azure CLI, untuk mengautentikasi ke layanan Azure. Pengembang juga dapat menggunakan Visual Studio Code untuk mengautentikasi panggilan mereka. Untuk informasi selengkapnya, lihat Authenticate klien dengan pustaka klien Azure Identity.
Masuk ke Azure
Jalankan az login perintah untuk masuk:
az login
Membuat folder proyek dan lingkungan virtual
Buat folder proyek dan navigasikan ke folder tersebut:
mkdir mhsm-python-app && cd mhsm-python-appMembuat dan mengaktifkan lingkungan virtual:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
Instal paket-paket tersebut
Instal pustaka klien Azure Identity dan Key Vault Keys:
pip install azure-identity azure-keyvault-keys
Membuat kode sampel
Buat file bernama mhsm_keys.py dengan kode berikut. Ganti <hsm-name> dengan nama HSM Terkelola Anda, dan <key-name> dengan nama kunci yang ada.
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!")
Jalankan aplikasi
Jalankan aplikasi:
python mhsm_keys.py
Anda akan melihat output yang mirip dengan:
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!
Memahami kode
Autentikasi dengan DefaultAzureCredential
DefaultAzureCredential secara otomatis memilih kredensial yang sesuai berdasarkan lingkungan Anda:
| Lingkungan | Kredensial yang digunakan |
|---|---|
| Azure VM, App Service, Functions | Identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna |
| Azure Kubernetes Service | Identitas beban kerja |
| Pengembangan lokal | kredensial Azure CLI, Visual Studio, atau VS Code |
| Jalur CI/CD | Federasi identitas beban kerja atau prinsipal layanan |
Pemeriksaan kredensial memeriksa sumber-sumber ini secara berurutan:
- Variabel lingkungan
- Identitas beban kerja
- Identitas yang dikelola
- Azure CLI
- Azure PowerShell
- Kredensial untuk Visual Studio / VS Code
Untuk beban kerja produksi dalam Azure, identitas terkelola sangat disarankan karena menghilangkan manajemen kredensial sepenuhnya.
Operasi utama
Kelas ini KeyClient menyediakan metode untuk:
- Membuat, mendapatkan, memperbarui, dan menghapus kunci
- Mencantumkan kunci dan versi kunci
- Kunci untuk backup dan pemulihan
Kelas ini CryptographyClient menyediakan operasi kriptografi:
- Mengenkripsi dan mendekripsi data
- Menandatangani dan memverifikasi tanda tangan
- Membungkus dan membongkar kunci
Menetapkan peran HSM Terkelola
Agar aplikasi Anda dapat mengakses kunci, tetapkan peran RBAC lokal HSM Terkelola yang sesuai untuk identitas terkelola Anda. Ganti <vm-name>, <resource-group>, dan <hsm-name> dengan nilai aktual Anda.
# 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
Untuk informasi selengkapnya tentang peran dan izin, lihat Peran bawaan RBAC lokal HSM terkelola.
Membersihkan sumber daya
Jika tidak lagi diperlukan, hapus grup sumber daya dan semua sumber daya terkait:
az group delete --name <resource-group>
Peringatan
Menghapus grup sumber daya akan menempatkan HSM Terkelola dalam status dihapus sementara. HSM Terkelola terus ditagih hingga dihapus secara permanen. Lihat Penghapusan lunak dan perlindungan penghapusan HSM Terkelola
Langkah berikutnya
- Pelajari tentang Akses aman ke HSM terkelola Anda
- Mengonfigurasi rotasi kunci otomatis
- Tinjau Praktik Terbaik HSM Terkelola
- Pelajari tentang peran bawaan RBAC lokal yang ada pada Managed HSM