Przegląd
Enterprise Key Management (EKM) umożliwia OpenAI szyfrowanie danych przy użyciu klucza głównego, który kontrolujesz. Ten dokument pokazuje, jak skonfigurować konto AWS, aby przyznać OpenAI ograniczone uprawnienia do Twojego KMS.

Kroki
1. Utwórz nowy klucz KMS
Przejdź do KMS -> Customer managed keys, a następnie kliknij Create Key
Wybierz symetryczny algorytm szyfrowania
Po utworzeniu klucza zanotuj jego ARN. Obsługiwane formaty obejmują arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, lub ...:alias/<alias_name>

2. Utwórz niestandardową politykę ograniczonego dostępu do klucza KMS
Przejdź do IAM -> Policies, a następnie kliknij Create Policy
W kroku Specify permissions wybierz JSON i wprowadź poniższe ustawienia, aby nadać polityce działania dostępu do KMS. Pamiętaj, aby zastąpić YOUR_KMS_ARN wartością ARN utworzonego klucza.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": <TWÓJ_KMS_ARN>
}
]
}
3. Utwórz rolę IAM, którą OpenAI będzie mogło przyjąć, i przypisz ją do polityki z ograniczonym dostępem do Twojego KMS
OpenAI będzie wywoływać AssumeRole z konta AWS należącego do OpenAI. Ten krok uwzględnia, że podmiot główny AWS OpenAI może przyjąć ograniczoną rolę w celu uzyskania dostępu do Twojego KMS.
Przejdź do IAM -> Roles, a następnie kliknij Create Role
W kroku Select trusted entity wybierz Custom trust policy

Wprowadź poniższe informacje w sekcji Custom trust policy, aby zezwolić na dostęp podmiotowi głównemu AWS OpenAI.
Podmiotem głównym jest podmiot główny AWS OpenAI — arn:aws:iam::790389265272:role/EnterpriseKeyManagement
Wskaż, który Externald OpenAI ma przekazywać podczas procesu AssumeRole.
W przypadku ChatGPT lub API możesz użyć identyfikatora organizacji (org-xxx) powiązanego z Twoją przestrzenią roboczą — https://platform.api.openai.org/settings/organization/general
W przypadku interfejsu API możesz podać konkretny identyfikator projektu API, aby uzyskać większą szczegółowość
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::790389265272:role/EnterpriseKeyManagement"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": [
<TWÓJ_IDENTYFIKATOR_ORGANIZACJI_OPENAI>,
]
}
}
}
]
}
W kroku Add permissions wyszukaj nazwę polityki IAM utworzonej w poprzednim kroku. Kliknij pole wyboru obok nazwy polityki, a następnie kliknij Next.

W sekcji Name, review, and create wybierz dowolną nazwę roli.
4. Zastosuj wszelkie dodatkowe ograniczenia zgodnie z własnymi praktykami bezpieczeństwa
Powyżej podano minimalne wymagane informacje, których OpenAI potrzebuje do skonfigurowania EKM. Możesz zastosować dodatkowe polityki kluczy lub ograniczenia zgodnie z własnymi wewnętrznymi praktykami bezpieczeństwa, o ile OpenAI będzie mogło wywoływać operacje szyfrowania i deszyfrowania 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ę z osobą kontaktową w OpenAI i udostępnij następujące informacje:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
ARN roli, którą OpenAI przyjmie w Twojej chmurze
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"
ARN systemu zarządzania kluczami dla zarządzanego przez Ciebie klucza głównego
Włączymy EKM dla Twojej organizacji/przestrzeni roboczej ChatGPT.
API
Zarejestruj klucz zewnętrzny w OpenAI
Postępuj zgodnie z instrukcjami w tej dokumentacji API Klucze zewnętrzne w interfejsie Management API
Najpierw zarejestruj klucz zewnętrzny na poziomie organizacji OpenAI, co spowoduje wygenerowanie identyfikatora klucza zewnętrznego.
W tym kroku zweryfikujemy, czy dane wejściowe są prawidłowe i czy możemy uwierzytelnić się w Twoim KMS.
To nie doda jeszcze EKM do Twojego projektu 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": "Konfiguracja 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": <identyfikator organizacji lub identyfikator projektu>
}'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 poda 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": "Jakiś projekt",
"external_key_id": "extkey_xxxx"
}'
