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.

Etapas
1. Crie uma nova chave do KMS
Acesse KMS -> Chaves gerenciadas pelo cliente e clique em Criar chave.
Selecione um algoritmo de criptografia simétrica.
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>.

2. Crie uma política personalizada com acesso limitado à chave do KMS
Acesse IAM -> Políticas e clique em Criar política.
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.

{
"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.
Acesse IAM -> Funções e clique em Criar função.
Na etapa Selecionar entidade confiável , selecione Política de confiança personalizada.

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.Para ChatGPT ou API, use o ID da organização (org-xxx) associado ao seu espaço de trabalho: https://platform.api.openai.org/settings/organization/general.
Para APIs, você pode usar um ID de projeto de API específico para obter 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>,
]
}
}
}
]
}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.

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.
Primeiro, registre sua chave externa no nível da organização OpenAI, o que gerará um ID de chave externa.
Nessa etapa, a OpenAI valida se os dados fornecidos são válidos e se é possível autenticar no KMS.
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"
}'