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

Βήματα
1. Δημιουργήστε ένα νέο κλειδί KMS
Μεταβείτε στο KMS -> Customer managed keys, και μετά κάντε κλικ στο Create Key
Επιλέξτε έναν αλγόριθμο συμμετρικής κρυπτογράφησης
Αφού δημιουργηθεί το κλειδί σας, σημειώστε το ARN του. Οι υποστηριζόμενες μορφές περιλαμβάνουν arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, ή ...:alias/<alias_name>

2. Δημιουργήστε μια προσαρμοσμένη πολιτική για περιορισμένη πρόσβαση στο κλειδί KMS
Μεταβείτε στο IAM -> Policies, και μετά κάντε κλικ στο Create Policy
Στο βήμα Specify permissions, επιλέξτε JSON και εισαγάγετε τα παρακάτω ώστε να δώσετε στην πολιτική ενέργειες πρόσβασης KMS. Βεβαιωθείτε ότι αντικαθιστάτε το YOUR_KMS_ARN με το ARN του κλειδιού που δημιουργήσατε.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": <YOUR_KMS_ARN>
}
]
}
3. Δημιουργήστε έναν IAM Role που θα αναλαμβάνει η OpenAI και αντιστοιχίστε τον στην πολιτική με περιορισμένη πρόσβαση στο KMS σας
Η OpenAI θα καλεί το AssumeRole από έναν λογαριασμό AWS που ανήκει στην OpenAI. Αυτό το βήμα αναγνωρίζει ότι ο κύριος AWS της OpenAI μπορεί να αναλάβει τον περιορισμένο ρόλο για πρόσβαση στο KMS σας.
Μεταβείτε στο IAM -> Roles και μετά κάντε κλικ στο Create Role
Στο βήμα Select trusted entity, επιλέξτε Custom trust policy

Εισαγάγετε τα παρακάτω στο Custom trust policy για να επιτρέψετε πρόσβαση στον AWS principal της OpenAI.
Ο principal είναι ο AWS principal της OpenAI - arn:aws:iam::790389265272:role/EnterpriseKeyManagement
Υποδείξτε ποιο Externald θα πρέπει να περνά η OpenAI κατά τη διαδικασία AssumeRole.
Για ChatGPT ή API, μπορείτε να χρησιμοποιήσετε το organization id (org-xxx) που σχετίζεται με τον χώρο εργασίας σας - https://platform.api.openai.org/settings/organization/general
Για API, μπορείτε να εισαγάγετε ένα συγκεκριμένο API project ID για μεγαλύτερη λεπτομέρεια
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::790389265272:role/EnterpriseKeyManagement"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": [
<YOUR_OPENAI_ORGANIZATION_ID>,
]
}
}
}
]
}
Στο βήμα Add permissions, αναζητήστε το όνομα πολιτικής της πολιτικής IAM που δημιουργήσατε στο προηγούμενο βήμα. Κάντε κλικ στο checkbox δίπλα στο όνομα της πολιτικής και μετά κάντε κλικ στο Next.

Στην ενότητα Name, review, and create, επιλέξτε οποιοδήποτε όνομα ρόλου.
4. Εφαρμόστε τυχόν πρόσθετους περιορισμούς σύμφωνα με τις δικές σας πρακτικές ασφαλείας
Τα παραπάνω είναι οι ελάχιστες απαιτούμενες πληροφορίες που χρειάζεται η OpenAI για να ρυθμίσει το EKM. Είστε ελεύθεροι να εφαρμόσετε πρόσθετες πολιτικές κλειδιών ή περιορισμούς σύμφωνα με τις δικές σας εσωτερικές πρακτικές ασφαλείας, αρκεί η OpenAI να μπορεί να καλεί λειτουργίες κρυπτογράφησης και αποκρυπτογράφησης στο KMS σας. Όταν καλέσετε το τελικό σημείο καταχώρισης κλειδιού με την OpenAI που περιγράφεται παρακάτω, θα επικυρώσουμε τη ρύθμισή σας.
Αφού ολοκληρώσετε τα παραπάνω βήματα
ChatGPT Enterprise
Παρακαλούμε επικοινωνήστε με την επαφή σας στην OpenAI και κοινοποιήστε τα εξής:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
Το Role ARN που θα αναλάβει η OpenAI στο cloud σας
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"
Το ARN του Key Management System για το κύριο κλειδί που διαχειρίζεστε
Θα ενεργοποιήσουμε το EKM για τον οργανισμό/χώρο εργασίας ChatGPT σας.
API
Καταχωρίστε το εξωτερικό κλειδί σας στην OpenAI
Ακολουθήστε τις οδηγίες σε αυτή την αναφορά API External Keys in the Management API
Πρώτα, καταχωρίστε το εξωτερικό κλειδί σας σε επίπεδο οργανισμού OpenAI, κάτι που θα δημιουργήσει ένα αναγνωριστικό εξωτερικού κλειδιού.
Σε αυτό το βήμα, θα επικυρώσουμε ότι τα δεδομένα που εισαγάγατε είναι έγκυρα και ότι μπορούμε να ταυτοποιηθούμε στο KMS σας.
Αυτό δεν θα προσθέσει ακόμη EKM στο project OpenAI σας.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "aws",
"name": "Ρύθμιση AWS EKM",
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>",
"external_id": <το org id ή το project id σας>
}'Στη συνέχεια, δημιουργήστε ένα project OpenAI που σχετίζεται με το εξωτερικό κλειδί. Μετά από αυτό, το EKM ενεργοποιείται στο project σας.
Το σώμα απόκρισης αυτής της κλήσης API θα σας δώσει το αναγνωριστικό project (proj_xxx)
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Κάποιο Project",
"external_key_id": "extkey_xxxx"
}'
