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 le avvertenze e limitazioni prima di iniziare.
kms:CreateKey e kms:PutKeyPolicy).Per far sì che 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-usUtilizza solo questo ARN pubblicato. Non fidarti mai di un identificatore fornito tramite email, chat o qualsiasi canale di onboarding.
Crea la chiave KMS con una key policy cross-account
La key policy concede al ruolo IAM di Anthropic l'accesso cross-account. Sono necessarie tre istruzioni:
kms:Encrypt e kms:Decrypt, che Anthropic utilizza per crittografare e decrittografare le chiavi dati che proteggono i dati del tuo workspace (envelope encryption).DescribeKey non ha un parametro EncryptionContext, quindi una condizione EncryptionContext su questa azione risulterebbe sempre in un diniego.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\": \"*\"
}
]
}"Acquisisci KeyMetadata.Arn dall'output. Ti servirà quando registrerai la chiave nel passaggio successivo.
La condizione EncryptionContext è consigliata ma opzionale. Anthropic include sempre l'ID del compartment del tuo workspace nel contesto di crittografia, quindi il testo cifrato è comunque vincolato crittograficamente a quel compartment. L'aggiunta della condizione fornisce una difesa in profondità a livello IAM. Per iniziare senza di essa, ometti il blocco Condition dall'istruzione AllowAnthropicCMEKCrypto e aggiungilo in seguito con kms:PutKeyPolicy.
Trovare il tuo compartment ID: Ogni workspace ha un compartment ID che delimita l'ambito dei suoi dati CMEK. Trovalo nella Claude Console in 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 key policy sopra. Anthropic lo invia anche come contesto di crittografia durante la validazione della chiave, quindi il valore della condizione deve corrispondere affinché la validazione abbia successo.
Puoi anche creare la chiave dalla Console AWS. Scegli una chiave simmetrica con utilizzo della chiave per crittografia e decrittografia, una chiave a singola regione e origine del materiale della chiave KMS. La procedura guidata di creazione della chiave applica una key policy al passaggio Review: se aggiungi l'ID account di Anthropic 915198916910 nelle autorizzazioni di utilizzo della chiave in quel punto, la policy generata concede all'intero account Anthropic azioni più ampie (come kms:ReEncrypt* e kms:GenerateDataKey*) senza alcuna condizione EncryptionContext, e la validazione avrebbe comunque successo. Per evitare di lasciare una chiave con autorizzazioni eccessive, completa la procedura guidata solo con le autorizzazioni amministrative, quindi apri la scheda Key policy della chiave e sostituisci il JSON con la policy limitata al ruolo mostrata sopra (le tre istruzioni limitate al ruolo anthropic-cmek-client-us, con la condizione EncryptionContext).




Il modo in cui registri la chiave dipende dal prodotto che utilizzi.
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 ha questo aspetto:
{ "type": "external_key_validation", "status": "success", "error": null }Se la validazione fallisce, le cause comuni sono:
EncryptionContext nella key policy, verifica di aver sostituito <compartment-uuid> con l'effettivo compartment ID del tuo workspace (vedi il passaggio Crea la chiave KMS nella sezione Configurazione della chiave di crittografia). Un valore errato o non sostituito fa sì che KMS restituisca un'eccezione AccessDeniedException opaca. Per escludere questa causa, rimuovi temporaneamente il blocco Condition dall'istruzione AllowAnthropicCMEKCrypto e ripeti la validazione.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 in questo caso, perché non vengono valutate per i principal esterni che effettuano chiamate 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?