Visão geral
Enterprise Key Management (EKM) permite criptografar o conteúdo de clientes na OpenAI usando chaves gerenciadas por um sistema externo de gerenciamento de chaves (KMS). Esse recurso está disponível tanto para o ChatGPT Enterprise quanto para a API.
A OpenAI oferece suporte à criptografia Bring Your Own Key (BYOK) com contas externas no AWS KMS, no Google Cloud (GCP) e no Azure Key Vault.
No momento, a implementação de EKM está limitada a workspaces Enterprise e Edu com um representante de conta da OpenAI.
Como funciona a criptografia EKM da OpenAI
Fluxo principal
Uma Chave de Criptografia de Dados (DEK) é gerada para o seu provedor de nuvem.
O KMS da sua nuvem gerencia uma Chave Mestra de Criptografia (KEK), armazenada na própria nuvem ou externamente. A implementação é de sua responsabilidade.
A OpenAI solicita ao provedor de nuvem a criptografia da DEK para gerar uma DEK criptografada (eDEK). Se a KEK estiver armazenada externamente, o provedor realiza uma etapa adicional para acessar esse armazenamento externo, sem exposição desse processo à OpenAI.
Criptografia
Durante a criptografia, os dados são criptografados com a DEK, e a eDEK é armazenada como metadado no arquivo.

Descriptografia
Durante a descriptografia, a OpenAI solicita que o eDEK seja convertido pelo KMS na nuvem em um DEK. Em seguida, o DEK é usado para descriptografar os dados.

Termos-chave
Chave de Criptografia de Dados (DEK): chave usada para criptografar os dados.
Chave de Criptografia de Dados Criptografada (eDEK): versão criptografada da DEK, gerada pelo KMS
Key Encryption Key (KEK): chave mestra gerenciada fora dos sistemas da OpenAI, usada para criptografar a DEK (gerando a eDEK) e descriptografar a eDEK (restaurando a DEK). Esta chave permanece sempre fora dos sistemas da OpenAI.
Requisitos gerais para a implementação
No provedor de nuvem
Crie uma nova chave no KMS da sua nuvem (Azure, AWS ou GCP)
Crie uma política personalizada com permissões limitadas de criptografia e descriptografia no KMS
Configure uma política de confiança (AWS), uma identidade de workload (GCP) ou um service principal (Azure) para a OpenAI
Atribua à OpenAI uma função com permissões limitadas para acessar o KMS
Nas plataformas da OpenAI
ChatGPT Enterprise
Crie um workspace sandbox do ChatGPT para fins de teste.
API
No painel da OpenAI, crie um novo projeto onde a criptografia será aplicada.
Funções específicas por provedor
Para AWS, a OpenAI vai:
Executar AssumeRole com um ExternalID
Para GCP, a OpenAI vai:
Acessar o endpoint STS a partir de uma conta GCP da OpenAI
Use o token de acesso do GCP para chamar operações de encrypt e decrypt no seu KMS.
Para Azure, a OpenAI vai:
Solicitar um token de acesso para o cofre no seu tenant do Azure
Use esse token para realizar operações de criptografia e descriptografia no Key Vault.
Informações fornecidas pela OpenAI
Autenticação
É necessário reconhecer os tokens de identidade federada da OpenAI na AWS e no GCP. No Azure, é necessário reconhecer o ID do aplicativo da OpenAI no registro de aplicativos.
Resumo dos parâmetros de autenticação
| Principal da OpenAI na AWS | arn:aws:iam::790389265272:role/EnterpriseKeyManagement |
| ID da conta de serviço do GCP da OpenAI | 105900137572174660365 |
| ID do aplicativo da OpenAI no Azure | 20a14814-5ab7-4612-a671-1382b412bf93 |
Informações necessárias durante a implementação, de acordo com o provedor de nuvem
Para AWS, é necessário configurar uma política de confiança que reconheça:
Responsável principal da OpenAI (número da conta e função)
ExternalID, que corresponde ao ID do projeto na OpenAI
Para GCP, é necessário configurar uma identidade de workload que reconheça:
ID da conta de serviço da OpenAI
Um público correspondente ao ID do projeto na OpenAI
Para Azure, é necessário criar um service principal no locatário do Azure para o registro de aplicativo da OpenAI
Crie um para o ID do cliente do aplicativo da OpenAI: 20a14814-5ab7-4612-a671-1382b412bf9
Isso pode ser feito enviando uma solicitação POST para o endpoint https://graph.microsoft.com/v1.0/servicePrincipals.
Autorização
É necessário criar uma política que permita que a identidade da OpenAI tenha acesso limitado ao KMS.
| AWS | GCP | Azure |
| kms:Decryptkms:Encrypt | cloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncrypt | Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action |
Outro
No Azure, no campo Key type (tipo de chave ou algoritmo de criptografia), selecione RSA, não EC.
Informações necessárias para a OpenAI
Siga as instruções neste documento para registrar seu KMS na OpenAI. Abaixo está um resumo dos parâmetros que precisam ser fornecidos.
Relacionado à autenticação
AWS
ARN da função do IAM para a OpenAI assumir (exemplo: arn:aws:iam::123456789:role/role-name)
ExternalID: ID da sua organização na OpenAI
GCP
Número do projeto da identidade de workload (exemplo: 123456789)
ID do pool de identidade de workload
ID do provedor de identidade de workload
Público permitido: ID da sua organização na OpenAI
Azure
Tenant ID
| AWS | GCP | Azure | |
| Relacionado à autenticação | Tenant ID | ||
| Relacionado ao KMS | KMS ARN (exemplo: arn:aws:kms:REGION:ACCOUNT_NUMBER:key:KEY_UUID) | ID do projeto KMS (exemplo: adjective-noun-12345)Nome do key ring do KMSNome da chave do KMSLocalização da chave do KMS (exemplo: us-east1) | Vault URI (exemplo: https://your-vault-name.vault.azure.net/)Nome da chave |
Depois de registrar o KMS na OpenAI, siga as instruções na documentação para ativar a configuração de EKM em um projeto de API. Crie um novo projeto de API da OpenAI para fins de teste.
Guias de implementação específicos por provedor
Para orientações passo a passo, consulte os links abaixo. Esses materiais focam nos requisitos de integração com a OpenAI e não abrangem todo o ambiente
Recursos não compatíveis com EKM ativado
Nesta versão inicial, os seguintes recursos não estão disponíveis quando o EKM está habilitado:
Aplicativos com sincronização
Funcionalidades que não estão geralmente disponíveis (ou seja, (Algo ainda em beta/alfa)
