claude "/claude-api help me configure a customer-managed encryption key with AWS KMS"Это руководство описывает настройку ключа AWS KMS в качестве «customer-managed encryption key» (ключа шифрования, управляемого клиентом), или CMEK, для вашей организации Anthropic.
Включение CMEK необратимо. Если ваш ключ KMS будет удалён или отключён, Anthropic не сможет восстановить данные, зашифрованные с его помощью. Ознакомьтесь с предупреждениями и ограничениями, прежде чем начать.
kms:CreateKey и kms:PutKeyPolicy).Чтобы Anthropic использовала ваш ключ шифрования, вы должны предоставить IAM-роли Anthropic ключ KMS, который она сможет использовать для шифрования данных. ARN для Anthropic CMEK:
arn:aws:iam::915198916910:role/anthropic-cmek-client-usИспользуйте только этот опубликованный ARN. Никогда не доверяйте идентификатору, полученному по электронной почте, в чате или через любой канал онбординга.
Создайте ключ KMS с политикой ключа для межаккаунтного доступа
Политика ключа предоставляет IAM-роли Anthropic межаккаунтный доступ. Требуются три инструкции (statements):
kms:Encrypt и kms:Decrypt, которые Anthropic использует для шифрования и расшифровки ключей данных, защищающих данные вашего рабочего пространства (конвертное шифрование).DescribeKey не имеет параметра EncryptionContext, поэтому условие EncryptionContext для этого действия всегда приводило бы к отказу.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\": \"*\"
}
]
}"Сохраните значение KeyMetadata.Arn из вывода. Оно понадобится вам при регистрации ключа на следующем шаге.
Условие EncryptionContext рекомендуется, но не является обязательным. Anthropic всегда включает идентификатор отсека (compartment ID) вашего рабочего пространства в контекст шифрования, поэтому шифротекст криптографически привязан к этому отсеку в любом случае. Добавление условия обеспечивает глубокоэшелонированную защиту на уровне IAM. Чтобы начать без него, опустите блок Condition из инструкции AllowAnthropicCMEKCrypto и добавьте его позже с помощью kms:PutKeyPolicy.
Как найти идентификатор отсека: каждое рабочее пространство имеет идентификатор отсека, который ограничивает область его данных CMEK. Найдите его в Claude Console в разделе Workspace > Security > Encryption keys (поле Compartment ID) или прочитайте поле compartment_id, возвращаемое эндпоинтом Get Workspace. Подставьте это значение вместо <compartment-uuid> в приведённой выше политике ключа. Anthropic также отправляет его в качестве контекста шифрования при проверке ключа, поэтому значение условия должно совпадать, чтобы проверка прошла успешно.
Вы также можете создать ключ через AWS Console. Выберите симметричный ключ с назначением «encrypt and decrypt» (шифрование и расшифровка), ключ для одного региона и источник материала ключа KMS. Мастер создания ключа фиксирует политику ключа на шаге Review: если вы добавите идентификатор аккаунта Anthropic 915198916910 в разделе разрешений на использование ключа, сгенерированная политика предоставит всему аккаунту Anthropic более широкие действия (такие как kms:ReEncrypt* и kms:GenerateDataKey*) без условия EncryptionContext, и проверка всё равно пройдёт успешно. Чтобы не оставлять ключ с избыточными разрешениями, завершите работу мастера только с административными разрешениями, затем откройте вкладку Key policy ключа и замените JSON на политику с ограничением по роли, показанную выше (три инструкции, ограниченные ролью anthropic-cmek-client-us, с условием EncryptionContext).




Способ регистрации ключа зависит от того, какой продукт вы используете.
Зарегистрируйте ключ в Anthropic
Создайте конфигурацию внешнего ключа через Admin API.
Для организаций, использующих Claude Platform на AWS, эндпоинты внешних ключей пока недоступны. Вместо этого зарегистрируйте, проверьте и прикрепите ваш ключ в 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"
}
}'Ответ содержит идентификатор внешнего ключа:
{
"type": "external_key",
"id": "ekey_<id>",
"display_name": "<friendly-name>"
}Проверьте ключ
Запустите цикл шифрования и расшифровки с использованием вашего ключа.
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 '{}'Успешный ответ выглядит так:
{ "type": "external_key_validation", "status": "success", "error": null }Если проверка не проходит, распространённые причины следующие:
EncryptionContext в политике ключа, убедитесь, что вы заменили <compartment-uuid> на фактический идентификатор отсека вашего рабочего пространства (см. шаг «Создайте ключ KMS» в разделе «Настройка ключа шифрования»). Неверное или неподставленное значение приводит к тому, что KMS возвращает непрозрачную ошибку AccessDeniedException. Чтобы исключить эту причину, временно удалите блок Condition из инструкции AllowAnthropicCMEKCrypto и повторите проверку.aws:PrincipalOrgID не соответствует вашей организации, она блокирует межаккаунтную роль Anthropic. В RCP необходимо добавить исключение для этого ключа или для ARN роли Anthropic. Политики управления сервисами (SCP) здесь не применяются, поскольку они не оцениваются для внешних принципалов, обращающихся через политики на основе ресурсов.aws kms get-key-policy --key-id <id> --policy-name default.Прикрепите ключ к рабочему пространству
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>"
}'Для развёртываний по принципу «infrastructure-as-code» (инфраструктура как код) те же шаги соответствуют провайдеру aws с ресурсами aws_kms_key и aws_kms_alias.
Was this page helpful?