claude "/claude-api help me configure a customer-managed encryption key with AWS KMS"Panduan ini menjelaskan langkah-langkah mengonfigurasi kunci AWS KMS sebagai "customer-managed encryption key" (kunci enkripsi yang dikelola pelanggan), atau CMEK, untuk organisasi Anthropic Anda.
Mengaktifkan CMEK bersifat permanen. Jika kunci KMS Anda dihapus atau dinonaktifkan, Anthropic tidak dapat memulihkan data yang dienkripsi dengan kunci tersebut. Tinjau peringatan dan batasan sebelum Anda memulai.
kms:CreateKey dan kms:PutKeyPolicy).Agar Anthropic dapat menggunakan kunci enkripsi Anda, Anda harus memberikan peran IAM Anthropic sebuah kunci KMS yang dapat digunakan untuk mengenkripsi data. ARN untuk CMEK Anthropic adalah:
arn:aws:iam::915198916910:role/anthropic-cmek-client-usGunakan hanya ARN yang dipublikasikan ini. Jangan pernah memercayai pengidentifikasi yang diberikan melalui email, chat, atau saluran onboarding apa pun.
Buat kunci KMS dengan kebijakan kunci lintas akun
Kebijakan kunci memberikan akses lintas akun kepada peran IAM Anthropic. Tiga pernyataan diperlukan:
kms:Encrypt dan kms:Decrypt, yang digunakan Anthropic untuk mengenkripsi dan mendekripsi kunci data yang melindungi data workspace Anda (envelope encryption).DescribeKey tidak memiliki parameter EncryptionContext, sehingga kondisi EncryptionContext pada tindakan ini akan selalu menolak.export YOUR_ACCOUNT=$(aws sts get-caller-identity --query Account --output text)
aws kms create-key \
--region <region> \
--description "Anthropic CMEK" \
--key-usage ENCRYPT_DECRYPT \
--policy "{
\"Version\": \"2012-10-17\",
\"Statement\": [
{
\"Sid\": \"AccountRootAdmin\",
\"Effect\": \"Allow\",
\"Principal\": {\"AWS\": \"arn:aws:iam::${YOUR_ACCOUNT}:root\"},
\"Action\": \"kms:*\",
\"Resource\": \"*\"
},
{
\"Sid\": \"AllowAnthropicCMEKCrypto\",
\"Effect\": \"Allow\",
\"Principal\": {\"AWS\": \"arn:aws:iam::915198916910:role/anthropic-cmek-client-us\"},
\"Action\": [\"kms:Encrypt\", \"kms:Decrypt\"],
\"Resource\": \"*\",
\"Condition\": {
\"StringEquals\": {
\"kms:EncryptionContext:anthropic:compartment_uuid\": \"<compartment-uuid>\"
}
}
},
{
\"Sid\": \"AllowAnthropicCMEKDescribe\",
\"Effect\": \"Allow\",
\"Principal\": {\"AWS\": \"arn:aws:iam::915198916910:role/anthropic-cmek-client-us\"},
\"Action\": \"kms:DescribeKey\",
\"Resource\": \"*\"
}
]
}"Cara Anda mendaftarkan kunci bergantung pada produk yang Anda gunakan.
Untuk deployment infrastructure-as-code, langkah-langkah yang sama dipetakan ke provider aws dengan sumber daya aws_kms_key dan aws_kms_alias.
Was this page helpful?
Catat KeyMetadata.Arn dari output. Anda memerlukannya saat mendaftarkan kunci pada langkah berikutnya.
Kondisi EncryptionContext direkomendasikan tetapi bersifat opsional. Anthropic selalu menyertakan compartment ID workspace Anda dalam encryption context, sehingga ciphertext terikat secara kriptografis ke compartment tersebut terlepas dari kondisi ini. Menambahkan kondisi ini memberikan pertahanan berlapis (defense-in-depth) pada lapisan IAM. Untuk memulai tanpa kondisi ini, hilangkan blok Condition dari pernyataan AllowAnthropicCMEKCrypto dan tambahkan nanti dengan kms:PutKeyPolicy.
Menemukan compartment ID Anda: Setiap workspace memiliki compartment ID yang membatasi cakupan data CMEK-nya. Temukan di Claude Console pada Workspace > Security > Encryption keys (kolom Compartment ID), atau baca kolom compartment_id yang dikembalikan oleh endpoint Get Workspace. Gantikan nilai tersebut untuk <compartment-uuid> dalam kebijakan kunci di atas. Anthropic juga mengirimkannya sebagai encryption context saat memvalidasi kunci, sehingga nilai kondisi harus cocok agar validasi berhasil.
Anda juga dapat membuat kunci dari AWS Console. Pilih kunci simetris dengan penggunaan kunci encrypt and decrypt, kunci single-region, dan asal materi kunci KMS. Wizard Create-key menerapkan kebijakan kunci pada langkah Review: jika Anda menambahkan ID akun Anthropic 915198916910 di bawah izin penggunaan kunci di sana, kebijakan yang dihasilkan memberikan seluruh akun Anthropic tindakan yang lebih luas (seperti kms:ReEncrypt* dan kms:GenerateDataKey*) tanpa kondisi EncryptionContext, dan validasi tetap akan berhasil terhadapnya. Untuk menghindari meninggalkan kunci dengan izin berlebihan, selesaikan wizard hanya dengan izin administratif, lalu buka tab Key policy pada kunci tersebut dan ganti JSON dengan kebijakan yang dibatasi ke peran seperti yang ditunjukkan di atas (tiga pernyataan yang dibatasi ke peran anthropic-cmek-client-us, dengan kondisi EncryptionContext).




Daftarkan kunci ke Anthropic
Buat konfigurasi kunci eksternal melalui Admin API.
Untuk organisasi yang menggunakan Claude Platform on AWS, endpoint kunci eksternal belum tersedia. Daftarkan, validasi, dan lampirkan kunci Anda di Claude Console sebagai gantinya.
curl -sS https://api.anthropic.com/v1/organizations/external_keys \
-H "x-api-key: <anthropic-admin-api-key>" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"display_name": "<friendly-name>",
"geo": "us",
"provider_config": {
"type": "aws",
"kms_arn": "<key-arn-from-create-key-step>",
"role_arn": "arn:aws:iam::915198916910:role/anthropic-cmek-client-us"
}
}'Respons berisi ID kunci eksternal:
{
"type": "external_key",
"id": "ekey_<id>",
"display_name": "<friendly-name>"
}Validasi kunci
Picu round-trip enkripsi dan dekripsi terhadap kunci Anda.
curl -sS -X POST https://api.anthropic.com/v1/organizations/external_keys/ekey_<id>/validate \
-H "x-api-key: <anthropic-admin-api-key>" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" -d '{}'Respons yang berhasil terlihat seperti ini:
{ "type": "external_key_validation", "status": "success", "error": null }Jika validasi gagal, penyebab umumnya adalah:
EncryptionContext dalam kebijakan kunci, pastikan Anda telah mengganti <compartment-uuid> dengan compartment ID workspace Anda yang sebenarnya (lihat langkah Buat kunci KMS di bagian Penyiapan kunci enkripsi). Nilai yang salah atau belum diganti membuat KMS mengembalikan AccessDeniedException yang tidak jelas. Untuk mengesampingkan kemungkinan ini, hapus sementara blok Condition dari pernyataan AllowAnthropicCMEKCrypto dan validasi ulang.aws:PrincipalOrgID tidak cocok dengan organisasi Anda, RCP tersebut memblokir peran lintas akun Anthropic. RCP memerlukan pengecualian untuk kunci ini atau untuk ARN peran Anthropic. Service control policies tidak berlaku di sini, karena tidak dievaluasi untuk principal eksternal yang memanggil melalui kebijakan berbasis sumber daya.aws kms get-key-policy --key-id <id> --policy-name default.Lampirkan kunci ke workspace
curl -sS -X POST https://api.anthropic.com/v1/organizations/workspaces/<workspace-id> \
-H "x-api-key: <anthropic-admin-api-key>" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"external_key_id": "ekey_<id>"
}'