OpenAI
此頁面由機器翻譯。查看原文英文文章

OpenAI / Azure EKM 整合說明

逐步說明如何設定 Azure 並啟用 EKM

更新日期:2 hours ago

概覽

企業金鑰管理 (EKM) 可讓 OpenAI 使用您控制的主要金鑰加密資料。為了讓 OpenAI 在您的 Key Vault 上呼叫加密/解密操作,我們需要獲授予存取權。本文說明如何設定您的 Azure 帳戶,讓 OpenAI 可擔任具有 Key Vault 權限的角色。

Azure EKM flow where OpenAI EKM uses Microsoft Entra ID to access your Key Vault and master KEK

步驟

1. 在您的帳戶中為 OpenAI 建立服務主體

  1. 取得存取 token

az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID
  1. 建立服務主體 — 以下要求中的 appId 是 OpenAI 的應用程式用戶端 ID。這會建立一個顯示名稱為「EKM - OpenAI Azure」的主體;請記住此名稱,供後續步驟使用。

OpenAI / Azure EKM 整合指示 - 建立服務主體

curl -X POST https://graph.microsoft.com/v1.0/servicePrincipals \
-H "Authorization: Bearer $TOKEN_FROM_ABOVE" \
-H "Content-Type: application/json" \
–d '{"appId": "20a14814-5ab7-4612-a671-1382b412bf93"}'

2. 建立自訂角色以限制 KMS 存取權限

  1. 前往 訂用帳戶 -> 存取控制 (IAM)

  2. + 新增 下拉式選單中,選擇新增自訂角色

  3. 前往 JSON 分頁,按一下「編輯」,並加入以下內容:

    1. 任何角色名稱均可;請記住您選擇的名稱

    2. dataActions 中加入以下權限:

      1. Microsoft.KeyVault/vaults/keys/encrypt/action

      2. Microsoft.KeyVault/vaults/keys/decrypt/action

      3. Microsoft.KeyVault/vaults/keys/read

OpenAI / Azure EKM Integration Instructions Custom Role

3. 建立 Key Vault + 金鑰

如果您尚未有 Key Vault,請在剛建立自訂角色的同一訂用帳戶中建立一個新的 Key Vault

在該 Key Vault 中建立新的金鑰:

  1. 前往 Key Vault -> 物件 -> 金鑰,然後按一下「產生/匯入」

  2. 在「選項」下選擇 產生

Azure Key Vault Keys page with Generate/Import highlighted to add a key
  1. 選擇 RSA 作為加密演算法。

  2. 您可以選擇任何 RSA 金鑰大小

  3. 提供符合以下格式的金鑰名稱<org-xxx>--<any_name>,其中 org-xxx 是您的 OpenAI 組織 ID,可在 https://platform.openai.com/settings/organization/general 找到

Azure Key Vault key generation form with RSA selected and key name org-abcdefg--test-keyvault-key

如果您無法檢視或建立金鑰,請確保您具有 Key Vault Administrator 角色。即使您擁有 Owner 角色,也需要此角色。若要獲指派此角色:

  1. 前往 Key Vault -> 存取控制 (IAM)

  2. 按一下 新增 -> 新增角色指派

Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment

4. 為 OpenAI 服務主體 + 新的自訂 KMS + 新金鑰建立角色指派

  1. 前往 Key Vault -> 物件 -> 金鑰,然後按一下您建立的金鑰所在列

  2. 前往您剛剛按下的金鑰存取控制 (IAM)不是您的 Key Vault)。

  3. + 新增 下拉式選單中,選擇新增角色指派

Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment
  1. 角色分頁中,選擇您剛建立的自訂角色名稱。

Azure role list filtered for openai- with the openai-azure-kms-role entry
  1. 成員分頁中:

    1. 按一下「+ 選取成員」

    2. 在搜尋列輸入 「ekm -」,然後應會載入您在步驟 1 建立的 OpenAI 服務主體

Azure role assignment Members step with EKM - OpenAI Azure Application selected as a member

5. 按照您自己的安全實務套用任何其他限制

以上是 OpenAI 設定 EKM 所需的最低資訊。只要 OpenAI 能夠在您的 KMS 上呼叫加密和解密操作,您可按照自己的內部安全實務套用其他金鑰政策或限制。當您呼叫下文所述的 OpenAI 金鑰註冊端點時,我們會驗證您的設定。

完成上述步驟後

ChatGPT Enterprise

請聯絡您的 OpenAI 聯絡人並分享以下資料:

  • "tenant_id": "<YOUR_AZURE_TENANT_UUID>"

  • "vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"

  • "key_name": "<YOUR_KEY_NAME>"

  • 您所管理的 Azure Key Vault 主要金鑰名稱

  • 金鑰名稱必須採用 <org-xxx>--<any_name> 格式,其中 org-xxx 是您的 OpenAI 組織 ID,可在 https://platform.openai.com/settings/organization/general 找到

我們會為您的 ChatGPT 組織/工作區啟用 EKM。

API

向 OpenAI 註冊您的外部金鑰

請按照此 API 參考中的指示操作:Management API 中的外部金鑰

  • 首先,在 OpenAI 組織層級註冊您的外部金鑰,這會產生格式為 extkey_xxx 的外部金鑰 ID

  • 在此步驟中,我們會驗證您的輸入有效,並且我們可向您的 KMS 進行驗證。

  • 這尚不會將 EKM 加入您的 OpenAI 專案。

# This generates an external key ID of the form extkey_xxx
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "azure",
"name": "<ANY_FRIENDLY_NAME>",
"tenant_id": "<YOUR_AZURE_TENANT_UUID>",
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/",
"key_name": "<YOUR_KEY_NAME>"
}'
  • 然後,建立一個與外部金鑰相關聯的 OpenAI 專案。之後,您的專案便會啟用 EKM。

  • 此 API 呼叫的回應主體會提供專案 ID (proj_xxx)

curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
   "name": "Some Project",
   "external_key_id": "extkey_xxxx"
}'

這篇文章對你有幫助嗎?