CMEK用にGoogle Cloud KMSを設定する
Google Cloud KMSを使用して、組織の暗号化キーを提供します。
claude "/claude-api help me configure a customer-managed encryption key with Google Cloud KMS"このガイドでは、Google Cloud KMSキーをAnthropic組織の「customer-managed encryption key」(顧客管理暗号化キー)、すなわちCMEKとして設定する手順を説明します。
前提条件
- 課金が有効になっているGoogle Cloudプロジェクト。
- Cloud KMS APIが有効になっていること(
cloudkms.googleapis.com)。 - KMSキーリングとキーを作成し、それらにIAMポリシーを設定する権限(
roles/cloudkms.adminまたは同等のもの)。 - 組織のAnthropic Admin APIキー。
gcloudCLIがインストールされ、認証済みであること。- プロジェクトでCloud KMSのデータアクセス監査ログが有効になっていること(IAMと管理 > 監査ログ > 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暗号化キーのセットアップ
キーリングを作成または選択する
再利用するキーリングがすでにある場合は、このステップをスキップしてください。キーリングはリージョン単位です。設定対象のAnthropicの地域に一致する、
us-east5などの米国の単一リージョンのロケーションを選択してください。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からキーを作成することもできます。キーリングを開き、鍵を作成をクリックし、生成された鍵を選択し、目的とアルゴリズムを対称暗号化/復号に設定し、保護レベルでHSMを選択します。

HSM保護された対称暗号化/復号(Symmetric encrypt/decrypt)キーを作成します。 Anthropicのサービスアカウントにキーへのアクセス権を付与する
キーレベルのIAMバインディングが2つ必要です。どちらもプロジェクト全体やキーリング全体ではなく、単一の暗号鍵にスコープされます。
暗号化と復号。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.cryptoKeyEncrypterDecrypter閲覧者。Anthropicが起動時にキーの目的とアルゴリズムを検証するために実行するメタデータ読み取り(
cryptoKeys.get)用です。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.viewerConsoleからは、キーを選択し、権限パネルを開き、アクセス権を付与をクリックして、Cloud KMS CryptoKey Encrypter/DecrypterロールとCloud KMS Viewerロールの両方を持つサービスアカウントを追加します。付与がこのキーのみにスコープされるよう、キーリングやプロジェクトではなく、キーの権限ページにいることを確認してください。

Anthropicサービスアカウントに、キーにスコープされた両方のロール(Cloud KMS CryptoKey Encrypter/DecrypterおよびViewer)を付与します。 完全なキーリソース名を記録する
キーを登録する際に、これを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)します。
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}")レスポンスには外部キーIDが含まれます。
{ "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>でバインディングが存在することを確認してください。 - 無効化または破棄されたキーバージョン: キーのプライマリバージョンが有効であり、無効化、破棄予定、または破棄済みでないことを確認してください。
キーをワークスペースにアタッチする
キーが検証されたら、そのワークスペースにリクエストを送信する前に、新しいワークスペースにキーをアタッチします。すでにリクエストを受信しているワークスペースの場合、キーが有効になるまで最大1日かかることがあります。
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?