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

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

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

อัปเดตล่าสุด: 17 minutes ago

ภาพรวม

Enterprise Key Management (EKM) ช่วยให้ OpenAI เข้ารหัสข้อมูลโดยใช้คีย์หลักที่คุณเป็นผู้ควบคุม เอกสารนี้จะแสดงวิธีตั้งค่าบัญชี GCP ของคุณเพื่อมอบสิทธิ์แบบจำกัดให้ OpenAI บน KMS ของคุณ

Diagram of OpenAI GCP EKM integration flow using STS token exchange and KMS encrypt or decrypt requests

ขั้นตอน

1. สร้างfederated identity สำหรับ OpenAI

OpenAI จะออกโทเค็นตัวตนจากบัญชี GCP ของ OpenAI ซึ่งจะมีลักษณะประมาณนี้

  • azp และ sub คือ ID บัญชีบริการของ OpenAI ใน GCP

  • aud คือ ID องค์กร OpenAI ของคุณ คุณยังสามารถเลือก audience อื่นได้ เช่น ID โปรเจกต์ OpenAI ของคุณ — ดูคำแนะนำด้านล่าง

{
  "aud": "org-xxxx",
  "azp": "105900137572174660365",
  "exp": 1747876928,
  "iat": 1747873328,
  "iss": "https://accounts.google.com",
  "sub": "105900137572174660365"
}

ขั้นตอนนี้จะรับรอง claims ที่โทเค็นตัวตนนั้นระบุไว้ และทำให้ GCP STS ของคุณสามารถออก access token ได้เมื่อมีการส่งโทเค็นตัวตนนั้นมา

  1. ไปที่ IAM & Admin -> Workload Identity Federation แล้วคลิก Create Pool

    GCP IAM & Admin with Workload Identity Federation selected
  2. ในขั้นตอน Create an identity pool ให้กรอกอะไรก็ได้สำหรับpool name

    1. จดสิ่งนี้ไว้ใช้ภายหลัง — คุณจะต้องลงทะเบียนสิ่งนี้กับ OpenAI

  3. ในขั้นตอน Add a provider to pool:

    1. ใน Select a provider ให้เลือก OpenID Connect (OIDC)

    2. กรอกอะไรก็ได้สำหรับ provider name

    3. ในส่วน Issuer (URL) ให้ป้อน https://accounts.google.com

    4. ในส่วน Audiences

      1. เลือก Allowed audiences

      2. ป้อน audience ที่ OpenAI ควรระบุเมื่อเราส่งโทเค็นให้คุณ

        1. สำหรับ ChatGPT หรือ API: คุณสามารถใส่OpenAI API organization ID (org-xxx) ได้

        2. สำหรับ API: คุณสามารถใส่API project id เฉพาะเพื่อให้มีความละเอียดมากขึ้น

          GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
    5. ในส่วน Attribute mapping

      1. สำหรับ google.subject ให้ป้อน assertion.sub

        Google Cloud attribute mapping with Google 1 google.subject mapped to OIDC 1 assertion.sub
    6. ในส่วน Attribute conditions

      1. ใส่ assertion.sub == "105900137572174660365"

  4. ตอนนี้คุณควรเห็นworkload identity pool และworkload identity provider ของคุณแสดงอยู่ในหน้า https://console.cloud.google.com/iam-admin/workload-identity-pools

    1. Workload identity pool id

      GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
    2. Workload identity provider ID

      GCP Workload Identity Provider edit page with the provider ID field highlighted

2. ตรวจสอบว่าเปิดใช้งาน KMS แล้ว

ไปที่ https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview เพื่อเปิดใช้งาน KMS คุณไม่จำเป็นต้องสร้าง KMS ในโปรเจกต์ GCP เดียวกับที่คุณรับรอง federated identity ของ OpenAI อย่างไรก็ตาม หากโปรเจกต์ต่างกัน ต้องอย่างน้อยที่สุดให้ผลิตภัณฑ์ KMS ถูกเปิดใช้งานในทั้งสองโปรเจกต์

3. สร้างKMS Key ใหม่

  1. ไปที่ Security -> Data Protection > Key Management

  2. ใต้แท็บ Overview ให้คลิก Create key ring

    1. เลือกชื่อใดก็ได้สำหรับ key ring ของคุณ

    2. สำหรับ Purpose และ algorithm ให้เลือก Symmetric encrypt/decrypt

      GCP Key Management Overview page with the Create Key Ring button highlighted
    3. เมื่อคุณสร้าง key ring แล้ว รายการนั้นควรแสดงอยู่ในแท็บ Key Rings ให้คลิกที่ key ring นั้น

    4. ในรายละเอียด key ring ให้คลิก Create Key

      1. เลือกชื่อใดก็ได้สำหรับคีย์ของคุณ

4. สร้างroleแบบจำกัดสำหรับการดำเนินการเข้ารหัส/ถอดรหัสบน KMS

  1. ไปที่ IAM & Admin -> Roles -> Create role

  2. กรอกอะไรก็ได้สำหรับ role title และ ID

  3. คลิก Add Permissions แล้วเพิ่มรายการต่อไปนี้

    1. cloudkms.cryptoKeyVersions.useToDecrypt

    2. cloudkms.cryptoKeyVersions.useToEncrypt

5. กำหนด federated identity ของ OpenAI ให้กับ role KMS แบบจำกัดสำหรับการดำเนินการเข้ารหัส/ถอดรหัส

  1. ไปที่ Security -> Data Protection > Key Management

  2. คลิกชื่อkey ring ของคุณ แล้วคลิกkey name ของคุณเพื่อไปยังหน้ารายละเอียดคีย์

    1. หากคุณยังไม่มี ให้กลับไปที่ส่วน Create a KMS

  3. คลิกแท็บ Permissions แล้วคลิกปุ่ม Grant Access

    Google Cloud KMS key details page with Permissions tab open and Grant Access highlighted
  4. กำหนด federated identity ของ OpenAI ให้กับ custom role ที่คุณสร้างไว้ก่อนหน้านี้

    1. สำหรับส่วน Add principals ให้ป้อน principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365

      1. YOUR_GCP_PROJECT_NUMBER ตรงนี้คือโปรเจกต์ที่คุณรับรอง federated identity ของ OpenAI โดยการสร้าง YOUR_GCP_WORKLOAD_IDENTITY_POOL โดยอาจเป็นโปรเจกต์เดียวกับที่ KMS ของคุณอยู่ก็ได้ แต่ไม่จำเป็นต้องเป็น

      2. หากโปรเจกต์ต่างกัน ตรวจสอบให้แน่ใจว่าอย่างน้อยได้เปิดใช้งาน KMS บนอีกโปรเจกต์แล้วโดยไปที่ https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview

    2. ในส่วน Assign roles ให้เลือก custom role ที่คุณสร้างในขั้นตอนก่อนหน้าสำหรับสิทธิ์ EKM แบบจำกัด

6. ใช้ข้อจำกัดเพิ่มเติมตามแนวทางด้านความปลอดภัยของคุณเอง

ด้านบนคือข้อมูลขั้นต่ำที่จำเป็นที่ OpenAI ต้องใช้ในการตั้งค่า EKM คุณสามารถใช้นโยบายคีย์หรือข้อจำกัดเพิ่มเติมให้สอดคล้องกับแนวทางด้านความปลอดภัยภายในของคุณได้ ตราบใดที่ OpenAI ยังสามารถเรียกใช้การดำเนินการเข้ารหัสและถอดรหัสบน KMS ของคุณได้ เมื่อคุณเรียก endpoint สำหรับลงทะเบียนคีย์กับ OpenAI ตามที่อธิบายด้านล่าง เราจะตรวจสอบการตั้งค่าของคุณ

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

ChatGPT Enterprise

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

  • "workload_identity_project_number": "123456789012",

    • หมายเลขโปรเจกต์ GCP แบบ 12 หลักที่คุณลงทะเบียน workload identity ของ OpenAI ไว้

  • "workload_identity_pool_id": "openai-azure",

    • pool ที่มี Workload Identity provider ที่คุณลงทะเบียนไว้สำหรับ OpenAI

  • "workload_identity_provider_id": "openai-ekm-service-role",

    • Workload Identity provider ที่คุณลงทะเบียนไว้สำหรับ OpenAI

  • "kms_project_id": "adjective-noun-12345",

    • ชื่อโปรเจกต์ GCP ที่ KMS ของคุณอยู่

  • "kms_key_name": "openai-kms-key",

    • ชื่อคีย์หลักของ Key Management System

  • "kms_key_ring_name": "openai-kms-key-ring",

    • key ring ของ Key Management System ที่มีคีย์หลักที่คุณจัดการอยู่

  • "kms_key_location": "us-east1"

    • ภูมิภาคที่คีย์หลักของ Key Management System ของคุณตั้งอยู่

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

API

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

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

  • ขั้นแรก ให้ลงทะเบียน external key ของคุณในระดับองค์กร OpenAI ซึ่งจะสร้าง external key id ขึ้นมา

  • ในขั้นตอนนี้ เราจะตรวจสอบการตั้งค่าของคุณบน GCP โดยตรวจสอบว่าเราสามารถ auth ไปยัง 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": "gcp",
   "name": "GCP EKM Config",
   "workload_identity_project_number": "123456789012",
   "workload_identity_pool_id": "openai-azure",
   "workload_identity_provider_id": "openai-ekm-service-role",
   "audience": <your org id or project id>,
   "kms_project_id": "adjective-noun-12345",
   "kms_key_name": "openai-kms-key",
   "kms_key_ring_name": "openai-kms-key-ring",
   "kms_key_location": "us-east1"
}'

จากนั้น สร้างโปรเจกต์ OpenAI ที่เชื่อมโยงกับ external key หลังจากนี้ EKM จะถูกเปิดใช้งานบนโปรเจกต์ของคุณ

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"

}'

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