OpenAI
Тази страница е машинно преведена. Вижте оригиналната статия на английски език.

Инструкции за интеграция на OpenAI / AWS EKM

Инструкции стъпка по стъпка за настройка на AWS и активиране на EKM

Актуализирано: 7 minutes ago

Общ преглед

Enterprise Key Management (EKM) позволява на OpenAI да шифрова данни с помощта на главен ключ, който контролирате вие. Този документ показва как да настроите AWS акаунта си, за да дадете на OpenAI ограничени разрешения за вашия KMS.

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

Стъпки

1. Създайте нов KMS ключ

  1. Отидете на KMS -> Customer managed keys, след което щракнете върху Create Key

  2. Изберете алгоритъм за симетрично шифроване

  3. След като ключът ви бъде създаден, запишете неговия ARN. Поддържаните формати включват arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, или ...:alias/<alias_name>

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

2. Създайте персонализирана политика за ограничен достъп до KMS ключа

  1. Отидете на IAM -> Policies, след което щракнете върху Create Policy

  2. В стъпката Specify permissions изберете JSON и въведете следното, за да дадете на политиката действия за достъп до KMS. Уверете се, че сте заменили YOUR_KMS_ARN с ARN на ключа, който създадохте.

    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": <YOUR_KMS_ARN>
            }
        ]
    }

3. Създайте IAM роля, която OpenAI да поема, и я свържете с политиката с ограничен достъп до вашия KMS

OpenAI ще извиква AssumeRole от AWS акаунт, притежаван от OpenAI. Тази стъпка указва, че AWS principal на OpenAI може да поеме ограничената роля за достъп до вашия KMS.

  1. Отидете на IAM -> Roles, след което щракнете върху Create Role

  2. В стъпката Select trusted entity изберете Custom trust policy

    AWS IAM Select trusted entity screen with Custom trust policy selected
  3. Въведете следното в Custom trust policy, за да разрешите достъп на AWS principal на OpenAI.

    1. Principal е AWS principal на OpenAI - arn:aws:iam::790389265272:role/EnterpriseKeyManagement

    2. Посочете кой Externald OpenAI трябва да подаде по време на процеса AssumeRole.

      1. За ChatGPT или API можете да използвате organization id (org-xxx), свързан с вашето работно пространство - https://platform.api.openai.org/settings/organization/general

      2. За API можете да въведете конкретен API project ID за по-голяма детайлност

        {
            "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>,
                             ]
                        }
                    }
                }
            ]
        }
  4. В стъпката Add permissions потърсете името на IAM политиката, която създадохте в предишната стъпка. Щракнете върху checkbox до името на политиката, след което щракнете Next.

    AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected
  5. В секцията Name, review, and create изберете произволно име за ролята.

4. Приложете допълнителни ограничения според собствените си практики за сигурност

По-горе е минималната необходима информация, от която OpenAI се нуждае, за да настрои EKM. Можете свободно да приложите допълнителни политики за ключове или ограничения според собствените си вътрешни практики за сигурност, стига OpenAI да може да извиква операциите за шифроване и дешифроване на вашия KMS. Когато извикате крайната точка за регистриране на ключ с OpenAI, описана по-долу, ние ще валидираме вашата настройка.

След изпълнение на горните стъпки

ChatGPT Enterprise

Моля, свържете се с вашия контакт в OpenAI и споделете следното:

  • "role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",

    • Role ARN, която OpenAI ще поеме във вашия облак

  • "kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"

    • ARN на системата за управление на ключове за главния ключ, който управлявате

Ще активираме EKM за вашата организация/работно пространство в ChatGPT.

API

Регистрирайте външния си ключ в OpenAI

Следвайте инструкциите в тази API справка Външни ключове в Management API

  1. Първо регистрирайте външния си ключ на ниво организация в OpenAI, което ще генерира идентификатор на външен ключ.

  2. В тази стъпка ще валидираме, че въведените от вас данни са валидни и че можем да се удостоверим пред вашия KMS.

  3. Това все още няма да добави EKM към вашия 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 конфигурация",
      "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>
    }'
  4. След това създайте OpenAI проект, свързан с външния ключ. След това EKM се активира за вашия проект.

  5. Тялото на отговора от това API извикване ще ви даде ID на проекта (proj_xxx)

    curl -X POST \
    -H "Content-type: application/json" \
    -H "Authorization: Bearer $TOKEN" \
    "https://api.openai.com/v1/organization/projects" \
    -d '{
       "name": "Някакъв проект",

       "external_key_id": "extkey_xxxx"
    }'

Беше ли Ви полезна тази статия?