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

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

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

อัปเดตล่าสุด: 1 hour ago

ภาพรวม

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 -> Customer managed keys แล้วคลิก Create Key

  2. เลือกอัลกอริทึมการเข้ารหัสแบบสมมาตร

  3. หลังจากสร้างคีย์แล้ว ให้จด ARN ของคีย์ไว้ รูปแบบที่รองรับ ได้แก่ arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, or ...: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. ในขั้นตอน Specify permissions ให้เลือก 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 Role ให้ OpenAI ใช้ Assume และกำหนดให้กับนโยบายที่มีการเข้าถึง KMS ของคุณแบบจำกัด

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

  1. ไปที่ IAM -> Roles แล้วคลิก Create Role

  2. ในขั้นตอน Select trusted entity ให้เลือก Custom trust policy

    AWS IAM Select trusted entity screen with Custom trust policy selected
  3. ป้อนข้อมูลต่อไปนี้ใน trust policy แบบกำหนดเองเพื่ออนุญาตให้ principal AWS ของ OpenAI เข้าถึงได้

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

    2. ระบุ ExternalId ที่ OpenAI ควรส่งระหว่างกระบวนการ AssumeRole

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

      2. สำหรับ API คุณสามารถใส่ API project 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>,
                             ]
                        }
                    }
                }
            ]
        }
  4. ในขั้นตอน Add permissions ให้ค้นหาชื่อนโยบายของนโยบาย IAM ที่คุณสร้างในขั้นตอนก่อนหน้า คลิกcheckboxข้างชื่อนโยบาย แล้วคลิก Next

    AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected
  5. ในส่วน Name, review, and create ให้เลือกชื่อ role ใดก็ได้

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 จะใช้ Assume ในคลาวด์ของคุณ

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

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

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

API

ลงทะเบียน external key ของคุณกับ OpenAI

ทำตามคำแนะนำในเอกสารอ้างอิง API นี้ External Keys in the Management API

  1. ขั้นแรก ลงทะเบียน external key ของคุณในระดับองค์กร OpenAI ซึ่งจะสร้าง external key 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>
    }'
  4. จากนั้น สร้างโปรเจกต์ OpenAI ที่เชื่อมโยงกับ external key หลังจากนี้ EKM จะเปิดใช้งานในโปรเจกต์ของคุณ

  5. เนื้อหาการตอบกลับของการเรียก 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"
    }'

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