Przegląd
Enterprise Key Management (EKM) pozwala szyfrować treści klientów w OpenAI przy użyciu kluczy zarządzanych przez własny zewnętrzny system zarządzania kluczami (KMS), dostępny zarówno dla ChatGPT Enterprise, jak i API.
OpenAI obsługuje szyfrowanie Bring Your Own Key (BYOK) z kontami zewnętrznymi w AWS KMS, Google Cloud (GCP) i Azure Key Vault.
Obecnie wdrożenie EKM jest ograniczone do przestrzeni roboczych Enterprise i Edu z przypisanym przedstawicielem handlowym OpenAI.
Jak działa szyfrowanie EKM w OpenAI
Przepływ wysokiego poziomu
Generujemy Data Encryption Key (DEK) dla Twojego dostawcy chmury.
Twój chmurowy KMS zarządza głównym Key Encryption Key (KEK), przechowywanym w chmurze lub poza nią. Sposób wdrożenia zależy od Ciebie.
Żądamy zaszyfrowania DEK przez Twoją chmurę, aby uzyskać encrypted DEK (eDEK). Jeśli Twój KEK jest przechowywany zewnętrznie, chmura wykonuje jedynie dodatkowy przeskok do zewnętrznego magazynu w kroku, który jest nieprzejrzysty dla OpenAI.
Szyfrowanie
Podczas szyfrowania Twoje dane są szyfrowane przy użyciu DEK, a eDEK jest przechowywany jako metadane pliku.

Odszyfrowywanie
Podczas odszyfrowywania żądamy odszyfrowania eDEK przez Twój chmurowy KMS do postaci DEK, a następnie odszyfrowujemy dane za pomocą DEK.

Kluczowe pojęcia
Data Encryption Key (DEK) — klucz szyfrujący Twoje dane.
Encrypted Data Encryption Key (eDEK) — zaszyfrowany DEK generowany przez Twój KMS
Key Encryption Key (KEK) — zarządzany przez Ciebie klucz główny, który szyfruje DEK -> eDEK i odszyfrowuje eDEK -> DEK. Ten klucz zawsze pozostaje poza systemami OpenAI.
Ogólne wymagania wdrożeniowe
U dostawcy chmury
Utwórz nowy klucz w swoim chmurowym KMS (Azure, AWS lub GCP)
Utwórz niestandardowe, ograniczone zasady z uprawnieniami Encrypt/Decrypt dla KMS
Utwórz zasady zaufania (AWS), tożsamość obciążenia (GCP) lub podmiot usługi (dla Azure) dla OpenAI
Przypisz OpenAI rolę z ograniczonymi zasadami dostępu do Twojego KMS
Na platformach OpenAI
ChatGPT Enterprise
Utwórz testową przestrzeń roboczą ChatGPT typu sandbox.
API
W panelu OpenAI utwórz nowy projekt, w którym będzie stosowane szyfrowanie.
Funkcje specyficzne dla dostawcy
W przypadku AWS OpenAI będzie:
wywoływać AssumeRole z parametrem ExternalID
W przypadku GCP OpenAI będzie:
wywoływać Twój punkt końcowy STS z konta GCP OpenAI
używać tokenu dostępu GCP do wywoływania encrypt/decrypt w Twoim KMS.
W przypadku Azure OpenAI będzie:
żądać tokenu dostępu do magazynu w dzierżawie Azure
używać tego tokenu dostępu do wywoływania encrypt/decrypt w Twoim Key Vault.
Informacje, których potrzebujesz od OpenAI
Uwierzytelnianie
Musisz rozpoznawać federacyjne tokeny tożsamości OpenAI dla AWS i GCP. W przypadku Azure musisz rozpoznawać identyfikator aplikacji OpenAI dla rejestracji jej aplikacji.
Podsumowanie parametrów uwierzytelniania
| Podmiot AWS OpenAI | arn:aws:iam::790389265272:role/EnterpriseKeyManagement |
| Identyfikator konta usługi GCP OpenAI | 105900137572174660365 |
| Identyfikator aplikacji Azure OpenAI | 20a14814-5ab7-4612-a671-1382b412bf93 |
Wymagane informacje podczas wdrożenia w zależności od dostawcy chmury
W przypadku AWS musisz skonfigurować zasady zaufania, które rozpoznają:
podmiot OpenAI (numer konta + rola)
ExternalID będący identyfikatorem projektu OpenAI
W przypadku GCP musisz skonfigurować tożsamość obciążenia, która rozpoznaje:
identyfikator konta usługi OpenAI
grupę odbiorców będącą identyfikatorem projektu OpenAI
W przypadku Azure musisz utworzyć podmiot usługi w swojej dzierżawie Azure dla rejestracji aplikacji OpenAI
Utwórz go dla identyfikatora klienta aplikacji OpenAI: 20a14814-5ab7-4612-a671-1382b412bf9
Możesz to zrobić, wysyłając żądanie do punktu końcowego https://graph.microsoft.com/v1.0/servicePrincipals.
Autoryzacja
Musisz utworzyć zasady, które pozwolą tożsamości OpenAI uzyskać ograniczony dostęp do Twojego KMS.
| AWS | GCP | Azure |
| kms:Decryptkms:Encrypt | cloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncrypt | Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action |
Inne
W Azure dla typu klucza (algorytmu szyfrowania klucza) wybierz RSA, a nie EC.
Informacje, których OpenAI potrzebuje od Ciebie
Postępuj zgodnie z instrukcjami w tym dokumencie, aby zarejestrować swój KMS w OpenAI. Oto podsumowanie parametrów, które musisz podać.
Związane z uwierzytelnianiem
AWS
IAM Role ARN - rola, którą OpenAI ma przejąć (przykład: arn:aws:iam::123456789:role/role-name)
ExternalID - identyfikator organizacji OpenAI
GCP
Numer projektu Workload Identity (przykład: 123456789)
ID puli Workload Identity
ID dostawcy Workload Identity
Dozwolona grupa odbiorców: identyfikator organizacji OpenAI
Azure
Identyfikator dzierżawy
| AWS | GCP | Azure | |
| Związane z uwierzytelnianiem | Identyfikator dzierżawy | ||
| Związane z KMS | KMS ARN - (przykład: arn:aws:kms:REGION:ACCOUNT_NUMBER:key:KEY_UUID) | ID projektu KMS (przykład: adjective-noun-12345)Nazwa pęku kluczy KMSNazwa klucza KMSLokalizacja klucza KMS (przykład: us-east1) | URI magazynu (przykład: https://your-vault-name.vault.azure.net/)Nazwa klucza |
Po zarejestrowaniu swojego KMS w OpenAI kontynuuj postępowanie zgodnie z instrukcjami w dokumencie, aby aktywować konfigurację EKM w projekcie API. Na potrzeby testów utwórz nowy projekt API OpenAI.
Przewodniki wdrożeniowe specyficzne dla dostawców
Aby uzyskać instrukcje krok po kroku, skorzystaj z odpowiednich linków poniżej. Pamiętaj, że koncentrują się one na wymaganiach integracyjnych z OpenAI i nie mają służyć jako kompleksowy przewodnik po całym Twoim środowisku.
Nieobsługiwane funkcje po włączeniu EKM
W tej początkowej wersji poniższe funkcje nie są dostępne, jeśli EKM jest włączone:
Aplikacje z synchronizacją
Funkcje, które nie są ogólnie dostępne (tj. wszystko, co nadal jest w wersji beta/alfa)
