CMEK用のAzure Key Vaultの設定
Azure Key Vaultを使用して、組織の暗号化キーを提供します。
Claude Code
Claude Codeにこの機能を設定させる
/claude-api Azure Key Vaultで顧客管理暗号化キーを設定するのを手伝ってくださいこのガイドでは、Anthropic組織の顧客管理暗号化キー(CMEK)としてAzure Key Vaultキーを設定する手順を説明します。
前提条件
- RBAC認可が有効(
enableRbacAuthorization: true)で、パブリックネットワークアクセスが許可されているAzure Key Vault。Anthropicはパブリックデータプレーンエンドポイント経由でvaultを呼び出します。プライベートエンドポイントはサポートされていません。 - vaultでパージ保護が有効(
enablePurgeProtection: true)であること。これがないと、削除されたキーがソフト削除の保持期間中に完全にパージされ、CMEK保護されたデータが回復不能な損失を被る可能性があります。パージ保護は一度有効にすると無効化できません。 - vaultでキーを作成し、RBACロールを割り当てる権限。
- Entraテナントでサービスプリンシパルを作成する権限(
Application Administrator、Cloud Application Administrator、または同等のカスタムロール)。 - 組織のAnthropic Admin APIキー。
azCLIがインストールされ、認証されていること。AuditEventログカテゴリをLog Analytics、ストレージアカウント、またはイベントハブにルーティングするようにvaultで診断設定が構成されていること。Azure Key Vaultはデフォルトではデータプレーン監査ログ(KeyWrap、KeyUnwrap、KeyGetなど)を出力しないため、これがないとAnthropicのキー操作の監査証跡が得られません。
Anthropicアプリ情報
Anthropicに暗号化キーを使用させるには、AnthropicのマルチテナントアプリケーションIDと表示名を設定する必要があります。それらの値は次のとおりです。
| フィールド | 値 |
|---|---|
| マルチテナントアプリクライアントID(US) | 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 |
| アプリ表示名 | anthropic-cmek-client-us |
暗号化キーのセットアップ
Anthropicマルチテナントアプリケーションへの同意
これにより、AnthropicのCMEKクライアントアプリケーション用のサービスプリンシパルがEntraテナントに作成されます。このアプリケーションはMicrosoft Graphの権限を要求しません。Key Vaultデータプレーンアクセスのフェデレーションターゲットとしてのみ存在します。
az ad sp create --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87出力から
idフィールドを取得します。これはテナント内のサービスプリンシパルのオブジェクトIDで、RBACロールを割り当てる際に使用します。{ "appId": "8635ae1a-3e5d-44e8-a4ed-e0f614466f87", "displayName": "anthropic-cmek-client-us", "id": "<sp-object-id>" }サービスプリンシパルがすでにテナントに存在する場合(以前の試行や別の統合から)、
az ad sp createは「already exists」エラーで終了します。代わりにそのオブジェクトIDを取得してください。az ad sp show --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 --query id -o tsvこのステップにはPortalの同等の操作はありません。Azure CLIがローカルにインストールされていない場合は、Portalの上部ナビゲーションバーからCloud Shellを開いてください。コマンドが成功した後、Microsoft Entra ID > エンタープライズアプリケーションでデフォルトのアプリケーションタイプフィルターをクリアし、
anthropic-cmek-client-usを検索することで、サービスプリンシパルのオブジェクトIDを見つけることができます。
Entraエンタープライズアプリケーションの概要でサービスプリンシパルのObject IDを見つけます。 vaultでRSAキーを作成する
Azure Key Vaultは対称キーラッピングをサポートしていないため、キーは許可された操作に
wrapKeyとunwrapKeyを含むRSA(3072ビット以上)である必要があります。--tagsオプションは、組織タグanthropic-org-<ORGANIZATION_UUID>を値trueで追加します。ここで<ORGANIZATION_UUID>は小文字のAnthropic組織IDです。このタグはAnthropicがキーを検証するために必要です。az keyvault key create \ --vault-name <VAULT_NAME> \ --name <KEY_NAME> \ --kty RSA --size 3072 \ --ops wrapKey unwrapKey \ --tags anthropic-org-<ORGANIZATION_UUID>=trueHSMバックアップキーの場合は、
--kty RSA-HSMを使用します(Premium-SKU vaultが必要)。この統合にはソフトウェア保護されたRSAキーで問題ありません。Portalから、Key Vaultを開き、Keysを選択してからGenerate/Importを選択します。キータイプをRSAに、サイズを3072以上に設定します。キーをラップとアンラップのみに制限するには、キーバージョンを開き、Permitted operationsまでスクロールし、Wrap KeyとUnwrap Key以外のすべてのチェックを外します。
Create a keyページで、Tagsの下に組織タグも追加します。

3072以上のサイズのRSAキーを作成し、タグanthropic-org-<ORGANIZATION_UUID>をtrueに設定します。 
許可された操作をWrap KeyとUnwrap Keyに制限します。キーバージョンには組織タグが表示されます。 1つのキーを複数のAnthropic組織で共有するには、組織ごとにそのようなタグを1つ追加します。キーバージョンは、独自のものを含めて最大15個のタグを持つことができます。
Anthropicサービスプリンシパルにキーへのアクセスを付与する
最初のステップのサービスプリンシパルに
Key Vault Crypto Userロールを割り当てます。vault全体ではなく個別のキーにスコープを設定します。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から、キー(vaultではなく)を開き、そのAccess control (IAM)タブを選択し、Add > Add role assignmentをクリックし、Key Vault Crypto Userを選択して、
anthropic-cmek-client-usサービスプリンシパルに割り当てます。
AnthropicサービスプリンシパルにKey Vault Crypto Userを割り当て、キーにスコープを設定します。 vault構成を検証する
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の場合は、続行する前にvaultでパージ保護を有効にしてください。これがないと、ソフト削除されたキーが保持期間中に完全にパージされ、CMEK保護されたデータが回復不能になります。pubが"Enabled"であること。"Disabled"の場合、Anthropicはパブリックデータプレーンエンドポイント経由でvaultに到達できず、検証が失敗します。netが"Allow"であること、または"Deny"の場合は、ipRulesにAnthropicのエグレス範囲が含まれていること(現在のリストについてはAnthropicにお問い合わせください)。uriがキーを登録する際に使用するvault URIであること。tenantIdがvaultを管理するテナントであること。キーを登録する際は、現在アクティブなサブスクリプションのテナントではなく、この値をtenant_idとして使用してください(クロステナント設定では両者が異なる場合があります)。
Anthropicにキーを登録する
キーの登録方法は、使用する製品によって異なります。
Claude ConsoleまたはAdmin API経由でキーを設定でき、結果は同じです。
Anthropicにキーを登録する
Claude Consoleで、Data retentionページ(
platform.claude.com/settings/privacy)に移動します。Encryption keysが表示されない場合は、ページ上部のドロップダウンメニューからOrganizationを選択してください。Encryption keysの下でAdd keyをクリックします。表示名を入力し、Azure Key Vaultを選択してContinueをクリックします。Vault URI、Key name、Tenant IDを入力し、Addをクリックします。キー詳細ステップには組織タグが表示されます。Addをクリックする前に、作成ステップで説明されているようにキーに追加してください。
キーを検証する
Encryption keysリストで、キーの横にあるVerifyをクリックします。チェックに合格するとConnectedと表示されます。失敗した場合は、メッセージに理由が表示されます。
キーをワークスペースにアタッチする
Claude Consoleで、Data retentionページ(
platform.claude.com/settings/privacy)に移動し、ページ上部のドロップダウンメニューからワークスペースを選択します。Encryption keyの下でキーを選択し、Saveをクリックして確認します。キーのアタッチは元に戻せません。すでにリクエストを受信しているワークスペースの場合、キーが有効になるまで最大1日かかることがあります。
Anthropicにキーを登録する
Admin API経由で外部キー構成を作成します。
Pythonclient = anthropic.Anthropic() external_key = client.organization.external_keys.create( 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>", }, ) print(f"id: {external_key.id}") print(f"display_name: {external_key.display_name}")レスポンスには外部キーIDが含まれます。
{ "type": "external_key", "id": "ekey_<id>", "display_name": "<friendly-name>" }キーを検証する
キーに対して暗号化と復号化のラウンドトリップをトリガーします。これにより、Anthropicがテナントに認証し、ラップとアンラップの操作を実行できることが確認されます。
Pythonclient = anthropic.Anthropic() validation = client.organization.external_keys.validate("ekey_<id>") print(f"status: {validation.status}") print(f"error: {validation.error}")成功したレスポンスは次のようになります。
{ "type": "external_key_validation", "status": "success", "error": null }検証が失敗した場合、
errorフィールドに問題が記述されます。一般的な原因は次のとおりです。- RBAC伝播の遅延: ロールの割り当てが有効になるまで数分かかることがあります。待ってから再試行してください。
- AnthropicをブロックするネットワークACL: 検証ステップで説明されているように、パブリックネットワークアクセスと
ipRulesを確認してください。 - ワークロードIDに対する条件付きアクセスポリシー: テナントにサービスプリンシパルを対象とする条件付きアクセスポリシーがある場合は、Anthropicサービスプリンシパルを除外するか、ポリシーの名前付きの場所にAnthropicのエグレス範囲を追加してください。
キーをワークスペースにアタッチする
キーが検証されたら、そのワークスペースにリクエストを送信する前に、新しいワークスペースにアタッチします。すでにリクエストを受信しているワークスペースの場合、キーが有効になるまで最大1日かかることがあります。
Pythonclient = anthropic.Anthropic() workspace = client.organization.workspaces.update( "<workspace-id>", external_key_id="ekey_<id>" ) print(f"id: {workspace.id}") print(f"external_key_id: {workspace.external_key_id}")
claude.ai > Organization settings > Data and privacyで、Encryption keysを開き、Add keyをクリックします。Azureを選択し、検証ステップのvault URI、キー名、テナントIDを入力して、Continueをクリックします。Anthropicは暗号化と復号化のラウンドトリップでキーを検証します。検証済みと表示されると、その時点以降、組織はCMEK保護されます。
Claude Enterpriseでは、CMEKは組織全体に適用されるため、個別のワークスペースアタッチステップはなく、組織は1つのキーのみを持つことができます。
Terraform
Infrastructure-as-codeデプロイメントの場合、同じステップがazurermおよびazureadプロバイダーにマッピングされます。
Was this page helpful?