OpenAI
Această pagină a fost tradusă automat. Vezi articolul original în limba engleză.

Instrucțiuni de integrare OpenAI / AWS EKM

Instrucțiuni pas cu pas pentru configurarea AWS și activarea EKM

Actualizat: 4 days ago

Prezentare generală

Enterprise Key Management (EKM) permite OpenAI să cripteze datele folosind o cheie principală pe care o controlați. Acest document arată cum să vă configurați contul AWS pentru a acorda OpenAI permisiuni limitate pe KMS-ul dvs.

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

Pași

1. Creați o cheie KMS nouă

  1. Accesați KMS -> Customer managed keys, apoi faceți clic pe Create Key

  2. Selectați un algoritm de criptare simetric

  3. După ce cheia este creată, notați ARN-ul ei. Formatele acceptate includ arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, sau ...:alias/<alias_name>

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

2. Creați o politică personalizată pentru acces limitat la cheia KMS

  1. Accesați IAM -> Policies, apoi faceți clic pe Create Policy

  2. La pasul Specify permissions, selectați JSON și introduceți următoarele pentru a acorda politicii acțiuni de acces KMS. Asigurați-vă că înlocuiți YOUR_KMS_ARN cu ARN-ul cheii pe care ați creat-o.

    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. Creați un rol IAM pe care OpenAI să și-l poată asuma și atribuiți-l politicii cu acces limitat la KMS-ul dvs.

OpenAI va apela AssumeRole dintr-un cont AWS deținut de OpenAI. Acest pas recunoaște că principalul AWS al OpenAI poate asuma rolul limitat pentru accesarea KMS-ului dvs.

  1. Accesați IAM -> Roles, apoi faceți clic pe Create Role

  2. La pasul Select trusted entity, selectați Custom trust policy

    AWS IAM Select trusted entity screen with Custom trust policy selected
  3. Introduceți următoarele în Custom trust policy pentru a permite accesul principalului AWS al OpenAI.

    1. Principalul este principalul AWS al OpenAI - arn:aws:iam::790389265272:role/EnterpriseKeyManagement

    2. Indicați ce Externald ar trebui să transmită OpenAI în timpul procesului AssumeRole.

      1. Pentru ChatGPT sau API, puteți folosi id-ul organizației (org-xxx) asociat cu spațiul dvs. de lucru - https://platform.api.openai.org/settings/organization/general

      2. Pentru API, puteți introduce un ID de proiect API specific pentru mai multă granularitate

        {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Principal": {
                        "AWS": "arn:aws:iam::790389265272:role/EnterpriseKeyManagement"
                    },
                    "Action": "sts:AssumeRole",
                    "Condition": {
                        "StringEquals": {
                            "sts:ExternalId": [
                                 <ID_UL_ORGANIZAȚIEI_DVS_OPENAI>,
                             ]
                        }
                    }
                }
            ]
        }
  4. La pasul Add permissions, căutați numele politicii IAM pe care ați creat-o la pasul anterior. Faceți clic pe caseta de selectare de lângă numele politicii, apoi faceți clic pe Next.

    AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected
  5. În secțiunea Name, review, and create, selectați orice nume pentru rol.

4. Aplicați orice restricții suplimentare în conformitate cu propriile practici de securitate

Mai sus sunt informațiile minime necesare de care OpenAI are nevoie pentru a configura EKM. Sunteți liber să aplicați politici sau restricții suplimentare pentru chei, în conformitate cu propriile practici interne de securitate, atât timp cât OpenAI poate apela operațiunile de criptare și decriptare pe KMS-ul dvs. Când apelați punctul final de înregistrare a cheii cu OpenAI descris mai jos, vă vom valida configurarea.

După finalizarea pașilor de mai sus

ChatGPT Enterprise

Vă rugăm să luați legătura cu persoana dvs. de contact de la OpenAI și să transmiteți următoarele:

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

    • ARN-ul rolului pe care OpenAI îl va asuma în cloudul dvs.

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

    • ARN-ul Key Management System pentru cheia principală pe care o gestionați

Vom activa EKM pentru organizația/spațiul dvs. de lucru ChatGPT.

API

Înregistrați cheia externă la OpenAI

Urmați instrucțiunile din această referință API Chei externe în Management API

  1. Mai întâi, înregistrați cheia externă la nivelul organizației OpenAI, ceea ce va genera un ID de cheie externă.

  2. La acest pas, vom valida că datele introduse sunt valide și că ne putem autentifica la KMS-ul dvs.

  3. Acest lucru nu va adăuga încă EKM la proiectul dvs. 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": "Config 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": <id-ul organizației sau id-ul proiectului>
    }'
  4. Apoi, creați un proiect OpenAI asociat cu cheia externă. După aceasta, EKM este activat pentru proiectul dvs.

  5. Corpul răspunsului acestui apel API vă va oferi ID-ul proiectului (proj_xxx)

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

       "external_key_id": "extkey_xxxx"
    }'

A fost util acest articol?