claude "/claude-api help me configure a customer-managed encryption key with Azure Key Vault"Это руководство описывает настройку ключа Azure Key Vault в качестве управляемого клиентом ключа шифрования (CMEK) для вашей организации Anthropic.
Включение CMEK является необратимым. Если ваш ключ Key Vault будет удалён или отключён, Anthropic не сможет восстановить данные, зашифрованные с его помощью. Ознакомьтесь с предупреждениями и ограничениями перед началом работы.
enableRbacAuthorization: true) и разрешённым публичным сетевым доступом. Anthropic обращается к вашему хранилищу через публичную конечную точку плоскости данных; частные конечные точки не поддерживаются.enablePurgeProtection: true) на хранилище. Без неё удалённый ключ может быть окончательно очищен в течение периода хранения мягкого удаления, что приведёт к необратимой потере ваших данных, защищённых CMEK. Защиту от очистки нельзя отключить после включения.Application Administrator, Cloud Application Administrator или эквивалентная пользовательская роль).az CLI.AuditEvent в Log Analytics, учётную запись хранения или концентратор событий. Azure Key Vault по умолчанию не генерирует журналы аудита плоскости данных (такие как KeyWrap, KeyUnwrap и KeyGet), поэтому без этого у вас не будет журнала аудита операций Anthropic с ключом.Чтобы Anthropic использовал ваш ключ шифрования, вы должны настроить идентификатор мультитенантного приложения Anthropic и отображаемое имя. Эти значения:
| Поле | Значение |
|---|---|
| Идентификатор клиента мультитенантного приложения (США) | 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 |
| Отображаемое имя приложения | anthropic-cmek-client-us |
Используйте только этот опубликованный идентификатор клиента и отображаемое имя. Никогда не доверяйте идентификатору, предоставленному по электронной почте, в чате или через любой канал онбординга.
Дайте согласие мультитенантному приложению Anthropic
Это создаёт субъект-службу в вашем арендаторе Entra для клиентского приложения CMEK от Anthropic. Приложение не запрашивает никаких разрешений Microsoft Graph; оно существует исключительно как цель федерации для доступа к плоскости данных Key Vault.
az ad sp create --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87Из вывода сохраните поле id. Это идентификатор объекта субъекта-службы в вашем арендаторе, который вы используете при назначении роли RBAC.
{
"appId": "8635ae1a-3e5d-44e8-a4ed-e0f614466f87",
"displayName": "anthropic-cmek-client-us",
"id": "<sp-object-id>"
}Если субъект-служба уже существует в вашем арендаторе (из предыдущей попытки или другой интеграции), az ad sp create завершается с ошибкой «already exists». Вместо этого получите его идентификатор объекта:
az ad sp show --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 --query id -o tsvУ этого шага нет эквивалента в Portal. Если у вас не установлен Azure CLI локально, откройте Cloud Shell из верхней панели навигации Portal. После успешного выполнения команды вы можете найти идентификатор объекта субъекта-службы в Microsoft Entra ID > Enterprise applications, очистив фильтр типа приложения по умолчанию и выполнив поиск anthropic-cmek-client-us.

Создайте ключ RSA в вашем хранилище
Azure Key Vault не поддерживает обёртывание симметричных ключей, поэтому ключ должен быть RSA (3072 бита или больше) с wrapKey и unwrapKey в списке разрешённых операций.
az keyvault key create \
--vault-name <your-vault-name> \
--name <your-key-name> \
--kty RSA --size 3072 \
--ops wrapKey unwrapKeyДля ключей с поддержкой HSM используйте --kty RSA-HSM (требуется хранилище с SKU Premium). Программно защищённые ключи RSA приемлемы для этой интеграции.
В Portal откройте ваш Key Vault, выберите Keys, затем Generate/Import. Установите тип ключа RSA и размер 3072 или больше. Чтобы ограничить ключ только операциями обёртывания и развёртывания, откройте версию ключа, прокрутите до Permitted operations и снимите все флажки, кроме Wrap Key и Unwrap Key.


Предоставьте субъекту-службе Anthropic доступ к вашему ключу
Назначьте роль Key Vault Crypto User субъекту-службе из первого шага с областью действия на отдельный ключ, а не на всё хранилище.
VAULT_ID=$(az keyvault show --name <your-vault-name> --query id -o tsv)
az role assignment create \
--role "Key Vault Crypto User" \
--assignee-object-id <sp-object-id> \
--assignee-principal-type ServicePrincipal \
--scope "${VAULT_ID}/keys/<your-key-name>"Встроенная роль Key Vault Crypto User предоставляет криптографические операции с ключом (шифрование, расшифровка, обёртывание, развёртывание, подпись, проверка), а также чтение ключа в назначенной области. Ограничение --ops wrapKey unwrapKey, которое вы установили на ключ на предыдущем шаге, дополнительно сужает, какие из этих операций могут быть выполнены с этим ключом, поэтому на практике Anthropic может только обёртывать и развёртывать.
В Portal откройте ключ (не хранилище), выберите его вкладку Access control (IAM), нажмите Add > Add role assignment, выберите Key Vault Crypto User и назначьте её субъекту-службе anthropic-cmek-client-us.
Альтернатива с выделенным хранилищем: Microsoft рекомендует выделенное хранилище для каждого приложения с ролями, назначенными на уровне хранилища. Если вы создаёте хранилище, содержащее только этот ключ CMEK для Anthropic, вы можете назначить роль на уровне хранилища, и эффект будет идентичным. Ограничивайте область действия отдельным ключом, когда ключ находится в общем хранилище.

Проверьте конфигурацию вашего хранилища
az keyvault show --name <your-vault-name> \
--query "{rbac:properties.enableRbacAuthorization, purge:properties.enablePurgeProtection, pub:properties.publicNetworkAccess, net:properties.networkAcls.defaultAction, ipRules:properties.networkAcls.ipRules, uri:properties.vaultUri, tenantId:properties.tenantId}"Убедитесь, что:
rbac имеет значение true.purge имеет значение true. Если значение false или null, включите защиту от очистки на хранилище, прежде чем продолжить. Без неё мягко удалённый ключ может быть окончательно очищен в течение периода хранения, что сделает ваши данные, защищённые CMEK, невосстановимыми.pub имеет значение "Enabled". Если значение "Disabled", Anthropic не сможет достичь хранилища через его публичную конечную точку плоскости данных, и валидация завершится неудачей.net имеет значение "Allow", или, если значение "Deny", что ipRules включают диапазоны исходящего трафика Anthropic (свяжитесь с Anthropic для получения актуального списка).uri — это URI хранилища, который вы используете при регистрации ключа.tenantId — это арендатор, управляющий хранилищем. Используйте это значение как tenant_id при регистрации ключа, а не арендатора вашей текущей активной подписки (они могут различаться в межарендаторных конфигурациях).Способ регистрации ключа зависит от того, какой продукт вы используете.
Зарегистрируйте ключ в Anthropic
Создайте конфигурацию внешнего ключа через Admin API.
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": "azure",
"vault_uri": "https://<your-vault-name>.vault.azure.net/",
"key_name": "<your-key-name>",
"tenant_id": "<your-tenant-id>"
}
}'Ответ содержит идентификатор внешнего ключа:
{
"type": "external_key",
"id": "ekey_<id>",
"display_name": "<friendly-name>"
}Валидируйте ключ
Запустите цикл шифрования и расшифровки с вашим ключом. Это подтверждает, что Anthropic может аутентифицироваться в вашем арендаторе и выполнять операции обёртывания и развёртывания.
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 }Если валидация не удалась, поле error описывает проблему. Распространённые причины:
ipRules, как описано в шаге проверки.Прикрепите ключ к рабочему пространству
После валидации ключа прикрепите его к рабочему пространству, чтобы включить CMEK для данных этого рабочего пространства.
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>"
}'Для развёртываний по принципу «инфраструктура как код» те же шаги соответствуют провайдерам azurerm и azuread.
Was this page helpful?