Descrição geral
A Gestão de Chaves Empresariais (EKM) permite que a OpenAI encripte dados utilizando uma chave mestra que controla. Este documento mostra como configurar a sua conta AWS para conceder à OpenAI permissões limitadas no seu KMS.

Passos
1. Crie uma nova chave KMS
Aceda a KMS -> Chaves geridas pelo cliente e clique em Criar chave.
Selecione um algoritmo de encriptação simétrica.
Depois de a sua chave ser criada, anote o respetivo 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 para acesso limitado à chave KMS
Aceda a IAM -> Políticas e clique em Criar política.
No passo Especificar permissões, selecione JSON e introduza o seguinte para conceder à política ações de acesso ao KMS. Certifique-se de que substitui YOUR_KMS_ARN pelo ARN da chave que criou.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": <YOUR_KMS_ARN>
}
]
}3. Crie uma função IAM para a OpenAI assumir e atribua-a à política com acesso limitado ao seu KMS
A OpenAI irá chamar AssumeRole a partir de uma conta AWS detida pela OpenAI. Este passo permite que o principal AWS da OpenAI assuma a função limitada para aceder ao seu KMS.
Aceda a IAM -> Funções e clique em Criar função.
No passo Selecionar entidade de confiança, selecione Política de confiança personalizada.

Em seguida, introduza o seguinte na Política de confiança personalizada para permitir o acesso ao principal AWS da OpenAI.
O principal é o principal AWS da OpenAI:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement.Indique que ExternalId a OpenAI deve transmitir durante o processo
AssumeRole.Para ChatGPT ou API, utilize o ID da organização (org-xxx) associado ao seu espaço de trabalho: https://platform.api.openai.org/settings/organization/general.
Para API, pode utilizar um ID de projeto API 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>,
]
}
}
}
]
}Depois, no passo Adicionar permissões, procure o nome da política IAM que criou no passo anterior. Clique na caixa de seleção junto ao nome da política e, em seguida, clique em Seguinte.

Por fim, na secção Nome, rever e criar, selecione qualquer nome de função.
4. Aplique quaisquer restrições adicionais de acordo com as suas próprias práticas de segurança
Acima está a informação mínima necessária de que a OpenAI precisa para configurar o EKM. Pode aplicar políticas de chave ou restrições adicionais de acordo com as suas práticas internas de segurança, desde que a OpenAI consiga chamar operações de encriptação e desencriptação no seu KMS. Quando chamar o endpoint de registo de chaves com a OpenAI descrito abaixo, iremos validar a sua configuração.
Depois de concluir os passos acima
ChatGPT Enterprise
Entre em contacto com o seu representante da OpenAI e partilhe o seguinte:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>"O ARN da função que a OpenAI irá assumir na sua cloud.
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"O ARN do sistema de gestão de chaves para a chave mestra que gere.
Iremos ativar o EKM para a sua organização/espaço de trabalho do ChatGPT.
API
Registe a sua chave externa na OpenAI
Siga as instruções nesta referência da API: Chaves externas na API de gestão.
Primeiro, registe a sua chave externa ao nível da organização OpenAI, o que irá gerar um ID de chave externa.
Neste passo, iremos validar que a sua entrada é válida e que conseguimos autenticar-nos no seu KMS.
Isto ainda não adicionará EKM ao seu projeto 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": "Configuração 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": <o id da sua organização ou do projeto>
}'Em seguida, crie um projeto OpenAI associado à chave externa. Depois disto, o EKM fica ativado no seu projeto. O corpo da resposta desta chamada de API fornecer-lhe-á 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": "Algum projeto",
"external_key_id": "extkey_xxxx"
}'