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

ขั้นตอน
1. สร้างข้อมูลประจำตัวแบบรวมศูนย์สำหรับ OpenAI
OpenAI จะออก Token ข้อมูลประจำตัวจากบัญชี 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 ที่สร้างโดย Token ข้อมูลประจำตัวนั้น และเปิดให้ GCP STS ของคุณออก Token การเข้าถึงเมื่อมีการส่ง Token ข้อมูลประจำตัวนั้น
ไปที่ IAM และผู้ดูแลระบบ -> Workload Identity Federation แล้วคลิก สร้าง Pool

ในขั้นตอน สร้าง identity pool ให้ป้อนอะไรก็ได้สำหรับชื่อ Pool
ในขั้นตอน เพิ่มผู้ให้บริการลงใน Pool:
ในเลือกผู้ให้บริการ ให้เลือก OpenID Connect (OIDC)
ป้อนอะไรก็ได้สำหรับชื่อผู้ให้บริการ
ในส่วน ผู้ออก (URL) ให้ป้อน https://accounts.google.com
ในส่วน Audiences
เลือก Allowed audiences
ป้อน audience ที่ OpenAI ควรระบุเมื่อเราส่ง Token ให้คุณ
สำหรับ ChatGPT หรือ API: คุณสามารถใส่ ID องค์กร OpenAI API (org-xxx)
สำหรับ API: คุณสามารถใส่ ID โปรเจกต์ API ที่เฉพาะเจาะจงเพื่อความละเอียดที่มากขึ้น

ในส่วน การแมปแอตทริบิวต์
สำหรับ google.subject ให้ป้อน assertion.sub

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

ID ของ Workload identity provider

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

เมื่อคุณสร้างชุดคีย์แล้ว ชุดคีย์นั้นควรปรากฏในแท็บ ชุดคีย์ คลิกชุดคีย์
ในรายละเอียดชุดคีย์ ให้คลิก สร้างคีย์
เลือกชื่อใดก็ได้สำหรับคีย์ของคุณ
4. สร้างบทบาทแบบจำกัดสำหรับการดำเนินการเข้ารหัส/ถอดรหัสบน KMS
ไปที่ IAM และผู้ดูแลระบบ -> บทบาท -> สร้างบทบาท
ป้อนชื่อและ ID ของบทบาทเป็นอะไรก็ได้
คลิกเพิ่มสิทธิ์ แล้วเพิ่มรายการต่อไปนี้
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. กำหนดข้อมูลประจำตัวแบบรวมศูนย์ของ OpenAI ให้กับบทบาท KMS แบบจำกัดสำหรับการดำเนินการเข้ารหัส/ถอดรหัส
ไปที่ ความปลอดภัย -> การปกป้องข้อมูล > การจัดการคีย์
คลิกชื่อชุดคีย์ของคุณ แล้วคลิกชื่อคีย์ของคุณเพื่อไปยังหน้ารายละเอียดคีย์
คลิกแท็บ สิทธิ์ แล้วคลิกปุ่ม ให้สิทธิ์เข้าถึง

กำหนดข้อมูลประจำตัวแบบรวมศูนย์ของ OpenAI ให้กับบทบาทที่กำหนดเองที่คุณสร้างไว้ก่อนหน้านี้
ในส่วน เพิ่มผู้ใช้หลัก ให้ป้อน principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
ในส่วน กำหนดบทบาท ให้เลือกบทบาทที่กำหนดเองที่คุณสร้างไว้ในขั้นตอนก่อนหน้าสำหรับสิทธิ์ EKM แบบจำกัด
6. ใช้ข้อจำกัดเพิ่มเติมใดๆ ให้สอดคล้องกับแนวปฏิบัติด้านความปลอดภัยของคุณเอง
ด้านบนคือข้อมูลขั้นต่ำที่จำเป็นที่ OpenAI ต้องใช้เพื่อตั้งค่า EKM คุณสามารถใช้นโยบายคีย์หรือข้อจำกัดเพิ่มเติมให้สอดคล้องกับแนวปฏิบัติด้านความปลอดภัยภายในของคุณเองได้ ตราบใดที่ OpenAI สามารถเรียกใช้การดำเนินการเข้ารหัสและถอดรหัสบน KMS ของคุณ เมื่อคุณเรียก endpoint การลงทะเบียนคีย์กับ OpenAI ตามที่อธิบายไว้ด้านล่าง เราจะตรวจสอบการตั้งค่าของคุณ
หลังจากทำขั้นตอนข้างต้นเสร็จแล้ว
ChatGPT Enterprise
โปรดติดต่อผู้ติดต่อ OpenAI ของคุณและแชร์ข้อมูลต่อไปนี้:
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"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"
ภูมิภาคที่มาสเตอร์คีย์ของระบบการจัดการคีย์ของคุณตั้งอยู่
เราจะเปิดใช้งาน EKM สำหรับองค์กร/เวิร์กสเปซ ChatGPT ของคุณ
API
ลงทะเบียนคีย์ภายนอกของคุณกับ OpenAI
ทำตามคำแนะนำในข้อมูลอ้างอิง API นี้ คีย์ภายนอกใน Management API
ขั้นแรก ลงทะเบียนคีย์ภายนอกของคุณที่ระดับองค์กร OpenAI ซึ่งจะสร้าง ID คีย์ภายนอก
ในขั้นตอนนี้ เราจะตรวจสอบการตั้งค่าของคุณบน GCP โดยตรวจสอบว่าเราสามารถตรวจสอบสิทธิ์กับ 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 ที่เชื่อมโยงกับคีย์ภายนอก หลังจากนี้ 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"
}'