OpenAI
หน้านี้แปลด้วยระบบอัตโนมัติ ดูต้นฉบับภาษาอังกฤษ.

คำแนะนำการผสานรวม OpenAI / AWS EKM

คำแนะนำทีละขั้นตอนในการจัดเตรียม AWS และเปิดใช้งาน EKM

อัปเดตล่าสุด: yesterday

ภาพรวม

Enterprise Key Management (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 -> คีย์ที่ลูกค้าจัดการ จากนั้นคลิก สร้างคีย์

  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 -> นโยบาย จากนั้นคลิกสร้างนโยบาย

  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. สร้าง บทบาท IAM เพื่อให้ OpenAI รับบทบาท และกำหนดให้กับนโยบายที่มีสิทธิ์เข้าถึง KMS ของคุณแบบจำกัด

OpenAI จะเรียก AssumeRole จากบัญชี AWS ที่ OpenAI เป็นเจ้าของ ขั้นตอนนี้ช่วยให้ AWS principal ของ OpenAI รับบทบาทแบบจำกัดเพื่อเข้าถึง KMS ของคุณได้

  1. ไปที่ IAM -> บทบาท จากนั้นคลิก สร้างบทบาท

  2. ในขั้นตอน เลือกเอนทิตีที่เชื่อถือได้ ให้เลือก นโยบายความเชื่อถือแบบกำหนดเอง

AWS IAM Select trusted entity screen with Custom trust policy selected

ถัดไป ให้ป้อนข้อมูลต่อไปนี้ใน นโยบายความเชื่อถือแบบกำหนดเอง เพื่ออนุญาตการเข้าถึง AWS principal ของ OpenAI

  • principal คือ AWS principal ของ OpenAI: arn:aws:iam::790389265272:role/EnterpriseKeyManagement

  • ระบุว่า OpenAI ควรส่ง ExternalId ใดระหว่างกระบวนการ AssumeRole

    • สำหรับ ChatGPT หรือ API ให้ใช้ ID องค์กร (org-xxx) ที่เชื่อมโยงกับเวิร์กสเปซของคุณ: https://platform.api.openai.org/settings/organization/general

    • สำหรับ API คุณสามารถใช้ ID โปรเจกต์ API ที่เฉพาะเจาะจงเพื่อความละเอียดมากขึ้น

{
    "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 ของคุณได้ เมื่อคุณเรียก endpoint การลงทะเบียนคีย์กับ OpenAI ที่อธิบายไว้ด้านล่าง เราจะตรวจสอบการตั้งค่าของคุณ

หลังจากทำขั้นตอนข้างต้นเสร็จสิ้น

ChatGPT Enterprise

โปรดติดต่อผู้ประสานงาน OpenAI ของคุณและแชร์ข้อมูลต่อไปนี้:

  • "role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>"

    • Role ARN ที่ OpenAI จะรับบทบาทในคลาวด์ของคุณ

  • "kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"

    • ARN ของ Key Management System สำหรับคีย์หลักที่คุณจัดการ

เราจะเปิดใช้งาน EKM สำหรับองค์กร/เวิร์กสเปซ ChatGPT ของคุณ

API

ลงทะเบียนคีย์ภายนอกของคุณกับ OpenAI

ทำตามคำแนะนำในเอกสารอ้างอิง API นี้: คีย์ภายนอกใน Management 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 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"
}'

บทความนี้มีประโยชน์หรือไม่