OpenAI

Instruções de integração da OpenAI com GCP EKM

Instruções passo a passo para provisionar o GCP e ativar o EKM

Atualizado: 2 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 do GCP para conceder à OpenAI acesso limitado ao AWS KMS.

Diagram of OpenAI GCP EKM integration flow using STS token exchange and KMS encrypt or decrypt requests

Etapas

1. Criar uma identidade federada para a OpenAI

A OpenAI emitirá um token de identidade a partir de uma conta do GCP pertencente à OpenAI, com formato semelhante ao descrito abaixo.

  • Os campos azp e sub correspondem aos IDs da conta de serviço da OpenAI no GCP

  • O campo aud corresponde ao ID da organização da OpenAI. Também é possível definir outro público, como o ID de um projeto da OpenAI, conforme descrito a seguir

{
  "aud": "org-xxxx",
  "azp": "105900137572174660365",
  "exp": 1747876928,
  "iat": 1747873328,
  "iss": "https://accounts.google.com",
  "sub": "105900137572174660365"
}

Essa etapa permite reconhecer as declarações do token de identidade e autoriza o STS do GCP a emitir um token de acesso quando esse token for apresentado.

  1. Acesse IAM e Administração -> Federação de Identidades de Carga de Trabalho e clique em Criar Pool.

GCP IAM & Admin with Workload Identity Federation selected
  1. Na etapa Criar um pool de identidades, defina um nome para o pool.

  1. Na etapa Adicionar um provedor ao pool:

  1. Em Selecionar um provedor, escolha OpenID Connect (OIDC)

  2. Defina um nome para o provedor.

  3. Na seção Issuer (URL), insira https://accounts.google.com

  4. Na seção Públicos

  1. Selecione Público permitido

  2. Informe o público que a OpenAI deverá incluir ao enviar o token.

  1. Para ChatGPT ou API: insira o ID da organização da OpenAI (org-xxx)

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

GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
  1. Na seção Mapeamento de atributos

  1. Para google.subject, digite assertion.sub

Google Cloud attribute mapping with Google 1 google.subject mapped to OIDC 1 assertion.sub
  1. Na seção Condições de atributos

  1. Agora você deverá ver seu pool de identidades de carga de trabalho e seu provedor de identidades de carga de trabalho listados em https://console.cloud.google.com/iam-admin/workload-identity-pools página

  1. ID do pool de identidade de workload

GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
  1. ID do provedor de identidade de workload

GCP Workload Identity Provider edit page with the provider ID field highlighted

2. Certifique-se de que o KMS esteja habilitado

Acesse https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview para habilitar o KMS. Não é necessário criar seu KMS no mesmo projeto do GCP onde você reconheceu a identidade federada da OpenAI; no entanto, se os projetos forem diferentes, o produto KMS deve estar habilitado em ambos os projetos.

3. Crie uma nova chave KMS.

  1. Acesse Segurança → Proteção de dados → Gerenciamento de chaves

  2. Na aba Visão geral, clique em Criar key ring

  1. Defina um nome para o key ring

  2. Em Finalidade e algoritmo, selecione Criptografia/descriptografia simétrica.

GCP Key Management Overview page with the Create Key Ring button highlighted
  1. Após criar o key ring, ele aparecerá na aba Key rings. Clique no key ring.

  2. Nos detalhes do key ring, clique em Criar chave

  1. Defina um nome para a chave

4. Crie uma função com permissões limitadas para operações de criptografia e descriptografia no KMS

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

  2. Defina um nome e um ID para a função

  3. Clique em Adicionar permissões e inclua o seguinte

  1. cloudkms.cryptoKeyVersions.useToDecrypt

  2. cloudkms.cryptoKeyVersions.useToEncrypt

5. Atribua a identidade federada da OpenAI à função limitada do KMS para operações de criptografia e descriptografia

  1. Acesse Segurança → Proteção de dados → Gerenciamento de chaves

  2. Clique no nome do key ring e, em seguida, no nome da chave para abrir a página de detalhes.

  1. Clique na guia Permissões e, em seguida, clique no botão Conceder acesso.

Google Cloud KMS key details page with Permissions tab open and Grant Access highlighted
  1. Atribua a identidade federada da OpenAI à função personalizada criada anteriormente

  1. Na seção Adicionar principais, insira principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365

  1. Na seção Atribuir funções, selecione a função personalizada criada na etapa anterior, com permissões limitadas para o EKM

6. 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:

  • "workload_identity_project_number": "123456789012",

  • "workload_identity_pool_id": "openai-azure",

  • "workload_identity_provider_id": "openai-ekm-service-role",

  • "kms_project_id": "adjective-noun-12345",

  • "kms_key_name": "openai-kms-key",

  • "kms_key_ring_name": "openai-kms-key-ring",

  • "kms_key_location": "us-east1"

  • A região onde sua chave mestra do Sistema de Gerenciamento de Chaves está localizada

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

  • Primeiro, registre a chave externa no nível da organização da OpenAI para gerar um ID de chave externa.

  • Nesta etapa, a configuração no GCP será validada para confirmar que é 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": "gcp",
   "name": "GCP EKM Config",
   "workload_identity_project_number": "123456789012",
   "workload_identity_pool_id": "openai-azure",
   "workload_identity_provider_id": "openai-ekm-service-role",
   "audience": <your org id or project id>,
   "kms_project_id": "adjective-noun-12345",
   "kms_key_name": "openai-kms-key",
   "kms_key_ring_name": "openai-kms-key-ring",
   "kms_key_location": "us-east1"
}'

Em seguida, crie um projeto da OpenAI associado à chave externa. Após essa etapa, o EKM será ativado no projeto.

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?