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 selecione Criar chave.
Selecione um algoritmo de encriptação simétrica.
Após criar a chave, tome nota do 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 selecione Criar política.
No passo Especificar permissões, selecione JSON e introduza o seguinte para incluir na política as 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 que a OpenAI possa assumir e associe-a à política de acesso limitado ao seu KMS
A OpenAI irá chamar AssumeRole a partir de uma conta AWS da OpenAI. Este passo permite que a entidade principal da OpenAI na AWS assuma a função limitada para aceder ao seu KMS.
Aceda a IAM > Funções e selecione 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 à entidade principal da OpenAI na AWS.
A entidade principal é a entidade principal da OpenAI na AWS:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement.Indique o ExternalId que a OpenAI deve passar durante o processo
AssumeRole.Para o ChatGPT ou a API, utilize o ID da organização (org-xxx) associado ao seu espaço de trabalho: definições da organização.
Para a API, pode utilizar um ID de projeto da API específico para um controlo mais granular.
{
"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. Selecione a caixa de verificação junto ao nome da política e, em seguida, selecione Seguinte.

Por fim, na secção Nomear, rever e criar, escolha um nome para a 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, verificaremos se os dados introduzidos são válidos e se conseguimos autenticar-nos no seu KMS.
Isto ainda não irá adicionar a 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": "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. 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": "Some Project",
"external_key_id": "extkey_xxxx"
}'