Claude Platform Docs
管理加密金鑰(CMEK)

為 CMEK 設定 Azure Key Vault

使用 Azure Key Vault 為您的組織提供加密金鑰。

Claude Code

讓 Claude Code 為您設定此功能

/claude-api 協助我使用 Azure Key Vault 設定客戶管理的加密金鑰

本指南將逐步說明如何將 Azure Key Vault 金鑰設定為您 Anthropic 組織的客戶管理加密金鑰(customer-managed encryption key,CMEK)。

先決條件

  • 一個已啟用 RBAC 授權(enableRbacAuthorization: true)且允許公開網路存取的 Azure Key Vault。Anthropic 透過公開資料平面端點呼叫您的保存庫;不支援私有端點。
  • 保存庫上已啟用清除保護(enablePurgeProtection: true)。若沒有啟用,已刪除的金鑰可能在軟刪除保留期間內被永久清除,導致您受 CMEK 保護的資料發生不可逆的遺失。清除保護一旦啟用便無法停用。
  • 在保存庫中建立金鑰以及在其上指派 RBAC 角色的權限。
  • 在您的 Entra 租用戶中建立服務主體的權限(Application Administrator、Cloud Application Administrator 或同等的自訂角色)。
  • 您組織的 Anthropic Admin API 金鑰。
  • 已安裝並通過驗證的 az CLI。
  • 在保存庫上設定的診斷設定(Diagnostic Settings),將 AuditEvent 記錄類別路由至 Log Analytics、儲存體帳戶或事件中樞。Azure Key Vault 預設不會發出資料平面稽核記錄(例如 KeyWrap、KeyUnwrap 和 KeyGet),因此若沒有此設定,您將無法取得 Anthropic 金鑰操作的稽核軌跡。

Anthropic 應用程式資訊

若要讓 Anthropic 使用您的加密金鑰,您必須設定一個 Anthropic 多租用戶應用程式 ID 和顯示名稱。這些值為:

欄位值
多租用戶應用程式用戶端 ID(US)8635ae1a-3e5d-44e8-a4ed-e0f614466f87
應用程式顯示名稱anthropic-cmek-client-us

加密金鑰設定

  1. 同意 Anthropic 多租用戶應用程式

    這會在您的 Entra 租用戶中為 Anthropic 的 CMEK 用戶端應用程式建立一個服務主體。該應用程式不要求任何 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

    此步驟沒有入口網站的對應操作。如果您本機未安裝 Azure CLI,請從入口網站頂部導覽列開啟 Cloud Shell。命令成功後,您可以在 Microsoft Entra ID > 企業應用程式 中清除預設的應用程式類型篩選器並搜尋 anthropic-cmek-client-us,以找到服務主體的物件 ID。

    anthropic-cmek-client-us 的 Microsoft Entra 企業應用程式概觀,顯示其 Application ID 和 Object ID。

    在 Entra 企業應用程式概觀上找到服務主體的 Object ID。
  2. 在您的保存庫中建立 RSA 金鑰

    Azure Key Vault 不支援對稱金鑰包裝,因此金鑰必須是 RSA(3072 位元或更大),且其允許的操作中包含 wrapKey 和 unwrapKey。

    --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>=true

    對於 HSM 支援的金鑰,請使用 --kty RSA-HSM(需要 Premium-SKU 保存庫)。軟體保護的 RSA 金鑰對於此整合是可接受的。

    從入口網站中,開啟您的 Key Vault,選擇 Keys,然後選擇 Generate/Import。將金鑰類型設為 RSA,大小設為 3072 或更大。若要將金鑰限制為僅包裝和解除包裝,請開啟金鑰版本,捲動至 Permitted operations,並取消勾選除 Wrap Key 和 Unwrap Key 以外的所有項目。

    在 Create a key 頁面上,也請在 Tags 下新增組織標籤。

    Azure Key Vault 的 Create a key 頁面,金鑰類型為 RSA、金鑰大小為 3072,且 anthropic-org 標籤設為 true。

    建立大小為 3072 或更大的 RSA 金鑰,並將標籤 anthropic-org-<ORGANIZATION_UUID> 設為 true。

    Azure Key Vault 金鑰版本,帶有 1 個標籤,且 Permitted operations 僅限於 Wrap Key 和 Unwrap Key。

    將允許的操作限制為 Wrap Key 和 Unwrap Key。金鑰版本顯示組織標籤。

    若要在多個 Anthropic 組織之間共用一個金鑰,請為每個組織新增一個這樣的標籤。一個金鑰版本最多可攜帶 15 個標籤,包括您自己的標籤。

  3. 授予 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 服務主體。

    Key Vault 的 IAM 角色指派,顯示 anthropic-cmek-client-us 已被指派 Key Vault Crypto User 角色。

    將 Key Vault Crypto User 指派給 Anthropic 服務主體,範圍限定於金鑰。
  4. 驗證您的保存庫設定

    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 註冊金鑰

您如何註冊金鑰取決於您使用的產品。

您可以在 Claude Console 或透過 Admin API 設定金鑰,結果相同。

  1. 向 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 之前,請依照建立步驟的說明將其新增至金鑰。

  2. 驗證金鑰

    在 Encryption keys 清單中,按一下金鑰旁的 Verify。檢查通過時會顯示 Connected。如果失敗,會有訊息說明原因。

  3. 將金鑰附加至工作區

    在 Claude Console 中,前往 Data retention 頁面(platform.claude.com/settings/privacy),並從頁面頂端的下拉式選單中選取工作區。在 Encryption key 下,選取金鑰,按一下 Save 並確認。附加金鑰後無法復原。對於已在接收請求的工作區,金鑰可能需要最多一天才會生效。

Terraform

對於基礎架構即程式碼(infrastructure-as-code)部署,相同的步驟對應至 azurerm 和 azuread 提供者。

Was this page helpful?