OpenAI

Instruções de integração da OpenAI com AWS EKM

Instruções passo a passo para provisionar a AWS e ativar o EKM

Atualizado: 2 days ago

Visão geral

O Enterprise Key Management (EKM) permite que a OpenAI criptografe dados usando uma chave mestra sob seu controle. Este documento descreve como configurar sua conta da AWS para conceder à OpenAI acesso limitado ao AWS KMS.

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

Etapas

1. Crie uma nova chave do KMS

  1. Acesse KMS -> Chaves gerenciadas pelo cliente e clique em Criar chave.

  2. Selecione um algoritmo de criptografia simétrica.

  3. Após a criação da sua chave, anote o seu ARN. Os formatos suportados incluem arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, ou ...:alias/<alias_name>.

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

2. Crie uma política personalizada com acesso limitado à chave do KMS

  1. Acesse IAM -> Políticas e clique em Criar política.

  2. Na etapa Especificar permissões, selecione JSON e insira a política para conceder ações de acesso ao KMS. Substitua YOUR_KMS_ARN pelo ARN da chave criada.

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. Crie uma função do IAM para a OpenAI assumir e atribuir a ela a política com acesso limitado ao KMS

A OpenAI chamará AssumeRole a partir de uma conta da AWS pertencente à OpenAI. Esta etapa permite que a entidade principal da AWS da OpenAI assuma a função limitada de acessar seu KMS.

  1. Acesse IAM -> Funções e clique em Criar função.

  2. Na etapa Selecionar entidade confiável , selecione Política de confiança personalizada.

AWS IAM Select trusted entity screen with Custom trust policy selected

Em seguida, insira o seguinte na política de confiança personalizada para permitir o acesso à entidade principal da AWS da OpenAI.

  • O principal é o principal da AWS da OpenAI: arn:aws:iam::790389265272:role/EnterpriseKeyManagement.

  • Indique qual ExternalId a OpenAI deve passar durante o processo AssumeRole .

{
    "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>,
                     ]
                }
            }
        }
    ]
}

Em seguida, na etapa Adicionar permissões , procure o nome da política do IAM que você criou na etapa anterior. Clique na caixa de seleção ao lado do nome da política e, em seguida, clique em Avançar.

AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected

Por fim, na seção Nomear, revisar e criar , selecione qualquer nome de função.

4. Aplique restrições adicionais conforme as práticas de segurança

Os itens acima representam os requisitos mínimos para configuração do EKM. É possível aplicar políticas ou restrições adicionais de acordo com as práticas internas de segurança, desde que a OpenAI consiga executar operações de criptografia e descriptografia no KMS. Ao chamar o endpoint de registro de chave da OpenAI descrito na documentação, a configuração será validada.

Após concluir as etapas acima

ChatGPT Enterprise

Entre em contato com sua pessoa de contato na OpenAI e compartilhe as seguintes informações:

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

    • O ARN da função que a OpenAI assumirá em sua nuvem.

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

    • O ARN (Australian Reference Name) do Sistema de Gerenciamento de Chaves para a chave mestra que você gerencia.

A OpenAI habilitará o EKM para sua organização ou workspace do ChatGPT.

API

Cadastre sua chave externa na OpenAI

Siga as instruções nesta referência da API: Chaves externas na API de gerenciamento.

  1. Primeiro, registre sua chave externa no nível da organização OpenAI, o que gerará um ID de chave externa.

  2. Nessa etapa, a OpenAI valida se os dados fornecidos são válidos e se é possível autenticar no KMS.

  3. Esse processo ainda não ativa o EKM no projeto da 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>
}'

Em seguida, crie um projeto OpenAI associado à chave externa. Após isso, o EKM será ativado em seu projeto. O corpo da resposta dessa chamada de API inclui o ID do projeto (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"
}'

Este artigo foi útil?