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

Kroki
1. Utwórz nazwę główną usługi dla OpenAI na swoim koncie
Uzyskaj token dostępu
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID2. Utwórz nazwę główną usługi — appId w poniższym żądaniu to identyfikator klienta aplikacji OpenAI. Spowoduje to utworzenie nazwy głównej o nazwie wyświetlanej „EKM - OpenAI Azure” — zapamiętaj ją do kolejnych kroków.
Instrukcja integracji OpenAI / Azure EKM - Utwórz nazwę główną 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ą dla ograniczonego dostępu do KMS
Przejdź do Subscriptions -> Access Control (IAM)
W menu rozwijanym + Add wybierz Add custom role
Przejdź do karty JSON, kliknij Edit i dodaj poniższe elementy
Dowolna nazwa roli — zapamiętaj wybraną nazwę
Następujące uprawnienia w dataActions
Microsoft.KeyVault/vaults/keys/encrypt/action
Microsoft.KeyVault/vaults/keys/decrypt/action
Microsoft.KeyVault/vaults/keys/read

3. Utwórz Key Vault + Key
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>, gdzie org-xxx to 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 ona potrzebna nawet wtedy, gdy masz rolę Owner. Aby przypisać tę rolę:
Przejdź do Key Vault->Access Control (IAM)
Kliknij Add-> Add role assignment

4. Utwórz przypisanie roli dla nazwy głównej usługi OpenAI + nowego niestandardowego KMS + nowego klucza
Przejdź do Key Vault -> Objects -> Keys , a następnie kliknij wiersz klucza, który utworzyłeś
Przejdź do Access control (IAM) dla klucza, który właśnie kliknięto (nie dla magazynu kluczy).
W menu rozwijanym + Add wybierz Add role assignment

Na karcie Role wybierz nazwę utworzonej przed chwilą roli niestandardowej.

Na karcie Members:
Kliknij „+ Select members”
Wpisz „ekm -” w pasku wyszukiwania, a następnie powinna się załadować nazwa główna usługi OpenAI utworzona w kroku 1

5. Zastosuj wszelkie dodatkowe ograniczenia zgodnie z własnymi praktykami bezpieczeństwa
Powyżej podano minimalny wymagany zakres informacji potrzebnych OpenAI do skonfigurowania EKM. Możesz zastosować dodatkowe zasady dotyczące kluczy lub ograniczenia zgodnie z własnymi wewnętrznymi praktykami bezpieczeństwa, o ile OpenAI będzie w stanie wywoływać operacje szyfrowania i deszyfrowania w Twoim KMS. Gdy wywołasz punkt końcowy rejestracji klucza w OpenAI opisany poniżej, zweryfikujemy Twoją konfigurację.
Po wykonaniu powyższych kroków
ChatGPT Enterprise
Skontaktuj się ze swoim opiekunem w OpenAI i przekaż następujące informacje:
"tenant_id": "<YOUR_AZURE_TENANT_UUID>"
Twój identyfikator UUID dzierżawy Azure
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
URI magazynu Azure zawierającego zarządzany przez Ciebie klucz główny
"key_name": "<YOUR_KEY_NAME>"
Nazwa zarządzanego przez Ciebie klucza głównego Azure Key Vault
Nazwa klucza musi mieć postać <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 swój klucz zewnętrzny na poziomie organizacji OpenAI, co wygeneruje identyfikator klucza zewnętrznego w postaci extkey_xxx
W tym kroku zweryfikujemy, czy podane dane wejściowe są prawidłowe i czy możemy uwierzytelnić się w Twoim KMS.
To jeszcze nie doda EKM do Twojego projektu OpenAI.
# To wygeneruje identyfikator klucza zewnętrznego w postaci 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 aktywowane w Twoim projekcie.
Treść odpowiedzi tego wywołania API zwróci identyfikator projektu (proj_xxx)
Instrukcja integracji OpenAI / Azure EKM - Utwórz projekt
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"
}'