OpenAI
Ta strona została przetłumaczona maszynowo. Wyświetl oryginalny artykuł w języku angielskim.

Instrukcje integracji OpenAI / AWS EKM

Instrukcje krok po kroku dotyczące konfiguracji AWS i aktywacji EKM

Zaktualizowano: 13 days ago

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.

AWS EKM integration flow between OpenAI EKM Service, your STS, your KMS, and your master KEK

Kroki

1. Utwórz nowy klucz KMS

  1. Przejdź do KMS -> Customer managed keys, a następnie kliknij Create Key

  2. Wybierz symetryczny algorytm szyfrowania

  3. Po utworzeniu klucza zanotuj jego ARN. Obsługiwane formaty obejmują arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, lub ...:alias/<alias_name>

    AWS KMS customer managed key details page with key ID and ARN for test-kms

2. Utwórz niestandardową politykę ograniczonego dostępu do klucza KMS

  1. Przejdź do IAM -> Policies, a następnie kliknij Create Policy

  2. 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.

    AWS IAM Create policy page with Specify permissions open and the JSON policy editor selected
    {
        "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.

  1. Przejdź do IAM -> Roles, a następnie kliknij Create Role

  2. W kroku Select trusted entity wybierz Custom trust policy

    AWS IAM Select trusted entity screen with Custom trust policy selected
  3. Wprowadź poniższe informacje w sekcji Custom trust policy, aby zezwolić na dostęp podmiotowi głównemu AWS OpenAI.

    1. Podmiotem głównym jest podmiot główny AWS OpenAI — arn:aws:iam::790389265272:role/EnterpriseKeyManagement

    2. Wskaż, który Externald OpenAI ma przekazywać podczas procesu AssumeRole.

      1. 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

      2. 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>,
                             ]
                        }
                    }
                }
            ]
        }
  4. W kroku Add permissions wyszukaj nazwę polityki IAM utworzonej w poprzednim kroku. Kliknij pole wyboru obok nazwy polityki, a następnie kliknij Next.

    AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected
  5. 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

  1. Najpierw zarejestruj klucz zewnętrzny na poziomie organizacji OpenAI, co spowoduje wygenerowanie identyfikatora klucza zewnętrznego.

  2. W tym kroku zweryfikujemy, czy dane wejściowe są prawidłowe i czy możemy uwierzytelnić się w Twoim KMS.

  3. 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>
    }'
  4. Następnie utwórz projekt OpenAI powiązany z kluczem zewnętrznym. Po tym EKM zostanie aktywowane w Twoim projekcie.

  5. 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"
    }'

Czy ten artykuł był pomocny?