claude "/claude-api help me configure a customer-managed encryption key with Google Cloud KMS"本指南將逐步說明如何將 Google Cloud KMS 金鑰設定為您 Anthropic 組織的 customer-managed encryption key(客戶管理加密金鑰),即 CMEK。
啟用 CMEK 是永久性的。如果您的 KMS 金鑰被刪除或停用,Anthropic 將無法復原以該金鑰加密的資料。在開始之前,請先檢閱警告與限制。
cloudkms.googleapis.com)。roles/cloudkms.admin 或同等權限)。gcloud CLI。DATA_READ 和 DATA_WRITE)。這些預設為關閉;若未啟用,Anthropic 的加密和解密操作將不會在 Cloud Logging 中產生任何記錄。若要讓 Anthropic 使用您的加密金鑰,您必須提供 Anthropic 的服務帳戶一個可用於加密資料的金鑰。Anthropic CMEK 的服務帳戶電子郵件為:
anthropic-cmek-client-us@gcp-anthropic-cmek-clients.iam.gserviceaccount.com僅使用此公開發布的服務帳戶電子郵件。切勿信任透過電子郵件、聊天或任何入門引導管道提供的識別碼。
網域限制共用: 如果您的專案隸屬於強制執行 constraints/iam.allowedPolicyMemberDomains 的 Google Cloud 組織,以下 IAM 繫結將被拒絕,因為 Anthropic 服務帳戶位於您的組織之外。您需要在該限制上設定專案層級的例外,或將 Anthropic 的 Cloud Identity 客戶 ID(格式為 C0xxxxxxxx)新增至允許清單。如有需要,請聯絡 Anthropic 取得客戶 ID。
建立或選擇金鑰環
如果您已有可重複使用的金鑰環,請跳過此步驟。金鑰環是區域性的。請選擇與您正在設定的 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 建立金鑰。開啟金鑰環,點擊 Create key,選擇 Generated key,將用途和演算法設定為對稱加密和解密,並在保護層級下選擇 HSM。

授予 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檢視者(Viewer),用於 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。格式為:
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 註冊金鑰
透過 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": "gcp",
"key_name": "projects/<your-project-id>/locations/<region>/keyRings/<your-keyring-name>/cryptoKeys/<your-key-name>"
}
}'回應中包含外部金鑰 ID:
{
"type": "external_key",
"id": "ekey_<id>",
"display_name": "<friendly-name>"
}驗證金鑰
對您的金鑰觸發一次加密和解密的往返測試。
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 }如果驗證失敗,常見原因包括:
constraints/iam.allowedPolicyMemberDomains 組織政策可能會移除 Anthropic 服務帳戶的繫結(請參閱前面的注意事項)。使用 gcloud kms keys get-iam-policy <your-key-name> --project=<your-project-id> --location=<region> --keyring=<your-keyring-name> 確認繫結是否存在。將金鑰附加至工作區
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>"
}'對於基礎設施即程式碼(infrastructure-as-code)的部署,相同的步驟對應到 google 提供者的 google_kms_key_ring、google_kms_crypto_key 和 google_kms_crypto_key_iam_member 資源。
Was this page helpful?