為 CMEK 設定 Google Cloud KMS
使用 Google Cloud KMS 為您的組織提供加密金鑰。
Claude Code
讓 Claude Code 為您設定此功能
/claude-api 協助我使用 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 & 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加密金鑰設定
建立或選擇金鑰環
如果您已有可重複使用的金鑰環,請跳過此步驟。金鑰環是區域性的。選擇一個與您正在設定的 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 驗證,且相較於軟體金鑰的成本差異很小。--labels選項會新增組織標籤anthropic-org-<ORGANIZATION_UUID>,其值為true,其中<ORGANIZATION_UUID>是您小寫的 Anthropic 組織 ID。此標籤是 Anthropic 驗證金鑰所必需的。gcloud kms keys create <KEY_NAME> \ --project=<PROJECT_ID> \ --location=<REGION> \ --keyring=<KEYRING_NAME> \ --purpose=encryption \ --protection-level=hsm \ --labels=anthropic-org-<ORGANIZATION_UUID>=true若要改用軟體保護,請省略
--protection-level=hsm。本指南中的其他內容不變。您也可以從 Google Cloud Console 建立金鑰。開啟金鑰環,點擊 Create key,選擇 Generated key,將用途和演算法設定為對稱加密和解密,並在保護層級下選擇 HSM。

建立一個帶有組織標籤、受 HSM 保護的對稱加密/解密金鑰。 若要在多個 Anthropic 組織之間共用一個金鑰,請為每個組織新增一個這樣的標籤。一個金鑰最多可攜帶 64 個標籤,包括您自己的標籤。
授予 Anthropic 服務帳戶存取金鑰的權限
需要兩個金鑰層級的 IAM 繫結。兩者都限定於單一加密金鑰,而非整個專案或整個金鑰環。
加密和解密,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.viewer從 Console 中,選擇金鑰,開啟 Permissions 面板,點擊 Grant access,並為服務帳戶新增 Cloud KMS CryptoKey Encrypter/Decrypter 和 Cloud KMS Viewer 兩個角色。請確保您位於金鑰的權限頁面,而非金鑰環或專案,以便授權僅限定於此金鑰。

為 Anthropic 服務帳戶授予兩個角色,限定於該金鑰。 記下完整的金鑰資源名稱
當您註冊金鑰時,需要將此名稱傳遞給 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 註冊金鑰
您如何註冊金鑰取決於您使用的產品。
您可以在 Claude Console 中或透過 Admin API 設定金鑰,結果相同。
向 Anthropic 註冊金鑰
在 Claude Console 中,前往 Data retention 頁面(
platform.claude.com/settings/privacy)。如果您沒有看到 Encryption keys,請從頁面頂端的下拉選單中選擇 Organization。在 Encryption keys 下,點擊 Add key。輸入顯示名稱,選擇 Google Cloud KMS,然後點擊 Continue。將完整的金鑰資源名稱貼到 Key resource name 中,然後點擊 Add。金鑰詳細資料步驟會顯示組織標籤。在點擊 Add 之前,請依照建立步驟所述將其新增至金鑰。
驗證金鑰
在 Encryption keys 清單中,點擊金鑰旁的 Verify。檢查通過時會顯示 Connected。如果失敗,會有訊息說明原因。
將金鑰附加到工作區
在 Claude Console 中,前往 Data retention 頁面(
platform.claude.com/settings/privacy),並從頁面頂端的下拉選單中選擇工作區。在 Encryption key 下,選擇金鑰,點擊 Save 並確認。附加金鑰後無法復原。對於已在接收請求的工作區,金鑰可能需要最多一天才會生效。
向 Anthropic 註冊金鑰
透過 Admin API 建立外部金鑰設定,使用加密金鑰設定下「記下完整的金鑰資源名稱」步驟中的資源名稱。
Pythonclient = anthropic.Anthropic() external_key = client.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>" }驗證金鑰
針對您的金鑰觸發一次加密和解密的往返操作。
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 }如果驗證失敗,常見原因包括:
- 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>確認繫結存在。 - 已停用或已銷毀的金鑰版本: 確認金鑰的主要版本已啟用,且未被停用、排定銷毀或已銷毀。
將金鑰附加到工作區
金鑰驗證通過後,在您向該工作區傳送任何請求之前,將其附加到新工作區。對於已接收請求的工作區,金鑰可能需要最多一天才能生效。
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。選擇 Google Cloud,貼上上一步驟中的完整金鑰資源名稱,然後點擊 Continue。Anthropic 會透過加密和解密的往返操作驗證金鑰。一旦顯示為已驗證,您的組織從該時間點起即受 CMEK 保護。
在 Claude Enterprise 上,CMEK 適用於整個組織,因此沒有單獨的工作區附加步驟,且一個組織只能有一個金鑰。
Terraform
對於基礎設施即程式碼(infrastructure-as-code)部署,相同的步驟對應到 google 提供者的 google_kms_key_ring、google_kms_crypto_key 和 google_kms_crypto_key_iam_member 資源。
Was this page helpful?