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

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

2. 為 KMS 金鑰建立自訂原則,以限制存取權限
Go 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。
Go IAM -> 角色,然後按一下 「建立角色」。
在選取受信任主體步驟中,選取自訂信任原則。

接著,在 自訂信任原則 中輸入以下內容,以允許存取 OpenAI 的 AWS 主體。
該主體是 OpenAI 的 AWS 主體:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement。指定在
AssumeRole流程中,OpenAI 應傳入哪個 ExternalId 。若使用 ChatGPT 或 API,請使用與你工作區相關聯的 組織 ID (org-xxx):https://platform.api.openai.org/settings/organization/general.
如果是 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 上呼叫 encrypt 和 decrypt 作業,你即可依據自身內部安全做法,自由套用額外的金鑰原則或限制。當你使用 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。
這還不會將 EKM 新增至你的 OpenAI 專案。
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"
}'