claude "/claude-api help me configure a customer-managed encryption key with AWS KMS"Questa guida illustra come configurare una chiave AWS KMS come customer-managed encryption key (chiave di crittografia gestita dal cliente), o CMEK per la tua organizzazione Anthropic.
L'abilitazione di CMEK è permanente. Se la tua chiave KMS viene eliminata o disabilitata, Anthropic non può recuperare i dati crittografati con essa. Consulta gli avvisi e le limitazioni prima di iniziare.
kms:CreateKey e kms:PutKeyPolicy).Affinché Anthropic utilizzi la tua chiave di crittografia, devi fornire al ruolo IAM di Anthropic una chiave KMS che possa usare per crittografare i dati. L'ARN per Anthropic CMEK è:
arn:aws:iam::915198916910:role/anthropic-cmek-client-usUsa solo questo ARN pubblicato. Non fidarti mai di un identificatore fornito via email, chat o qualsiasi canale di onboarding.
Crea la chiave KMS con una policy della chiave cross-account
La policy della chiave concede al ruolo IAM di Anthropic l'accesso cross-account. Sono richieste tre dichiarazioni:
kms:Encrypt e kms:Decrypt, che Anthropic usa per crittografare e decrittografare le chiavi dati che proteggono i dati del tuo workspace (crittografia a busta).DescribeKey non ha un parametro EncryptionContext, quindi una condizione EncryptionContext su questa azione negherebbe sempre l'accesso.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\": [
\"00000000-0000-0000-0000-000000000000\",
\"<compartment-uuid>\"
]
}
}
},
{
\"Sid\": \"AllowAnthropicCMEKDescribe\",
\"Effect\": \"Allow\",
\"Principal\": {\"AWS\": \"arn:aws:iam::915198916910:role/anthropic-cmek-client-us\"},
\"Action\": \"kms:DescribeKey\",
\"Resource\": \"*\"
}
]
}"Acquisisci KeyMetadata.Arn dall'output. Ti servirà quando registrerai la chiave nel passaggio successivo.
La condizione EncryptionContext è consigliata ma facoltativa. Anthropic include sempre l'ID del compartimento del tuo workspace nel contesto di crittografia, quindi il testo cifrato è comunque legato crittograficamente a quel compartimento. L'aggiunta della condizione fornisce una difesa in profondità a livello IAM. Per iniziare senza di essa, ometti il blocco Condition dalla dichiarazione AllowAnthropicCMEKCrypto e aggiungilo in seguito con kms:PutKeyPolicy.
Trovare il tuo ID compartimento: Dove trovare il tuo ID compartimento differisce tra Claude Platform e Claude Enterprise. Consulta le schede Claude Platform e Claude Enterprise sotto Registra la chiave con Anthropic.
Puoi anche creare la chiave dalla Console AWS. Scegli una chiave simmetrica con l'uso della chiave per crittografia e decrittografia, una chiave a regione singola e l'origine del materiale della chiave KMS. La procedura guidata Create-key applica una policy della chiave nel suo passaggio Review: se aggiungi lì l'ID account di Anthropic 915198916910 sotto i permessi di utilizzo della chiave, la policy generata concede all'intero account Anthropic azioni più ampie (come kms:ReEncrypt* e kms:GenerateDataKey*) senza condizione EncryptionContext, e la validazione avrebbe comunque successo. Per evitare di lasciare una chiave con permessi eccessivi, completa la procedura guidata solo con i permessi amministrativi, poi apri la scheda Key policy della chiave e sostituisci il JSON con la policy limitata al ruolo mostrata in precedenza (le tre dichiarazioni limitate al ruolo anthropic-cmek-client-us, con la condizione EncryptionContext).




Il modo in cui registri la chiave dipende dal prodotto che utilizzi.
Trovare il tuo ID compartimento: Ogni workspace ha un ID compartimento che delimita i suoi dati CMEK. Trovalo nella Claude Console sotto Workspace > Security > Encryption keys (il campo Compartment ID), oppure leggi il campo compartment_id restituito dall'endpoint Get Workspace. Sostituisci quel valore a <compartment-uuid> nella policy della chiave precedente.
La validazione della chiave invia sempre l'UUID del compartimento composto da soli zeri (00000000-0000-0000-0000-000000000000) come contesto di crittografia, perché la validazione viene eseguita prima che la chiave sia collegata a qualsiasi workspace. Il traffico reale invia l'ID compartimento di ciascun workspace collegato.
Qualsiasi condizione EncryptionContext deve consentire il valore composto da soli zeri più l'ID compartimento di ogni workspace a cui la chiave è collegata. La validazione viene eseguita nuovamente ogni volta che la configurazione della chiave viene rieseguita, quindi mantieni permanentemente la voce con soli zeri.
Per collegare la chiave a un workspace aggiuntivo, aggiungi l'ID compartimento di quel workspace alla condizione con kms:PutKeyPolicy prima di collegarla.
Registra la chiave con Anthropic
Crea una configurazione di chiave esterna tramite l'Admin API.
Per le organizzazioni su Claude Platform on AWS, gli endpoint per le chiavi esterne non sono ancora disponibili. Registra, valida e collega la tua chiave nella Claude Console.
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"
}
}'La risposta contiene l'ID della chiave esterna:
{
"type": "external_key",
"id": "ekey_<id>",
"display_name": "<friendly-name>"
}Valida la chiave
Attiva un ciclo completo di crittografia e decrittografia sulla tua chiave.
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 '{}'Una risposta di successo appare così:
{ "type": "external_key_validation", "status": "success", "error": null }Se la validazione fallisce, le cause comuni sono:
AccessDeniedException quando una condizione kms:EncryptionContext:anthropic:compartment_uuid consente solo uno dei due valori che Anthropic invia. La validazione invia l'UUID composto da soli zeri (00000000-0000-0000-0000-000000000000); il traffico reale invia l'ID compartimento del workspace collegato. Verifica che la condizione elenchi entrambi. Per escludere completamente la condizione, rimuovi temporaneamente il blocco Condition dalla dichiarazione AllowAnthropicCMEKCrypto e rivalida.aws:PrincipalOrgID non corrisponde alla tua organizzazione, questa blocca il ruolo cross-account di Anthropic. La RCP necessita di un'eccezione per questa chiave o per l'ARN del ruolo di Anthropic. Le service control policy non si applicano qui, perché non vengono valutate per i principal esterni che chiamano tramite policy basate sulle risorse.aws kms get-key-policy --key-id <id> --policy-name default.Collega la chiave a un 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>"
}'Per i deployment infrastructure-as-code, gli stessi passaggi corrispondono al provider aws con le risorse aws_kms_key e aws_kms_alias.
Was this page helpful?