OpenAI

Istruzioni per l'integrazione OpenAI / AWS EKM

Istruzioni passo dopo passo per il provisioning di AWS e l'attivazione di EKM

Aggiornato: 13 days ago

Panoramica

Enterprise Key Management (EKM) consente a OpenAI di crittografare i dati utilizzando una chiave principale controllata da te. Questo documento mostra come configurare il tuo account AWS per concedere a OpenAI autorizzazioni limitate sul tuo KMS.

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

Passaggi

1. Crea una nuova chiave KMS

  1. Vai su KMS -> Chiavi gestite dal cliente, quindi fai clic su Crea chiave

  2. Seleziona un algoritmo di crittografia simmetrica

  3. Dopo che la chiave è stata creata, annota il relativo ARN. I formati supportati includono arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, oppure ...:alias/<alias_name>

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

2. Crea una policy personalizzata per l'accesso limitato alla chiave KMS

  1. Vai su IAM -> Policy, quindi fai clic su Crea policy

  2. Nel passaggio Specifica autorizzazioni, seleziona JSON e immetti quanto segue per concedere alla policy le azioni di accesso KMS. Assicurati di sostituire YOUR_KMS_ARN con l'ARN della chiave che hai creato.

    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 un ruolo IAM che OpenAI possa assumere e assegnalo alla policy con accesso limitato al tuo KMS

OpenAI effettuerà una chiamata ad AssumeRole da un account AWS di proprietà di OpenAI. Questo passaggio riconosce che il principal AWS di OpenAI può assumere il ruolo limitato per accedere al tuo KMS.

  1. Vai su IAM -> Ruoli, quindi fai clic su Crea ruolo

  2. Nel passaggio Seleziona entità attendibile, seleziona Policy di attendibilità personalizzata

    AWS IAM Select trusted entity screen with Custom trust policy selected
  3. Inserisci quanto segue nella policy di attendibilità personalizzata per consentire l'accesso al principal AWS di OpenAI.

    1. Il principal è il principal AWS di OpenAI è - arn:aws:iam::790389265272:role/EnterpriseKeyManagement

    2. Indica quale Externald OpenAI deve fornire durante il processo di assunzione del ruolo (AssumeRole).

      1. Per ChatGPT o l'API, puoi usare l'ID organizzazione (org-xxx) associato alla tua area di lavoro - https://platform.api.openai.org/settings/organization/general

      2. Per l'API, puoi inserire un ID progetto API specifico per una maggiore granularità

        {
            "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. Nel passaggio Aggiungi autorizzazioni, cerca il nome della policy IAM che hai creato nel passaggio precedente. Seleziona la casella di controllo accanto al nome della policy, quindi fai clic su Avanti.

    AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected
  5. Nella sezione Nome, rivedi e crea, seleziona un nome di ruolo qualsiasi.

4. Applica eventuali ulteriori restrizioni in linea con le tue pratiche di sicurezza.

Di seguito trovi le informazioni minime richieste di cui OpenAI ha bisogno per configurare EKM. Puoi applicare ulteriori policy o restrizioni relative alle chiavi in linea con le tue pratiche di sicurezza interne, purché OpenAI sia in grado di chiamare le operazioni di crittografia e decrittografia sul tuo KMS. Quando chiami, con OpenAI, l'endpoint di registrazione della chiave descritto di seguito, verificheremo la tua configurazione.

Dopo aver completato i passaggi sopra indicati

ChatGPT Enterprise

Contatta il tuo referente OpenAI e condividi le seguenti informazioni:

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

    • Il ruolo ARN che OpenAI assumerà nel tuo cloud

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

    • L'ARN del sistema di gestione delle chiavi per la chiave principale che gestisci

Attiveremo EKM per la tua organizzazione o area di lavoro ChatGPT.

API

Registra la tua chiave esterna con OpenAI

Segui le istruzioni in questa guida API Chiavi esterne nell'API di gestione

  1. Per prima cosa, registra la tua chiave esterna a livello di organizzazione OpenAI, che genererà un ID chiave esterna.

  2. In questo passaggio, verificheremo che i dati immessi siano validi e che sia possibile autenticarci al tuo KMS.

  3. Questo non aggiungerà ancora EKM al tuo progetto 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>
    }'
  4. Quindi, crea un progetto OpenAI associato alla chiave esterna. Dopo questa operazione, EKM viene attivato sul tuo progetto.

  5. Il corpo della risposta di questa chiamata API ti restituirà l'ID progetto (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"
    }'

Questo articolo è stato utile?