Omówienie
Enterprise Key Management (EKM) umożliwia OpenAI szyfrowanie danych przy użyciu klucza głównego, nad którym masz kontrolę. Aby OpenAI mogło wywoływać operacje szyfrowania/odszyfrowywania w Twoim Key Vault, musimy uzyskać dostęp. Ten dokument pokazuje, jak skonfigurować konto Azure, aby OpenAI mogło przyjąć rolę z uprawnieniami do Key Vault.

Kroki
1. Utwórz jednostkę usługi dla OpenAI na swoim koncie
Uzyskaj token dostępu
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_IDUtwórz jednostkę usługi — appId w poniższym żądaniu to identyfikator klienta aplikacji OpenAI. Spowoduje to utworzenie jednostki z nazwą wyświetlaną „EKM - OpenAI Azure” — zapamiętaj ją na potrzeby późniejszych kroków.
Instrukcje integracji OpenAI / Azure EKM — tworzenie jednostki usługi
curl -X POST https://graph.microsoft.com/v1.0/servicePrincipals \
-H "Authorization: Bearer $TOKEN_FROM_ABOVE" \
-H "Content-Type: application/json" \
–d '{"appId": "20a14814-5ab7-4612-a671-1382b412bf93"}'2. Utwórz rolę niestandardową do ograniczonego dostępu do KMS
Przejdź do Subscriptions -> Access Control (IAM)
Z menu rozwijanego + Add wybierz Add custom role
Przejdź do karty JSON, kliknij Edit i dodaj następujące elementy:
Dowolna nazwa roli — zapamiętaj wybraną nazwę
Następujące uprawnienia w dataActions:
Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/actionMicrosoft.KeyVault/vaults/keys/read

3. Utwórz Key Vault + klucz
Jeśli jeszcze go nie masz, utwórz nowy Key Vault w tej samej subskrypcji, w której właśnie utworzono rolę niestandardową.
W tym Key Vault utwórz nowy klucz:
Przejdź do Key Vault -> Objects -> Keys, a następnie kliknij Generate/Import
W sekcji Options wybierz Generate

Wybierz RSA jako algorytm szyfrowania.
Możesz wybrać dowolny rozmiar klucza RSA
Podaj nazwę klucza w następującym formacie:
<org-xxx>--<any_name>, gdzieorg-xxxto identyfikator organizacji OpenAI, który znajdziesz pod adresem https://platform.openai.com/settings/organization/general

Jeśli nie możesz wyświetlić ani utworzyć klucza, upewnij się, że masz rolę Key Vault Administrator. Jest to wymagane nawet wtedy, gdy masz rolę Owner. Aby przypisać rolę:
Przejdź do Key Vault -> Access Control (IAM)
Kliknij Add -> Add role assignment

4. Utwórz przypisanie roli dla jednostki usługi OpenAI + nowego niestandardowego KMS + nowego klucza
Przejdź do Key Vault -> Objects -> Keys, a następnie kliknij wiersz utworzonego klucza
Przejdź do Access control (IAM) dla klucza, który został właśnie kliknięty (nie magazynu kluczy).
Z menu rozwijanego + Add wybierz Add role assignment

Na karcie Role wybierz nazwę właśnie utworzonej roli niestandardowej.

Na karcie Members:
Kliknij „+ Select members”
Wpisz „ekm -” w pasku wyszukiwania, a następnie powinna wczytać się jednostka usługi OpenAI utworzona w kroku 1

5. Zastosuj dodatkowe ograniczenia zgodne z własnymi praktykami bezpieczeństwa
Powyżej podano minimalne informacje wymagane przez OpenAI do skonfigurowania EKM. Możesz swobodnie stosować dodatkowe zasady lub ograniczenia dotyczące kluczy zgodnie z własnymi wewnętrznymi praktykami bezpieczeństwa, o ile OpenAI może wywoływać operacje szyfrowania i odszyfrowywania w Twoim KMS. Gdy wywołasz opisany poniżej punkt końcowy rejestracji klucza w OpenAI, zweryfikujemy Twoją konfigurację.
Po wykonaniu powyższych kroków
ChatGPT Enterprise
Skontaktuj się ze swoim przedstawicielem OpenAI i przekaż następujące informacje:
"tenant_id": "<YOUR_AZURE_TENANT_UUID>"
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
"key_name": "<YOUR_KEY_NAME>"
Nazwa zarządzanego przez Ciebie klucza głównego Azure Key Vault
Nazwa klucza musi mieć format <org-xxx>--<any_name>, gdzie org-xxx to identyfikator organizacji OpenAI, który znajdziesz pod adresem https://platform.openai.com/settings/organization/general
Włączymy EKM dla Twojej organizacji/przestrzeni roboczej ChatGPT.
API
Zarejestruj swój klucz zewnętrzny w OpenAI
Postępuj zgodnie z instrukcjami w tej dokumentacji API: Klucze zewnętrzne w Management API
Najpierw zarejestruj klucz zewnętrzny na poziomie organizacji OpenAI, co wygeneruje identyfikator klucza zewnętrznego w formacie extkey_xxx
W tym kroku sprawdzimy, czy Twoje dane wejściowe są prawidłowe i czy możemy uwierzytelnić się w Twoim KMS.
To jeszcze nie doda EKM do Twojego projektu OpenAI.
# This generates an external key ID of the form extkey_xxx
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "azure",
"name": "<ANY_FRIENDLY_NAME>",
"tenant_id": "<YOUR_AZURE_TENANT_UUID>",
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/",
"key_name": "<YOUR_KEY_NAME>"
}'Następnie utwórz projekt OpenAI powiązany z kluczem zewnętrznym. Po tym EKM zostanie aktywowany w Twoim projekcie.
Treść odpowiedzi tego wywołania API poda Ci identyfikator projektu (proj_xxx)
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"
}'