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Для этого шага нет эквивалента в портале. Если у вас локально не установлен Azure CLI, откройте Cloud Shell из верхней панели навигации портала. После успешного выполнения команды вы можете найти идентификатор объекта субъекта-службы в разделе 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 допустимы для этой интеграции.
В портале откройте ваше хранилище 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 может только упаковывать и распаковывать.
В портале откройте ключ (не хранилище), выберите его вкладку 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?