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: 14 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 criar a chave, anote o ARN. Os formatos compatíveis 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 → Policies 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 fará chamadas de AssumeRole a partir de uma conta AWS própria. Esta etapa permite que a entidade principal da OpenAI assuma a função com permissões limitadas para acessar o KMS.

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

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

    AWS IAM Select trusted entity screen with Custom trust policy selected
  3. Insira a política de confiança para permitir acesso à entidade principal da OpenAI.

    1. Principal da AWS da OpenAI: arn:aws:iam::790389265272:role/EnterpriseKeyManagement

    2. Defina o ExternalID que a OpenAI deve fornecer durante o processo de AssumeRole.

      1. Para ChatGPT ou API, use o ID da organização (org-xxx) associado ao workspace: https://platform.api.openai.org/settings/organization/general

      2. Para a API, também é possível usar um ID de projeto específico para maior granularidade

        {
            "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. Na etapa Adicionar permissões, selecione a política do IAM criada anteriormente. 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
  5. Na seção Nomear, revisar e criar, defina um nome para a 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>",

    • ARN da função que a OpenAI assumirá na sua nuvem

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

    • ARN do sistema de gerenciamento de chaves referente à chave mestra sob sua administração

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

API

Cadastre sua chave externa na OpenAI

Siga as instruções na referência da API de Chaves Externas, disponível na API de gerenciamento

  1. Primeiro, registre a chave externa no nível da organização da OpenAI para 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>
    }'
  4. Em seguida, crie um projeto da OpenAI associado à chave externa. Após essa etapa, o EKM será ativado no projeto.

  5. 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?