概覽
企業金鑰管理 (EKM) 可讓你在 OpenAI 使用由你自己的外部金鑰管理系統 (KMS) 管理的金鑰,為你的客戶內容加密;ChatGPT Enterprise 和 API 皆適用。OpenAI 支援使用位於 AWS KMS、Google Cloud (GCP) 和 Azure Key Vault 的外部帳戶進行自備金鑰 (BYOK) 加密。
目前,EKM 的實施僅限於擁有指定 OpenAI 客戶代表的 Enterprise 和 Edu 工作區。
OpenAI EKM 的運作方式
高層次流程
我們會為你的雲端服務供應商產生一個資料加密金鑰 (DEK)。
你的雲端 KMS 會管理主金鑰加密金鑰 (KEK),可儲存在你的雲端環境內部或外部。實施方式由你決定。
我們會向你的雲端要求對 DEK 進行加密,以取得 加密的 DEK (eDEK)。如果你的 KEK 儲存在外部,你的雲端只會多繞一步到你的外部儲存位置,這個步驟是 OpenAI 無法得知的。
加密
加密時,你的資料會使用 DEK 加密,而 eDEK 會作為中繼資料儲存在檔案中。

解密
解密時,我們會要求你的雲端 KMS 將 eDEK 解密為 DEK,並使用 DEK 解密資料。

關鍵詞
資料加密金鑰 (DEK):用於加密資料的金鑰。
加密的資料加密金鑰 (eDEK) - 由你的 KMS 產生的加密 DEK
金鑰加密金鑰 (KEK) - 你管理的主金鑰,用於將 DEK 加密為 eDEK,並將 eDEK 解密為 DEK。此金鑰始終不會進入 OpenAI 系統。
實施的高層次需求
在你的雲端服務供應商中
在你的雲端 KMS (Azure、AWS 或 GCP) 中建立新金鑰
已在 KMS 上建立具備加密/解密權限的自訂有限原則
為 OpenAI 建立 信任原則 (AWS)、工作負載身分識別(GCP) 或 服務主體 (適用於 Azure)
為 OpenAI 指派具有有限原則的角色,以存取你的 KMS
在 OpenAI 各平台中
ChatGPT Enterprise
建立一個測試使用的沙箱 ChatGPT 工作區。
API
在 OpenAI 儀表板,建立一個將套用加密功能的新專案。
特定供應商的函式
對於 AWS,OpenAI 會:
使用 ExternalID 呼叫 AssumeRole
對於 GCP, OpenAI 會:
從 OpenAI GCP 帳戶呼叫你的 STS 端點
使用 GCP 存取 Token 呼叫你的 KMS 執行加密/解密。
對於 Azure,OpenAI 會:
申請存取 Token,用於你的 Azure 租戶保存庫
使用該存取 Token 來對你的 Key Vault 執行加密/解密。
你必須從 OpenAI 獲得的資訊
身分驗證
你必須辨識 AWS 和 GCP 的 OpenAI 聯合身分 Token。對於 Azure,你必須辨識 OpenAI 在其應用程式註冊中的應用程式 ID。
身分驗證參數摘要
| OpenAI AWS 主要負責人 | arn:aws:iam::790389265272:role/EnterpriseKeyManagement |
| OpenAI GCP 服務帳戶 ID | 105900137572174660365 |
| OpenAI Azure 應用程式 ID | 20a14814-5ab7-4612-a671-1382b412bf93 |
根據你的雲端服務供應商,在實施過程中所需的資訊
對於 AWS,你必須設定一個可識別以下對象的 信任原則:
OpenAI 的主要負責人 (帳號 + 角色)
ExternalID 是你的 OpenAI 專案 ID
對於 GCP,你必須設定一個可辨識的工作負載身分識別:
OpenAI 的服務帳戶 ID
你的 OpenAI 專案 ID 的目標受眾
對於 Azure,你必須在 Azure 租戶中為 OpenAI 的應用程式註冊建立服務主體
為 OpenAI 的應用程式用戶端 ID 建立一個:20a14814-5ab7-4612-a671-1382b412bf9
你可以藉由將內容張貼至 https://graph.microsoft.com/v1.0/servicePrincipals端點來執行此動作。
授權
你必須建立一項原則,允許 OpenAI 的身分取得 KMS 的有限存取權限。
| AWS | GCP | Azure |
| kms:Decryptkms:Encrypt | Cloudkm.cryptoKeyVersion.useToDecryptCloudkms.cryptoKeyVersion.useToEncrypt | Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action |
其他
在 Azure,針對金鑰類型 (金鑰加密演算法),請選取 RSA 而非 EC。
OpenAI 需要你提供的資訊
依照這份文件中的指示操作,向 OpenAI 註冊你的 KMS。以下為你必須提供的參數摘要。
驗證相關
AWS
IAM 角色 ARN - 供 OpenAI 使用的角色 (例如:arn:aws:iam::123456789:role/role-name)
ExternalID - 你的 OpenAI 組織 ID
GCP
工作負載身分專案編號 (例如:123456789)
工作負載身分集區 ID
工作負載身分驗證供應商 ID
允許的對象:你的 OpenAI 組織 ID
Azure
租戶 ID
| AWS | GCP | Azure | |
| 驗證相關 | 租戶 ID | ||
| KMS 相關 | KMS ARN - (例如:arn:aws:kms:REGION:ACCOUNT_NUMBER:key:KEY_UUID) | KMS 專案 ID (例如:adjective-noun-12345)KMS 金鑰圈名稱KMS 金鑰名稱KMS 金鑰位置 (例如:us-east1) | 保存庫 URI (例如:https://your-vault-name.vault.azure.net/)金鑰名稱 |
向 OpenAI 註冊 KMS 後,請繼續依照文件中的指示,在 API 專案上啟用你的 EKM 設定。建立一個測試用途的 新 OpenAI API 專案。
供應商專屬實作指南
如需循序漸進的指導,請參閱下方對應連結。請注意,這些重點在於與 OpenAI 的整合需求,並非你完整環境的全面指南
啟用 EKM 時,不支援的功能
在初始版本中,啟用 EKM 後,無法使用以下功能:
具有同步處理功能的應用程式
尚未正式推出的功能 (即任何仍在 Beta/Alpha 測試階段)
