Gambaran keseluruhan
Enterprise Key Management (EKM) membolehkan OpenAI menyulitkan data menggunakan kunci induk yang anda kawal. Dokumen ini menunjukkan cara menyediakan akaun GCP anda untuk memberikan kebenaran terhad kepada OpenAI pada KMS anda.

Langkah-langkah
1. Cipta identiti bersekutu untuk OpenAI
OpenAI akan mengeluarkan token identiti daripada akaun GCP milik OpenAI yang kelihatan lebih kurang seperti ini.
azp dan sub ialah ID akaun perkhidmatan OpenAI dalam GCP
aud ialah ID organisasi OpenAI anda. Anda juga boleh memilih audiens lain seperti ID projek OpenAI anda — lihat arahan di bawah
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Langkah ini mengiktiraf tuntutan yang dibuat oleh token identiti tersebut dan membolehkan GCP STS anda mengeluarkan token akses apabila token identiti itu diberikan.
Pergi ke IAM & Pentadbir -> Persekutuan Identiti Beban Kerja dan klik Cipta Kumpulan

Dalam langkah Cipta kumpulan identiti, masukkan apa-apa sahaja untuk nama kumpulan.
Dalam langkah Tambah penyedia kepada kumpulan:
Dalam Pilih penyedia, pilih OpenID Connect (OIDC)
Masukkan apa-apa sahaja untuk nama penyedia.
Dalam bahagian Pengeluar (URL), masukkan https://accounts.google.com
Dalam bahagian Audiens
Pilih Audiens yang dibenarkan
Masukkan audiens yang harus dinyatakan oleh OpenAI apabila kami menghantar token kepada anda.
Untuk ChatGPT atau API: Anda boleh memasukkan ID organisasi OpenAI API (org-xxx)
Untuk API: anda boleh memasukkan ID projek API tertentu untuk perincian yang lebih tinggi.

Dalam bahagian Pemetaan atribut
untuk google.subject, masukkan assertion.sub

Dalam bahagian Syarat atribut
Kini anda sepatutnya melihat kumpulan identiti beban kerja dan penyedia identiti beban kerja anda disenaraikan pada halaman https://console.cloud.google.com/iam-admin/workload-identity-pools
ID kumpulan identiti beban kerja

ID penyedia identiti beban kerja

2. Pastikan KMS didayakan
Pergi ke https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview untuk mendayakan KMS. Anda tidak perlu mencipta KMS anda dalam projek GCP yang sama tempat anda mengiktiraf identiti bersekutu OpenAI; namun, jika projeknya berbeza, produk KMS sekurang-kurangnya mesti didayakan dalam kedua-dua projek.
3. Cipta Kunci KMS baharu
Pergi ke Keselamatan -> Perlindungan Data > Pengurusan Kunci
Di bawah tab Gambaran keseluruhan, klik Cipta gelang kunci
Pilih apa-apa nama untuk gelang kunci anda
Untuk Tujuan dan algoritma, pilih Sulitkan/nyahsulit simetri

Setelah anda mencipta gelang kunci, gelang kunci itu sepatutnya disenaraikan dalam tab Gelang Kunci. Klik gelang kunci tersebut.
Dalam butiran gelang kunci, klik Cipta Kunci
Pilih apa-apa nama untuk kunci anda
4. Cipta peranan terhad untuk operasi penyulitan/penyahsulitan pada KMS
Pergi ke IAM & Pentadbir -> Peranan -> Cipta peranan
Masukkan apa-apa sahaja untuk tajuk dan ID peranan
Klik Tambah Kebenaran, kemudian tambahkan yang berikut
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Tetapkan identiti bersekutu OpenAI kepada peranan KMS terhad untuk operasi penyulitan/penyahsulitan
Pergi ke Keselamatan -> Perlindungan Data > Pengurusan Kunci
Klik nama gelang kunci anda, kemudian klik nama kunci anda untuk pergi ke halaman butiran kunci anda.
Klik tab Kebenaran, kemudian klik butang Berikan Akses

Tetapkan identiti bersekutu OpenAI kepada peranan tersuai yang telah anda cipta sebelum ini
Untuk bahagian Tambah prinsipal, masukkan principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
Dalam bahagian Tetapkan peranan, pilih peranan tersuai yang anda cipta dalam langkah sebelumnya untuk kebenaran EKM terhad
6. Gunakan sebarang sekatan tambahan selaras dengan amalan keselamatan anda sendiri
Di atas ialah maklumat minimum yang diperlukan oleh OpenAI untuk menyediakan EKM. Anda bebas menggunakan dasar kunci atau sekatan tambahan selaras dengan amalan keselamatan dalaman anda sendiri, selagi OpenAI dapat memanggil operasi penyulitan dan penyahsulitan pada KMS anda. Apabila anda memanggil titik akhir pendaftaran kunci dengan OpenAI seperti yang diterangkan di bawah, kami akan mengesahkan persediaan anda.
Selepas melengkapkan langkah-langkah di atas
ChatGPT Enterprise
Sila hubungi wakil OpenAI anda dan kongsikan yang berikut:
"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"
Rantau tempat kunci induk Key Management System anda berada
Kami akan mendayakan EKM untuk organisasi/ruang kerja ChatGPT anda.
API
Daftarkan kunci luaran anda dengan OpenAI
Ikuti arahan dalam rujukan API ini Kunci Luaran dalam Management API
Mula-mula, daftarkan kunci luaran anda pada peringkat organisasi OpenAI, yang akan menjana ID kunci luaran.
Dalam langkah ini, kami akan mengesahkan persediaan anda pada GCP dengan menyemak bahawa kami boleh mengesahkan akses kepada KMS anda.
Ini belum lagi menambahkan EKM pada projek 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"
}'Kemudian, cipta projek OpenAI yang dikaitkan dengan kunci luaran tersebut. Selepas itu, EKM diaktifkan pada projek 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"
}'