OpenAI
Deze pagina is automatisch vertaald. Bekijk het oorspronkelijke Engelstalige artikel.

OpenAI / AWS EKM-integratie-instructies

Stapsgewijze instructies om AWS in te richten en EKM te activeren

Bijgewerkt: 13 days ago

Overzicht

Met Enterprise Key Management (EKM) kan OpenAI gegevens versleutelen met een hoofdsleutel die jij beheert. Dit document laat zien hoe je je AWS-account instelt om OpenAI beperkte machtigingen op je KMS te geven.

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

Stappen

1. Maak een nieuwe KMS-sleutel

  1. Ga naar KMS -> Customer managed keys en klik daarna op Create Key

  2. Selecteer een symmetrisch versleutelingsalgoritme

  3. Nadat je sleutel is gemaakt, noteer je de ARN. Ondersteunde formaten zijn onder meer arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, of ...:alias/<alias_name>

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

2. Maak een aangepast beleid voor beperkte toegang tot de KMS-sleutel

  1. Ga naar IAM -> Policies en klik daarna op Create Policy

  2. Selecteer in de stap Specify permissions JSON en voer het volgende in om het beleid KMS-toegangsacties te geven. Zorg ervoor dat je YOUR_KMS_ARN vervangt door de ARN van de sleutel die je hebt gemaakt.

    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. Maak een IAM-rol die OpenAI kan aannemen, en koppel die aan het beleid met beperkte toegang tot je KMS

OpenAI roept AssumeRole aan vanuit een AWS-account van OpenAI. In deze stap wordt vastgelegd dat de AWS-principal van OpenAI de beperkte rol mag aannemen voor toegang tot je KMS.

  1. Ga naar IAM -> Roles en klik daarna op Create Role

  2. Selecteer in de stap Select trusted entity Custom trust policy

    AWS IAM Select trusted entity screen with Custom trust policy selected
  3. Voer het volgende in bij de Custom trust policy om toegang toe te staan aan de AWS-principal van OpenAI.

    1. De principal is de AWS-principal van OpenAI: arn:aws:iam::790389265272:role/EnterpriseKeyManagement

    2. Geef aan welke ExternalId OpenAI moet meesturen tijdens het AssumeRole-proces.

      1. Voor ChatGPT of API kun je de organisatie-id (org-xxx) gebruiken die aan je werkruimte is gekoppeld - https://platform.api.openai.org/settings/organization/general

      2. Voor API kun je voor meer granulariteit een specifieke API-project-ID invoeren

        {
            "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. Zoek in de stap Add permissions naar de beleidsnaam van het IAM-beleid dat je in de vorige stap hebt gemaakt. Klik op het selectievakje naast de beleidsnaam en klik daarna op Next.

    AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected
  5. Selecteer in het gedeelte Name, review, and create een willekeurige rolnaam.

4. Pas eventuele extra beperkingen toe in lijn met je eigen beveiligingspraktijken

Hierboven staat de minimaal vereiste informatie die OpenAI nodig heeft om EKM in te stellen. Je kunt extra sleutelbeleidsregels of beperkingen toepassen in lijn met je eigen interne beveiligingspraktijken, zolang OpenAI encrypt- en decrypt-bewerkingen op je KMS kan aanroepen. Wanneer je het hieronder beschreven endpoint voor sleutelregistratie bij OpenAI aanroept, valideren we je configuratie.

Na het voltooien van de bovenstaande stappen

ChatGPT Enterprise

Neem contact op met je OpenAI-contactpersoon en deel het volgende:

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

    • De Role ARN die OpenAI in je cloud zal aannemen

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

    • De Key Management System ARN voor de hoofdsleutel die je beheert

We schakelen EKM in voor je ChatGPT-organisatie/werkruimte.

API

Registreer je externe sleutel bij OpenAI

Volg de instructies in deze API-referentie Externe sleutels in de Management API

  1. Registreer eerst je externe sleutel op het niveau van de OpenAI-organisatie; hierdoor wordt een externe sleutel-id gegenereerd.

  2. In deze stap valideren we dat je invoer geldig is en dat we ons kunnen authenticeren bij je KMS.

  3. Hiermee wordt EKM nog niet toegevoegd aan je OpenAI-project.

    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-configuratie",
      "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": <uw organisatie-id of project-id>
    }'
  4. Maak vervolgens een OpenAI-project dat is gekoppeld aan de externe sleutel. Daarna is EKM geactiveerd voor je project.

  5. De response body van deze API-aanroep geeft je de project-ID (proj_xxx)

    curl -X POST \
    -H "Content-type: application/json" \
    -H "Authorization: Bearer $TOKEN" \
    "https://api.openai.com/v1/organization/projects" \
    -d '{
       "name": "Een project",

       "external_key_id": "extkey_xxxx"
    }'

Was dit artikel nuttig?