Omówienie
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 > Klucze zarządzane przez klienta, a następnie wybierz Utwórz klucz.
Wybierz algorytm szyfrowania symetrycznego.
Po utworzeniu klucza zanotuj jego ARN. Obsługiwane formaty to m.in.
arn:aws:kms:<region>:<account_number>:key/<uuid>,...:key/mrk-*oraz...:alias/<alias_name>.

2. Utwórz niestandardową politykę ograniczającą dostęp do klucza KMS
Przejdź do IAM > Polityki, a następnie wybierz Utwórz politykę.
W kroku Określ uprawnienia wybierz JSON i wprowadź poniższy kod, aby dodać do polityki uprawnienia do operacji w KMS. Pamiętaj, aby zastąpić YOUR_KMS_ARN identyfikatorem ARN utworzonego klucza.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": "<YOUR_KMS_ARN>"
}
]
}3. Utwórz rolę IAM, którą OpenAI będzie przejmować, i przypisz jej politykę ograniczającą dostęp do Twojego KMS
OpenAI będzie wywoływać AssumeRole z należącego do siebie konta AWS. Ten krok umożliwia podmiotowi AWS należącemu do OpenAI przejęcie roli z ograniczonym dostępem do Twojego KMS.
Przejdź do IAM > Role, a następnie wybierz Utwórz rolę.
W kroku Wybierz zaufany podmiot wybierz Niestandardowa polityka zaufania.

Następnie wprowadź poniższy kod w polu Niestandardowa polityka zaufania, aby zezwolić na dostęp podmiotowi AWS należącemu do OpenAI.
Podmiot AWS należący do OpenAI to:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement.Wskaż, jaką wartość ExternalId OpenAI ma przekazywać podczas wywołania
AssumeRole.W przypadku ChatGPT lub API użyj ID organizacji (org-xxx) powiązanej z Twoją przestrzenią roboczą. Znajdziesz je w ustawieniach organizacji.
W przypadku API możesz użyć ID konkretnego projektu API, aby bardziej szczegółowo określić zakres dostępu.
{
"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>"
]
}
}
}
]
}Następnie w kroku Dodaj uprawnienia wyszukaj nazwę polityki IAM utworzonej w poprzednim kroku. Zaznacz pole wyboru obok nazwy polityki, a następnie wybierz Dalej.

Na koniec w sekcji Nazwij, sprawdź i utwórz nadaj roli dowolną nazwę.
4. Zastosuj wszelkie dodatkowe ograniczenia zgodnie z własnymi praktykami bezpieczeństwa
Powyżej znajduje się minimalny wymagany zestaw informacji, którego OpenAI potrzebuje do skonfigurowania EKM. Możesz stosować dodatkowe zasady kluczy lub ograniczenia 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, sprawdzimy Twoją konfigurację.
Po wykonaniu powyższych kroków
ChatGPT Enterprise
Skontaktuj się z osobą kontaktową po stronie 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 będzie przyjmować 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 dokumentacji API: Klucze zewnętrzne w API do zarządzania.
Najpierw zarejestruj klucz zewnętrzny na poziomie organizacji OpenAI. Spowoduje to wygenerowanie identyfikatora klucza zewnętrznego.
W tym kroku sprawdzimy poprawność wprowadzonych danych oraz to, czy możemy uwierzytelnić się w Twoim KMS.
Nie spowoduje to jeszcze włączenia EKM w Twoim projekcie 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 Config",
"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": "<your org id or project id>"
}'Następnie utwórz projekt OpenAI powiązany z kluczem zewnętrznym. Po wykonaniu tej czynności EKM zostanie aktywowane 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"
}'