Ringkasan
Manajemen Kunci Enterprise (EKM) memungkinkan OpenAI mengenkripsi data menggunakan kunci master yang Anda kendalikan. Dokumen ini menunjukkan cara menyiapkan akun GCP Anda untuk memberikan izin terbatas kepada OpenAI pada KMS Anda.

Langkah
1. Buat identitas terfederasi untuk OpenAI
OpenAI akan menerbitkan token identitas dari akun GCP milik OpenAI yang kira-kira terlihat seperti ini.
azp dan sub adalah ID akun layanan OpenAI di GCP
AUD adalah ID Organisasi OpenAI Anda. Anda juga dapat memilih pemirsa lain seperti ID proyek OpenAI Anda - lihat petunjuk di bawah
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Langkah ini mengenali klaim yang dibuat oleh identity token tersebut dan memungkinkan GCP STS Anda menerbitkan token akses saat token identitas tersebut diberikan.
Buka IAM & Admin -> Workload Identity Federation dan klik pada Create Pool

Pada langkah Buat kumpulan identitas, masukkan nama apa pun untuk nama kumpulan.
Ingat ini untuk nanti - Anda perlu mendaftarkannya ke OpenAI
Pada langkah Tambahkan penyedia ke pool:
Di bagian Pilih penyedia, pilih OpenID Connect (OIDC)
Masukkan apa pun untuk nama penyedia.
Di bagian Issuer (URL), masukkan https://accounts.google.com
Di bagian Audiens
Pilih Audiens yang Diizinkan
Masukkan audiens yang harus ditunjukkan OpenAI saat kami meneruskan token kepada Anda secara formal.
Untuk ChatGPT atau API: Anda dapat memasukkan ID Organisasi API OpenAI (org-xxx)
Untuk API: Anda dapat memasukkan ID proyek API tertentu untuk perincian yang lebih mendetail.

Di bagian Pemetaan Atribut
untuk google.subject masukkan assertion.sub

Di bagian Kondisi atribut
masukkan
assertion.sub == "105900137572174660365"
Sekarang Anda seharusnya melihat pool identitas beban kerja dan penyedia identitas beban kerja Anda tercantum di halaman https://console.cloud.google.com/iam-admin/workload-identity-pools tersebut
ID kolam identitas beban kerja

ID penyedia identitas beban kerja

2. Pastikan KMS diaktifkan
Buka https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview untuk mengaktifkan KMS. Anda tidak diharuskan untuk membuat KMS Anda di project GCP yang sama tempat Anda mengenali identitas federasi OpenAI; namun, jika project-nya berbeda, produk KMS setidaknya harus diaktifkan di kedua project.
3. Buat Kunci KMSbaru
Buka Keamanan -> Perlindungan Data > Manajemen Kunci
Di bawah tab Ringkasan, klik Buat key ring
Pilih nama apa pun untuk key ring Anda
Untuk Tujuan dan algoritma, pilih Enkripsi/dekripsi simetris

Setelah Anda membuat key ring, item tersebut akan muncul di tab Key Rings. Klik pada key ring.
Di detail key ring, klik Buat Key
Pilih nama apa pun untuk kunci Anda
4. Buat peran terbatas untuk operasi enkripsi/dekripsi pada KMS
Buka IAM & Admin -> Peran -> Buat peran
Masukkan apa saja untuk jabatan dan ID
Klik Tambahkan Izin, lalu tambahkan hal berikut ini
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Tetapkan identitas federasi OpenAI ke peran KMS terbatas untuk operasi enkripsi/dekripsi
Buka Keamanan -> Perlindungan Data > Manajemen Kunci
Klik nama key ring Anda, lalu klik nama kunci Anda untuk membuka halaman detail kunci Anda.
Jika Anda belum memilikinya, buka bagian Create a KMS
Klik tab Izin, lalu klik tombol Berikan Akses

Tetapkan identitas federasi OpenAI ke peran kustom yang sebelumnya Anda buat
Untuk bagian Tambahkan principal, masukkan prinsipal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
YOUR_GCP_PROJECT_NUMBER di sinilah proyek tempat Anda mengenali identitas federasi OpenAI dengan membuat YOUR_GCP_WORKLOAD_IDENTITY_POOL. Bisa, tetapi tidak harus, berada di proyek yang sama dengan tempat KMS Anda berada.
Jika proyeknya berbeda, pastikan bahwa KMS setidaknya diaktifkan di proyek lainnya dengan membuka https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview
Di bagian Tetapkan peran, pilih peran kustom yang Anda buat pada langkah sebelumnya untuk izin EKM terbatas
6. Terapkan batasan tambahan apa pun sesuai dengan praktik keamanan Anda sendiri
Di atas adalah informasi minimum yang diperlukan OpenAI untuk menyiapkan EKM. Anda bebas menerapkan kebijakan atau pembatasan kunci tambahan sesuai dengan praktik keamanan internal Anda sendiri, selama OpenAI dapat memanggil operasi enkripsi dan dekripsi pada KMS Anda. Saat Anda memanggil endpoint pendaftaran kunci dengan OpenAI yang dijelaskan di bawah ini, kami akan memvalidasi penyiapan Anda.
Setelah menyelesaikan langkah-langkah di atas
ChatGPT Enterprise
Harap hubungi kontak OpenAI Anda dan bagikan hal berikut:
"workload_identity_project_number": "123456789012",
Nomor proyek GCP 12 digit tempat Anda mendaftarkan identitas beban kerja OpenAI
"workload_identity_pool_id": "openai-azure",
Pool yang berisi penyedia Workload Identity yang Anda daftarkan untuk OpenAI
"workload_identity_provider_id": "openai-ekm-service-role",
Penyedia Workload Identity yang Anda daftarkan untuk OpenAI
"kms_project_id": "adjective-noun-12345",
Nama project GCP tempat KMS Anda berada
"kms_key_name": "openai-kms-key",
Nama kunci master Sistem Manajemen Kunci
"kms_key_ring_name": "openai-kms-key-ring",
Key ring Key Management System yang berisi kunci master yang Anda kelola
"kms_key_location": "us-east1"
Wilayah tempat kunci master Key Management System Anda berada
Kami akan mengaktifkan EKM untuk organisasi/workspace ChatGPT Anda.
API
Daftarkan kunci eksternal Anda di OpenAI
Ikuti petunjuk dalam referensi API ini Kunci Eksternal di Management API
Pertama, daftarkan kunci eksternal Anda di tingkat organisasi OpenAI, yang akan menghasilkan ID kunci eksternal.
Pada langkah ini, kami akan memvalidasi penyiapan Anda di GCP dengan memeriksa bahwa kami dapat melakukan autentikasi ke KMS Anda.
Langkah ini belum akan menambahkan EKM ke proyek OpenAI Anda.
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"
}'Lalu, buat proyek OpenAI yang terkait dengan kunci eksternal. Setelah ini, EKM diaktifkan pada proyek Anda.
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"
}'