概覽
企業金鑰管理(EKM)讓你使用由自己的外部金鑰管理系統(KMS)管理的金鑰,加密儲存於 OpenAI 的客戶內容;ChatGPT Enterprise 及 API 均支援此功能。
OpenAI 支援透過 AWS KMS、Google Cloud(GCP)及 Azure Key Vault 的外部帳戶,使用自攜金鑰(BYOK)加密。
目前,只有設有指定 OpenAI 客戶代表的 Enterprise 及 Edu 工作區可實施 EKM。
OpenAI EKM 加密如何運作
頂層流程
我們會為你的雲端供應商產生一個資料加密金鑰(DEK)。
你的雲端 KMS 會管理一個主金鑰加密金鑰(KEK),可儲存在你的雲端內或外部。實作方式由你決定。
我們會要求你的雲端加密 DEK,以取得已加密 DEK(eDEK)。如果你的 KEK 儲存在外部,你的雲端只會額外跳轉到外部儲存位置,這一步對 OpenAI 不透明。
加密
加密時,你的資料會使用 DEK 加密,而 eDEK 則會作為中繼資料儲存於檔案中。

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

主要術語
Data Encryption Key (DEK) - 用來加密你資料的金鑰。
Encrypted Data Encryption Key (eDEK) - 由你的 KMS 產生的已加密 DEK
Key Encryption Key (KEK) - 由你管理的主金鑰,用於將 DEK 加密為 eDEK,以及將 eDEK 解密為 DEK。此金鑰會一直存放於 OpenAI 系統之外。
實作的高層要求
在你的雲端供應商中
在你的雲端 KMS(Azure、AWS 或 GCP)中建立新金鑰
建立一項自訂的有限政策,授予 KMS Encrypt/Decrypt 權限
為 OpenAI 建立信任政策(AWS)、工作負載身分(GCP)或服務主體(Azure)
向 OpenAI 指派附有限政策的角色,以存取你的 KMS
在 OpenAI 平台中
ChatGPT Enterprise
請建立一個沙盒 ChatGPT 工作區作測試用途。
API
請在你的 OpenAI 控制台中建立一個將套用加密的新專案。
供應商特定功能
對 AWS 而言,OpenAI 會:
使用 ExternalID 呼叫 AssumeRole
對 GCP 而言,OpenAI 會:
從 OpenAI GCP 帳戶呼叫你的 STS endpoint
使用 GCP 存取 token 在你的 KMS 上呼叫 encrypt/decrypt。
對 Azure 而言,OpenAI 會:
為你的 Azure 租戶保管庫請求存取 token
使用該存取 token 在你的 Key Vault 上呼叫 encrypt/decrypt。
你需要從 OpenAI 取得的資料
驗證
你需要識別 OpenAI 用於 AWS 和 GCP 的聯合身分 token。至於 Azure,你需要識別 OpenAI 應用程式註冊的 application id。
驗證參數摘要
| OpenAI AWS principal | arn:aws:iam::790389265272:role/EnterpriseKeyManagement |
| OpenAI GCP 服務帳戶 ID | 105900137572174660365 |
| OpenAI Azure 應用程式 ID | 20a14814-5ab7-4612-a671-1382b412bf93 |
實施期間按雲端供應商而定的必要資料
如使用 AWS,你必須設定可識別以下項目的信任政策:
如使用 GCP,你必須設定可識別以下項目的工作負載身分:
如使用 Azure,你必須在 Azure 租用戶中為 OpenAI 的應用程式註冊建立服務主體
為 OpenAI 的應用程式用戶端 ID 建立一個服務主體:20a14814-5ab7-4612-a671-1382b412bf9
你可以向 https://graph.microsoft.com/v1.0/servicePrincipals 端點傳送 POST 要求來完成此操作。
授權
你需要建立一項政策,讓 OpenAI 的身分可以有限度存取你的 KMS。
| AWS | GCP | Azure |
| kms:Decryptkms:Encrypt | cloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncrypt | Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action |
其他
在 Azure 中,金鑰類型(key encryption algorithm)請選擇 RSA,而不是 EC。
OpenAI 需要你提供的資料
請按照此文件的指示,向 OpenAI 註冊你的 KMS。以下概述你需要提供的參數。
驗證相關
AWS
GCP
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,以下功能將無法使用:
尚未普遍推出的功能,包括測試版或 Alpha 版功能。
