Настройка Google Cloud KMS для CMEK
Используйте Google Cloud KMS, чтобы предоставить ключ шифрования для вашей организации.
claude "/claude-api help me configure a customer-managed encryption key with Google Cloud KMS"В этом руководстве описывается настройка ключа Google Cloud KMS в качестве «customer-managed encryption key» (ключа шифрования, управляемого клиентом), или CMEK для вашей организации Anthropic.
Предварительные требования
- Проект Google Cloud с включённым биллингом.
- Включённый Cloud KMS API (
cloudkms.googleapis.com). - Разрешения на создание связок ключей (key rings) и ключей KMS, а также на настройку политики IAM для них (
roles/cloudkms.adminили эквивалент). - Ключ Anthropic Admin API для вашей организации.
- Установленный и аутентифицированный
gcloudCLI. - Включённые для проекта журналы аудита доступа к данным (Data Access audit logs) Cloud KMS (IAM & Admin > Audit Logs > Cloud Key Management Service, с
DATA_READиDATA_WRITE). По умолчанию они отключены; без них операции шифрования и расшифрования, выполняемые Anthropic, не создают записей в Cloud Logging.
Адрес электронной почты сервисного аккаунта Anthropic
Чтобы Anthropic использовала ваш ключ шифрования, вы должны предоставить сервисному аккаунту Anthropic ключ, который он сможет использовать для шифрования данных. Адрес электронной почты сервисного аккаунта для Anthropic CMEK:
anthropic-cmek-client-us@gcp-anthropic-cmek-clients.iam.gserviceaccount.comНастройка ключа шифрования
Создайте или выберите связку ключей
Пропустите этот шаг, если у вас уже есть связка ключей для повторного использования. Связки ключей являются региональными. Выберите однорегиональное расположение в США, например
us-east5, соответствующее географии Anthropic, которую вы настраиваете. Мультирегиональные расположения, такие какusиglobal, не поддерживаются.gcloud kms keyrings create <your-keyring-name> \ --project=<your-project-id> \ --location=<region>Создайте криптографический ключ
Создайте симметричный ключ с назначением
ENCRYPT_DECRYPT. Anthropic настоятельно рекомендует защиту HSM: ключи Cloud KMS HSM валидированы по стандарту FIPS 140-2 Level 3, а разница в стоимости по сравнению с программными ключами невелика.gcloud kms keys create <your-key-name> \ --project=<your-project-id> \ --location=<region> \ --keyring=<your-keyring-name> \ --purpose=encryption \ --protection-level=hsmЧтобы вместо этого использовать программную защиту, опустите
--protection-level=hsm. Больше ничего в этом руководстве не меняется.Вы также можете создать ключ в Google Cloud Console. Откройте связку ключей, нажмите Create key, выберите Generated key, задайте назначение и алгоритм как симметричное шифрование и расшифрование и выберите HSM в разделе уровня защиты.

Создание симметричного ключа шифрования/расшифрования (Symmetric encrypt/decrypt) с защитой HSM. Предоставьте сервисному аккаунту Anthropic доступ к ключу
Требуются две привязки IAM на уровне ключа. Обе ограничены одним криптографическим ключом, а не всем проектом или всей связкой ключей.
Шифрование и расшифрование, которые Anthropic использует для шифрования и расшифрования ключей данных, защищающих данные вашего рабочего пространства («envelope encryption» (конвертное шифрование)):
gcloud kms keys add-iam-policy-binding <your-key-name> \ --project=<your-project-id> \ --location=<region> \ --keyring=<your-keyring-name> \ --member="serviceAccount:anthropic-cmek-client-us@gcp-anthropic-cmek-clients.iam.gserviceaccount.com" \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypterViewer — для чтения метаданных (
cryptoKeys.get), которое Anthropic выполняет при запуске для проверки назначения и алгоритма ключа:gcloud kms keys add-iam-policy-binding <your-key-name> \ --project=<your-project-id> \ --location=<region> \ --keyring=<your-keyring-name> \ --member="serviceAccount:anthropic-cmek-client-us@gcp-anthropic-cmek-clients.iam.gserviceaccount.com" \ --role=roles/cloudkms.viewerВ Console выберите ключ, откройте панель Permissions, нажмите Grant access и добавьте сервисный аккаунт с обеими ролями: Cloud KMS CryptoKey Encrypter/Decrypter и Cloud KMS Viewer. Убедитесь, что вы находитесь на странице разрешений ключа, а не связки ключей или проекта, чтобы доступ был ограничен только этим ключом.

Предоставление сервисному аккаунту Anthropic обеих ролей (Grant access), ограниченных данным ключом. Запишите полное имя ресурса ключа
Вы передадите его Anthropic при регистрации ключа. Формат:
projects/<your-project-id>/locations/<region>/keyRings/<your-keyring-name>/cryptoKeys/<your-key-name>Получите его с помощью команды:
gcloud kms keys describe <your-key-name> \ --project=<your-project-id> \ --location=<region> \ --keyring=<your-keyring-name> \ --format="value(name)"В Console откройте страницу сведений о ключе и нажмите Copy resource name.

Копирование полного имени ресурса ключа (Copy resource name) из меню действий.
Регистрация ключа в Anthropic
Способ регистрации ключа зависит от того, какой продукт вы используете.
Зарегистрируйте ключ в Anthropic
Создайте конфигурацию внешнего ключа через Admin API, используя имя ресурса из шага «Запишите полное имя ресурса ключа» в разделе «Настройка ключа шифрования».
client = anthropic.Anthropic() external_key = client.beta.organization.external_keys.create( display_name="<friendly-name>", geo="us", provider_config={ "type": "gcp", "key_name": "projects/<your-project-id>/locations/<region>/keyRings/<your-keyring-name>/cryptoKeys/<your-key-name>", }, ) print(f"id: {external_key.id}") print(f"display_name: {external_key.display_name}")Ответ содержит идентификатор внешнего ключа:
{ "type": "external_key", "id": "ekey_<id>", "display_name": "<friendly-name>" }Проверьте ключ
Запустите цикл шифрования и расшифрования с использованием вашего ключа.
client = anthropic.Anthropic() validation = client.beta.organization.external_keys.validate("ekey_<id>") print(f"status: {validation.status}") print(f"error: {validation.error}")Успешный ответ выглядит так:
{ "type": "external_key_validation", "status": "success", "error": null }Если проверка не удалась, распространённые причины:
- VPC Service Controls: если периметр сервиса защищает Cloud KMS в вашем проекте, добавьте Anthropic в уровень доступа периметра (или исключите проект ключа), чтобы Anthropic могла обращаться к ключу.
- Ограничение общего доступа по домену: политика организации
constraints/iam.allowedPolicyMemberDomainsможет удалить привязку сервисного аккаунта Anthropic (см. примечание выше). Убедитесь, что привязка присутствует, с помощьюgcloud kms keys get-iam-policy <your-key-name> --project=<your-project-id> --location=<region> --keyring=<your-keyring-name>. - Отключённая или уничтоженная версия ключа: убедитесь, что основная версия ключа включена, а не отключена, запланирована к уничтожению или уничтожена.
Привяжите ключ к рабочему пространству
После проверки ключа привяжите его к новому рабочему пространству, прежде чем отправлять какие-либо запросы в это рабочее пространство. Для рабочего пространства, которое уже получает запросы, вступление ключа в силу может занять до одного дня.
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
Для развёртываний в формате «infrastructure-as-code» (инфраструктура как код) те же шаги соответствуют провайдеру google с ресурсами google_kms_key_ring, google_kms_crypto_key и google_kms_crypto_key_iam_member.
Was this page helpful?