მიმოხილვა
Enterprise Key Management (EKM) OpenAI-ს საშუალებას აძლევს, მონაცემები დაშიფროს მთავარი გასაღებით, რომელსაც თქვენ აკონტროლებთ. ეს დოკუმენტი აჩვენებს, როგორ დააყენოთ თქვენი GCP ანგარიში ისე, რომ OpenAI-ს თქვენს KMS-ზე შეზღუდული ნებართვები მისცეთ.

ნაბიჯები
1. შექმენით ფედერაციული იდენტობა OpenAI-სთვის
OpenAI გამოსცემს იდენტობის token-ს OpenAI-ის კუთვნილი GCP ანგარიშიდან, რომელიც დაახლოებით ასე გამოიყურება.
azp და sub არის OpenAI-ის სერვისის ანგარიშის ID GCP-ში
aud არის თქვენი OpenAI ორგანიზაციის ID. ასევე შეგიძლიათ აირჩიოთ სხვა აუდიტორია, მაგალითად თქვენი OpenAI პროექტის ID — იხილეთ ქვემოთ მოცემული ინსტრუქციები
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}ეს ნაბიჯი ამოიცნობს იმ იდენტობის token-ის მიერ წარმოდგენილ მოთხოვნებს და თქვენს GCP STS-ს საშუალებას აძლევს, გასცეს წვდომის token, როდესაც ეს იდენტობის token მიეწოდება.
გადადით IAM & Admin -> Workload Identity Federation -ზე და დააწკაპუნეთ Create Pool-ზე

Create an identity pool, ნაბიჯში pool name.-ისთვის შეიყვანეთ ნებისმიერი მნიშვნელობა
Add a provider to pool ნაბიჯში:
Select a provider-ში აირჩიეთ OpenID Connect (OIDC)
provider name-ისთვის შეიყვანეთ ნებისმიერი მნიშვნელობა.
Issuer (URL) სექციაში შეიყვანეთ https://accounts.google.com
Audiences სექციაში
აირჩიეთ Allowed audiences
შეიყვანეთ აუდიტორია, რომელიც OpenAI-მ უნდა მიუთითოს, როცა token-ს გადმოგცემთ.
ChatGPT-ისთვის ან API-სთვის: შეგიძლიათ მიუთითოთ OpenAI API organization ID (org-xxx)
API-სთვის: მეტი დეტალიზაციისთვის შეგიძლიათ მიუთითოთ კონკრეტული API project id.

Attribute mapping სექციაში
google.subject-ისთვის შეიყვანეთ assertion.sub

Attribute conditions სექციაში
ახლა https://console.cloud.google.com/iam-admin/workload-identity-pools გვერდზე უნდა ხედავდეთ თქვენს workload identity pool -ს და workload identity provider -ს
Workload identity pool id

Workload identity provider ID

2. დარწმუნდით, რომ KMS ჩართულია
KMS-ის ჩასართავად გადადით https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview-ზე. არ არის აუცილებელი, თქვენი KMS იმავე GCP პროექტში შექმნათ, სადაც OpenAI-ის ფედერაციული იდენტობა ამოიცანით; თუმცა, თუ პროექტები განსხვავდება, KMS პროდუქტი სულ მცირე ორივე პროექტში უნდა იყოს ჩართული.
3. შექმენით ახალი KMS გასაღები
გადადით Security -> Data Protection > Key Management-ზე
Overview ჩანართში დააწკაპუნეთ Create key ring-ზე
აირჩიეთ ნებისმიერი სახელი თქვენი key ring-ისთვის
Purpose and algorithm-ისთვის აირჩიეთ Symmetric encrypt/decrypt

key ring-ის შექმნის შემდეგ, ის უნდა გამოჩნდეს Key Rings ჩანართში. დააწკაპუნეთ key ring-ზე.
key ring-ის დეტალებში დააწკაპუნეთ Create Key-ზე
აირჩიეთ ნებისმიერი სახელი თქვენი გასაღებისთვის
4. შექმენით შეზღუდული როლი KMS-ზე დაშიფვრის/გაშიფვრის ოპერაციებისთვის
გადადით IAM & Admin -> Roles -> Create role-ზე
როლის სათაურისა და ID-სთვის შეიყვანეთ ნებისმიერი მნიშვნელობა
დააწკაპუნეთ Add Permissions-ზე, შემდეგ დაამატეთ შემდეგი
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. მიანიჭეთ OpenAI-ის ფედერაციული იდენტობა შეზღუდულ KMS როლს დაშიფვრის/გაშიფვრის ოპერაციებისთვის
გადადით Security -> Data Protection > Key Management-ზე
დააწკაპუნეთ თქვენი key ring-ის სახელზე, შემდეგ დააწკაპუნეთ თქვენი key name-ზე, რათა მოხვდეთ გასაღების დეტალების გვერდზე.
დააწკაპუნეთ Permissions ჩანართზე, შემდეგ ღილაკზე Grant Access

მიანიჭეთ OpenAI-ის ფედერაციული იდენტობა ადრე შექმნილ მორგებულ როლს
Add principals სექციაში შეიყვანეთ principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
Assign roles სექციაში აირჩიეთ წინა ნაბიჯში შექმნილი მორგებული როლი EKM-ის შეზღუდული ნებართვებისთვის
6. გამოიყენეთ ნებისმიერი დამატებითი შეზღუდვა თქვენი უსაფრთხოების პრაქტიკის შესაბამისად
ზემოთ მოცემულია მინიმალური აუცილებელი ინფორმაცია, რომელიც OpenAI-ს EKM-ის დასაყენებლად სჭირდება. შეგიძლიათ გამოიყენოთ დამატებითი გასაღების პოლიტიკები ან შეზღუდვები თქვენი შიდა უსაფრთხოების პრაქტიკის შესაბამისად, თუ OpenAI-ს თქვენს KMS-ზე დაშიფვრისა და გაშიფვრის ოპერაციების გამოძახება შეეძლება. როდესაც 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"
რეგიონი, სადაც თქვენი Key Management System-ის მთავარი გასაღებია განთავსებული
ჩვენ ჩავრთავთ 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": <თქვენი org id ან 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"
}'