Mengonfigurasi Azure Key Vault untuk CMEK
Gunakan Azure Key Vault untuk menyediakan kunci enkripsi bagi organisasi Anda.
claude "/claude-api help me configure a customer-managed encryption key with Azure Key Vault"Panduan ini menjelaskan langkah-langkah mengonfigurasi kunci Azure Key Vault sebagai "customer-managed encryption key" (kunci enkripsi yang dikelola pelanggan), atau CMEK untuk organisasi Anthropic Anda.
Prasyarat
- Azure Key Vault dengan otorisasi RBAC diaktifkan (
enableRbacAuthorization: true) dan akses jaringan publik diizinkan. Anthropic memanggil vault Anda melalui endpoint data-plane publik; private endpoint tidak didukung. - Purge protection diaktifkan (
enablePurgeProtection: true) pada vault. Tanpanya, kunci yang dihapus dapat di-purge secara permanen selama jendela retensi soft-delete, yang menyebabkan kehilangan data terlindungi CMEK Anda secara permanen. Purge protection tidak dapat dinonaktifkan setelah diaktifkan. - Izin untuk membuat kunci di vault dan untuk menetapkan peran RBAC pada vault tersebut.
- Izin untuk membuat service principal di tenant Entra Anda (
Application Administrator,Cloud Application Administrator, atau peran kustom yang setara). - Kunci Admin API Anthropic untuk organisasi Anda.
- CLI
azterinstal dan terautentikasi. - Diagnostic Settings dikonfigurasi pada vault untuk merutekan kategori log
AuditEventke Log Analytics, storage account, atau event hub. Azure Key Vault tidak mengeluarkan log audit data-plane (sepertiKeyWrap,KeyUnwrap, danKeyGet) secara default, sehingga tanpa ini Anda tidak mendapatkan jejak audit untuk operasi kunci yang dilakukan Anthropic.
Informasi aplikasi Anthropic
Agar Anthropic dapat menggunakan kunci enkripsi Anda, Anda harus mengonfigurasi ID aplikasi multitenant Anthropic dan nama tampilannya. Nilai-nilai tersebut adalah:
| Field | Nilai |
|---|---|
| Client ID aplikasi multitenant (US) | 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 |
| Nama tampilan aplikasi | anthropic-cmek-client-us |
Penyiapan kunci enkripsi
Berikan persetujuan untuk aplikasi multitenant Anthropic
Langkah ini membuat service principal di tenant Entra Anda untuk aplikasi klien CMEK Anthropic. Aplikasi ini tidak meminta izin Microsoft Graph apa pun; aplikasi ini hanya ada sebagai target federasi untuk akses data-plane Key Vault.
az ad sp create --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87Dari output, catat field
id. Ini adalah object ID service principal di tenant Anda, yang Anda gunakan saat menetapkan peran RBAC.{ "appId": "8635ae1a-3e5d-44e8-a4ed-e0f614466f87", "displayName": "anthropic-cmek-client-us", "id": "<sp-object-id>" }Jika service principal sudah ada di tenant Anda (dari percobaan sebelumnya atau integrasi lain),
az ad sp createakan keluar dengan error "already exists". Ambil object ID-nya sebagai gantinya:az ad sp show --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 --query id -o tsvLangkah ini tidak memiliki padanan di Portal. Jika Anda tidak memiliki Azure CLI yang terinstal secara lokal, buka Cloud Shell dari bilah navigasi atas Portal. Setelah perintah berhasil, Anda dapat menemukan object ID service principal di Microsoft Entra ID > Enterprise applications dengan menghapus filter tipe aplikasi default dan mencari
anthropic-cmek-client-us.
Temukan Object ID service principal pada halaman ringkasan enterprise application Entra-nya. Buat kunci RSA di vault Anda
Azure Key Vault tidak mendukung symmetric key wrapping, sehingga kunci harus berupa RSA (3072-bit atau lebih besar) dengan
wrapKeydanunwrapKeydalam operasi yang diizinkan.az keyvault key create \ --vault-name <your-vault-name> \ --name <your-key-name> \ --kty RSA --size 3072 \ --ops wrapKey unwrapKeyUntuk kunci yang didukung HSM, gunakan
--kty RSA-HSM(memerlukan vault dengan SKU Premium). Kunci RSA yang dilindungi perangkat lunak dapat diterima untuk integrasi ini.Dari Portal, buka Key Vault Anda, pilih Keys, lalu Generate/Import. Atur tipe kunci ke RSA dan ukurannya ke 3072 atau lebih besar. Untuk membatasi kunci hanya untuk wrap dan unwrap, buka versi kunci, gulir ke Permitted operations, dan hapus centang semuanya kecuali Wrap Key dan Unwrap Key.

Buat kunci RSA berukuran 3072 atau lebih besar. 
Batasi Permitted operations (operasi yang diizinkan) ke Wrap Key dan Unwrap Key. Berikan akses ke kunci Anda kepada service principal Anthropic
Tetapkan peran
Key Vault Crypto Userke service principal dari langkah pertama, dengan cakupan pada kunci individual, bukan seluruh vault.VAULT_ID=$(az keyvault show --name <your-vault-name> --query id -o tsv) az role assignment create \ --role "Key Vault Crypto User" \ --assignee-object-id <sp-object-id> \ --assignee-principal-type ServicePrincipal \ --scope "${VAULT_ID}/keys/<your-key-name>"Peran bawaan
Key Vault Crypto Usermemberikan operasi kriptografi kunci (encrypt, decrypt, wrap, unwrap, sign, verify) ditambah pembacaan kunci pada cakupan yang ditetapkan. Pembatasan--ops wrapKey unwrapKeyyang Anda atur pada kunci di langkah sebelumnya semakin mempersempit operasi mana yang dapat berhasil terhadap kunci ini, sehingga dalam praktiknya Anthropic hanya dapat melakukan wrap dan unwrap.Dari Portal, buka kunci (bukan vault), pilih tab Access control (IAM), klik Add > Add role assignment, pilih Key Vault Crypto User, dan tetapkan ke service principal
anthropic-cmek-client-us.
Tetapkan Key Vault Crypto User ke service principal Anthropic, dengan cakupan pada kunci. Verifikasi konfigurasi vault Anda
az keyvault show --name <your-vault-name> \ --query "{rbac:properties.enableRbacAuthorization, purge:properties.enablePurgeProtection, pub:properties.publicNetworkAccess, net:properties.networkAcls.defaultAction, ipRules:properties.networkAcls.ipRules, uri:properties.vaultUri, tenantId:properties.tenantId}"Pastikan bahwa:
rbacbernilaitrue.purgebernilaitrue. Jika bernilaifalseataunull, aktifkan purge protection pada vault sebelum melanjutkan. Tanpanya, kunci yang di-soft-delete dapat di-purge secara permanen selama jendela retensi, sehingga data terlindungi CMEK Anda tidak dapat dipulihkan.pubbernilai"Enabled". Jika bernilai"Disabled", Anthropic tidak dapat menjangkau vault melalui endpoint data-plane publiknya dan validasi akan gagal.netbernilai"Allow", atau, jika bernilai"Deny", pastikanipRulesmencakup rentang egress Anthropic (hubungi Anthropic untuk daftar terbaru).uriadalah URI vault yang Anda gunakan saat mendaftarkan kunci.tenantIdadalah tenant yang mengatur vault. Gunakan nilai ini sebagaitenant_idsaat Anda mendaftarkan kunci, bukan tenant dari subscription Anda yang sedang aktif (keduanya dapat berbeda dalam penyiapan lintas tenant).
Daftarkan kunci ke Anthropic
Cara Anda mendaftarkan kunci bergantung pada produk yang Anda gunakan.
Daftarkan kunci ke Anthropic
Buat konfigurasi kunci eksternal melalui Admin API.
client = anthropic.Anthropic() external_key = client.beta.organization.external_keys.create( display_name="<friendly-name>", geo="us", provider_config={ "type": "azure", "vault_uri": "https://<your-vault-name>.vault.azure.net/", "key_name": "<your-key-name>", "tenant_id": "<your-tenant-id>", }, ) print(f"id: {external_key.id}") print(f"display_name: {external_key.display_name}")Respons berisi ID kunci eksternal:
{ "type": "external_key", "id": "ekey_<id>", "display_name": "<friendly-name>" }Validasi kunci
Picu proses encrypt dan decrypt bolak-balik terhadap kunci Anda. Ini memastikan bahwa Anthropic dapat melakukan autentikasi ke tenant Anda dan melakukan operasi wrap dan unwrap.
client = anthropic.Anthropic() validation = client.beta.organization.external_keys.validate("ekey_<id>") print(f"status: {validation.status}") print(f"error: {validation.error}")Respons yang berhasil terlihat seperti ini:
{ "type": "external_key_validation", "status": "success", "error": null }Jika validasi gagal, field
errormenjelaskan masalahnya. Penyebab umumnya adalah:- Penundaan propagasi RBAC: penetapan peran dapat memerlukan beberapa menit untuk berlaku. Tunggu dan coba lagi.
- ACL jaringan memblokir Anthropic: pastikan akses jaringan publik dan
ipRulesseperti yang dijelaskan pada langkah verifikasi. - Kebijakan conditional access pada workload identity: jika tenant Anda memiliki kebijakan conditional access yang menargetkan service principal, kecualikan service principal Anthropic atau tambahkan rentang egress Anthropic ke named locations kebijakan tersebut.
Lampirkan kunci ke workspace
Setelah kunci divalidasi, lampirkan ke workspace baru sebelum Anda mengirim permintaan apa pun ke workspace tersebut. Untuk workspace yang sudah menerima permintaan, kunci dapat memerlukan waktu hingga satu hari untuk berlaku.
client = anthropic.Anthropic() workspace = client.beta.organization.workspaces.update( "<workspace-id>", external_key_id="ekey_<id>" ) print(f"id: {workspace.id}") print(f"external_key_id: {workspace.external_key_id}")
Terraform
Untuk deployment infrastructure-as-code, langkah-langkah yang sama dipetakan ke provider azurerm dan azuread.
Was this page helpful?