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

OpenAI / AWS EKM 整合指引

逐步指引你配置 AWS 並啟用 EKM

更新日期:2 hours ago

概覽

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

AWS EKM integration flow between OpenAI EKM Service, your STS, your KMS, and your master KEK

步驟

1. 建立新的 KMS 金鑰

  1. 前往 KMS -> Customer managed keys,然後按一下建立金鑰

  2. 選擇對稱式加密演算法。

  3. 建立金鑰後,請記下其 ARN。支援的格式包括 arn:aws:kms:<region>:<account_number>:key/<uuid>...:key/mrk-*...:alias/<alias_name>

AWS KMS customer managed key details page with key ID and ARN for test-kms

2. 建立自訂政策,以限制對 KMS 金鑰的存取權

  1. 前往 IAM -> Policies,然後按一下「Create Policy」。

  2. 指定權限步驟中,選擇 JSON,並輸入以下內容,讓政策具備 KMS 存取動作。請確保將 YOUR_KMS_ARN 替換為你所建立金鑰的 ARN。

AWS IAM Create policy page with Specify permissions open and the JSON policy editor selected
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowEncryptDecrypt",
            "Effect": "Allow",
            "Action": [

                "kms:Decrypt",
                "kms:Encrypt"

            ],
            "Resource": <YOUR_KMS_ARN>
        }
    ]
}

3. 建立一個供 OpenAI 擔任的 IAM 角色,並將其指派至對你的 KMS 具有限制存取權的政策

OpenAI 會從 OpenAI 擁有的 AWS 帳戶呼叫 AssumeRole。此步驟讓 OpenAI 的 AWS 主體可擔任受限制角色,以存取你的 KMS。

  1. 前往 IAM -> Roles,然後按一下建立角色

  2. 選擇受信任實體步驟中,選擇自訂信任政策

AWS IAM Select trusted entity screen with Custom trust policy selected

接下來,在自訂信任政策中輸入以下內容,以允許存取 OpenAI 的 AWS 主體。

  • 該主體是 OpenAI 的 AWS 主體:arn:aws:iam::790389265272:role/EnterpriseKeyManagement

  • 指定 OpenAI 在 AssumeRole 程序中應傳遞哪個 ExternalId

{
    "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 政策名稱。按一下政策名稱旁的核取方塊,然後按一下下一步

AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected

最後,在名稱、檢閱和建立部分中,選擇任何角色名稱。

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 中的外部金鑰

  1. 首先,在 OpenAI 組織層級註冊你的外部金鑰,這會產生一個外部金鑰 ID。

  2. 在此步驟中,我們會驗證你的輸入有效,並確認我們可以向你的 KMS 進行驗證。

  3. 這尚不會將 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 設定",
  "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": <你的 org id 或 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": "某個專案",

   "external_key_id": "extkey_xxxx"
}'

這篇文章對你有幫助嗎?