概覽
企業金鑰管理 (EKM) 讓 OpenAI 可使用由你控制的主金鑰加密資料。本文件說明如何設定你的 AWS 帳戶,以授予 OpenAI 對你的 KMS 的有限權限。

步驟
1. 建立新的 KMS 金鑰
前往 KMS > 客戶管理的金鑰,然後選擇建立金鑰。
選擇對稱加密演算法。
建立金鑰後,記下其 ARN。支援的格式包括
arn:aws:kms:<region>:<account_number>:key/<uuid>、...:key/mrk-*或...:alias/<alias_name>。

2. 建立自訂政策,授予 KMS 金鑰的有限存取權
前往 IAM > 政策,然後選擇建立政策。
在指定權限步驟中,選擇 JSON,然後輸入以下內容,在政策中加入允許執行的 KMS 存取操作。請務必將 YOUR_KMS_ARN 替換為你所建立金鑰的 ARN。

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": "<YOUR_KMS_ARN>"
}
]
}3. 建立供 OpenAI 擔任的 IAM 角色,並為其附加授予 KMS 有限存取權的政策
OpenAI 會從其擁有的 AWS 帳戶呼叫 AssumeRole。此步驟讓 OpenAI 的 AWS 主體擔任權限受限的角色,以存取你的 KMS。
前往 IAM > 角色,然後選擇建立角色。
在選擇受信任實體步驟中,選擇自訂信任政策。

接着,在自訂信任政策中輸入以下內容,允許 OpenAI 的 AWS 主體存取。
此主體為 OpenAI 的 AWS 主體:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement。指定 OpenAI 在
AssumeRole過程中應傳遞的 ExternalId。如使用 ChatGPT 或 API,請使用與工作區關聯的組織 ID(org-xxx),可在組織設定中查看。
如使用 API,你可以使用特定的 API 專案 ID,以更精細地控制存取範圍。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::790389265272:role/EnterpriseKeyManagement"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": [
"<YOUR_OPENAI_ORGANIZATION_ID>"
]
}
}
}
]
}接着,在新增權限步驟中,搜尋你在上一步建立的 IAM 政策名稱。勾選政策名稱旁的核取方塊,然後選擇下一步。

最後,在命名、檢閱及建立部分,自行設定角色名稱。
4. 按照你自己的安全實務套用任何額外限制
以上是 OpenAI 設定 EKM 所需的最低必要資料。只要 OpenAI 能夠在你的 KMS 上呼叫加密和解密操作,你便可按照自己的內部安全實務套用額外的金鑰政策或限制。當你透過下文所述的 OpenAI 金鑰註冊端點進行呼叫時,我們會驗證你的設定。
完成上述步驟後
ChatGPT Enterprise
請聯絡你的 OpenAI 聯絡人並分享以下內容:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>"OpenAI 將在你的雲端中擔任的角色 ARN。
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"你所管理的主金鑰的金鑰管理系統 ARN。
我們會為你的 ChatGPT 組織/工作區啟用 EKM。
API
向 OpenAI 註冊你的外部金鑰
請按照此 API 參考文件中的指示操作:管理 API 中的外部金鑰。
首先,在 OpenAI 組織層級註冊你的外部金鑰,系統便會產生外部金鑰 ID。
在此步驟中,我們會檢查你輸入的內容是否有效,並確認我們能否通過你的 KMS 身分驗證。
此步驟尚不會為你的 OpenAI 專案啟用 EKM。
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "aws",
"name": "AWS EKM Config",
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>",
"external_id": "<your org id or project id>"
}'然後,建立一個與外部金鑰相關聯的 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"
}'