Επισκόπηση
Το Enterprise Key Management (EKM) επιτρέπει στην OpenAI να κρυπτογραφεί δεδομένα χρησιμοποιώντας ένα κύριο κλειδί που ελέγχετε εσείς. Αυτό το έγγραφο δείχνει πώς να ρυθμίσετε τον λογαριασμό σας στο GCP ώστε να δώσετε στην OpenAI περιορισμένα δικαιώματα στο KMS σας.

Βήματα
1. Δημιουργήστε μια ομοσπονδιακή ταυτότητα για την OpenAI
Η OpenAI θα εκδώσει ένα token ταυτότητας από έναν λογαριασμό GCP που ανήκει στην OpenAI και θα μοιάζει κάπως έτσι.
Τα azp και sub είναι το αναγνωριστικό λογαριασμού υπηρεσίας της OpenAI στο GCP
Το aud είναι το αναγνωριστικό οργανισμού OpenAI σας. Μπορείτε επίσης να επιλέξετε άλλο audience, όπως το αναγνωριστικό έργου OpenAI σας - δείτε τις παρακάτω οδηγίες
{
"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.
Θυμηθείτε το για αργότερα - θα χρειαστεί να το καταχωρίσετε στην OpenAI
Στο βήμα Add a provider to pool:
Στο Select a provider, επιλέξτε OpenID Connect (OIDC)
Εισαγάγετε οτιδήποτε για το provider name.
Στην ενότητα Issuer (URL), εισαγάγετε https://accounts.google.com
Στην ενότητα Audiences
Επιλέξτε Allowed audiences
Εισαγάγετε το audience που πρέπει να υποδεικνύει η OpenAI όταν σας περνάμε ένα token.
Για ChatGPT ή API: Μπορείτε να βάλετε το αναγνωριστικό οργανισμού OpenAI API (org-xxx)
Για API: μπορείτε να βάλετε ένα συγκεκριμένο αναγνωριστικό έργου API για μεγαλύτερη λεπτομέρεια.

Στην ενότητα Attribute mapping
για το google.subject εισαγάγετε assertion.sub

Στην ενότητα Attribute conditions
βάλτε
assertion.sub == "105900137572174660365"
Τώρα θα πρέπει να βλέπετε τα workload identity pool και workload identity provider στη λίστα στη σελίδα https://console.cloud.google.com/iam-admin/workload-identity-pools
Workload identity pool id

Workload identity provider ID

2. Βεβαιωθείτε ότι το KMS είναι ενεργοποιημένο
Μεταβείτε στη διεύθυνση https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview για να ενεργοποιήσετε το KMS. Δεν απαιτείται να δημιουργήσετε το 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 σας για να μεταβείτε στη σελίδα λεπτομερειών του κλειδιού.
Αν δεν το έχετε αυτό, επιστρέψτε στην ενότητα Create a KMS
Κάντε κλικ στην καρτέλα 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
Το YOUR_GCP_PROJECT_NUMBER εδώ είναι το έργο στο οποίο αναγνωρίσατε την ομοσπονδιακή ταυτότητα της OpenAI δημιουργώντας ένα YOUR_GCP_WORKLOAD_IDENTITY_POOL. Μπορεί να είναι, αλλά δεν απαιτείται να είναι, το ίδιο έργο όπου βρίσκεται το KMS σας.
Αν τα έργα διαφέρουν, βεβαιωθείτε ότι το KMS είναι τουλάχιστον ενεργοποιημένο στο άλλο έργο μεταβαίνοντας στη διεύθυνση https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview
Στην ενότητα Assign roles, επιλέξτε τον προσαρμοσμένο ρόλο που δημιουργήσατε στο προηγούμενο βήμα για περιορισμένα δικαιώματα EKM
6. Εφαρμόστε τυχόν πρόσθετους περιορισμούς σύμφωνα με τις δικές σας πρακτικές ασφαλείας
Παραπάνω είναι οι ελάχιστες απαιτούμενες πληροφορίες που χρειάζεται η OpenAI για να ρυθμίσει το EKM. Είστε ελεύθεροι να εφαρμόσετε πρόσθετες πολιτικές κλειδιών ή περιορισμούς σύμφωνα με τις δικές σας εσωτερικές πρακτικές ασφαλείας, αρκεί η OpenAI να μπορεί να καλεί λειτουργίες κρυπτογράφησης και αποκρυπτογράφησης στο KMS σας. Όταν καλέσετε το τελικό σημείο καταχώρισης κλειδιού με την OpenAI που περιγράφεται παρακάτω, θα επικυρώσουμε τη ρύθμισή σας.
Αφού ολοκληρώσετε τα παραπάνω βήματα
ChatGPT Enterprise
Παρακαλούμε επικοινωνήστε με την επαφή σας στην OpenAI και κοινοποιήστε τα εξής:
"workload_identity_project_number": "123456789012",
Ο 12ψήφιος αριθμός έργου GCP όπου καταχωρίσατε το workload identity της OpenAI
"workload_identity_pool_id": "openai-azure",
Το pool που περιέχει τον πάροχο Workload Identity που καταχωρίσατε για την OpenAI
"workload_identity_provider_id": "openai-ekm-service-role",
Ο πάροχος Workload Identity που καταχωρίσατε για την 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
Καταχωρίστε το εξωτερικό κλειδί σας στην OpenAI
Ακολουθήστε τις οδηγίες σε αυτήν την αναφορά API External Keys in the Management API
Πρώτα, καταχωρίστε το εξωτερικό κλειδί σας σε επίπεδο οργανισμού OpenAI, κάτι που θα δημιουργήσει ένα αναγνωριστικό εξωτερικού κλειδιού.
Σε αυτό το βήμα, θα επικυρώσουμε τη ρύθμισή σας στο 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",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <το αναγνωριστικό οργανισμού ή έργου σας>,
"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": "Κάποιο Έργο",
"external_key_id": "extkey_xxxx"
}'