Criar uma conexão EKM

Esta página mostra como configurar o Cloud External Key Manager (Cloud EKM) para se conectar seu provedor de gerenciamento de chaves externo (EKM, na sigla em inglês) por uma rede de nuvem privada virtual (VPC).

É possível usar chaves externas via VPC em locais do Cloud KMS que dão suporte ao EKM via VPC. Para mais informações, consulte a página Locais do Cloud KMS .

Terminologia

  • Conexão EKM

    O recurso do Cloud KMS usado para configurar uma conexão com o gerenciador de chaves externo. No console do Google Cloud, isso é chamado de EKM via conexão VPC.

  • Projeto de VPC

    O projeto que contém o recurso da VPC usado para conectar para o gerenciador de chaves externo.

  • Principais projetos

    Os projetos que contêm recursos de conexão do EKM e chaves do Cloud EKM no Cloud KMS. Um projeto de chave pode ser igual a uma VPC projeto, mas isso não é obrigatório.

  • Espaço criptográfico

    Um contêiner para seus recursos no parceiro de gerenciamento de chaves externo. Seu espaço criptográfico é identificada por um caminho exclusivo do espaço criptográfico. O formato do espaço criptográfico varia de acordo com o parceiro de gerenciamento de chaves externo, por exemplo, v0/cryptospaces/YOUR_UNIQUE_PATH:

Antes de começar

Depois de concluir as etapas abaixo, você poderá começar a usar o Cloud EKM para proteger seus dados.

Crie um novo projeto,

  1. No console do Google Cloud, acesse a página "Gerenciar recursos".

    Acessar a página "Gerenciar recursos"

  2. Crie um novo projeto do Google Cloud ou selecione um projeto atual.

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Saiba mais sobre os preços do Cloud EKM.

Ativar o Cloud KMS

  1. Ative a API Cloud Key Management Service para o projeto.

    Ativar a API Cloud Key Management Service

  2. Anote a conta de serviço do Cloud EKM do seu projeto. No exemplo a seguir, substitua PROJECT_NUMBER pelo número do seu projeto do Google Cloud. Isso informações também ficam visíveis sempre que você usa o console do Google Cloud para criar uma chave do Cloud EKM.

    service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
    

Verifique se CLI gcloud está atualizada

Se você pretende usar a Google Cloud CLI, verifique se ela está atualizada com o seguinte comando:

CLI da gcloud

gcloud components update

Preparar uma rede VPC

Há duas opções para configurar uma rede VPC:

Por padrão, novos projetos contêm uma rede de modo automático que é preenchidos previamente com regras de firewall. Se a rede VPC não for usada para produção, os padrão de modo automático é a maneira mais rápida de começar.

Se o gerenciador de chaves externo estiver em execução no local e você se conectar a ele via conectividade híbrida, use um modo personalizado porque ela fornece controle sobre os intervalos de endereços IP das sub-redes.

Siga estas etapas para configurar sua VPC:

  1. ativar o Acesso privado do Google

    O gerenciador de chaves externo precisa verificar o token OIDC contido em cada solicitação. Para verificar o token, ele precisa recuperar a chave pública OAuth2. do nome de domínio www.googleapis.com. Se o gerenciador de chaves externo for executado no Google Cloud e não tem acesso pela Internet (por exemplo, uma VM um IP externo ou bloqueado por um firewall), siga as instruções para como configurar o acesso privado do Google.

  2. Configuração do firewall para o intervalo de IP 35.199.192.0/19

    As solicitações do Cloud EKM virão desse intervalo. Crie ambos entrada e saída permitem regras de firewall para TCP para a porta em que o gerenciador de chaves externo está escutando.

Configurar a conectividade híbrida

Se o gerenciador de chaves externo estiver em execução no local, use um solução de conectividade híbrida para conectar a VPC à sua rede local. Depois de ter configure a conectividade, siga estas etapas adicionais:

  1. ativar o Acesso privado do Google

    O gerenciador de chaves externo precisa verificar o token OIDC contido em cada solicitação. Para verificar o token, ele precisa para recuperar a chave pública OAuth2 do nome de domínio www.googleapis.com. Se o o gerenciador de chaves externo é executado no local e não tem acesso pela Internet, siga as instruções Como configurar o acesso privado do Google para hosts locais.

  2. Configuração do firewall para o intervalo de IP 35.199.192.0/19

    As solicitações do Cloud EKM virão desse intervalo. Configure seu firewall de rede local ou equipamentos semelhantes para permitir tráfego TCP em a porta em que o gerenciador de chaves externo está escutando.

  3. Verifique se a VPC tem uma rota de retorno para o intervalo de IP 35.199.192.0/19

    Sua rede local precisa ter uma rota para 35.199.192.0/19 destino. Para informações sobre como atender a esse requisito, consulte para retornar estratégias de rotas para destinos locais.

Estratégias de rota de retorno para destinos locais

  • Para túneis do Cloud VPN que usam roteamento estático, crie manualmente uma rota em sua rede local com o destino 35.199.192.0/19 próximo salto é o túnel do Cloud VPN. Para túneis do Cloud VPN que usam roteamento com base na política, configure o Cloud VPN local o seletor de tráfego e o gateway de VPN local seletor de tráfego remoto para incluir 35.199.192.0/19.

  • Para túneis do Cloud VPN que usam roteamento dinâmico ou para Cloud Interconnect, configure o modo de publicidade personalizado para 35.199.192.0/19 na sessão do BGP do Cloud Router que gerencia túnel ou anexo da VLAN.

Configurar o gerenciador de chaves externo

Siga as instruções do seu provedor de EKM para configurá-lo.

Configure seu espaço de criptografia

Se você usa o Cloud EKM como parte de um acordo de EKM gerenciado por parceiro, essas etapas foram concluídas para você como parte do provisionamento do seu parceiro de desenvolvimento de software.

Caso seu provedor de EKM seja compatível com o gerenciamento de chaves EKM do Cloud KMS, a configuração a seguir e as etapas de configuração que precisam ser feitas no EKM:

  • Crie um espaço criptográfico para os recursos gerenciados pelo Cloud KMS na sua ou Cloud EKM.

  • Conceda à conta de serviço do Cloud KMS acesso ao espaço criptográfico e as chaves criadas nele.

  • Configurar a política de justificativas de acesso às chaves para definir quais justificativas de acesso deve ser permitido ou negado.

O processo exato para cada uma dessas etapas depende do seu EKM. Para mais consulte a documentação do provedor de EKM.

Criar um endpoint de serviço do Diretório de serviços

Crie e configure um endpoint de serviço do Diretório de serviços no projeto de VPC que aponta para o endereço IP particular e do gerenciador de chaves externo. Se você usa um balanceador de carga na frente de várias réplicas EKM, use o endereço IP e a porta do balanceador de carga. Verifique se o campo network do seu endpoint de serviço do Diretório de serviços está preenchida.

Autorizar o acesso do Cloud EKM à VPC

Para cada projeto de chave, você precisa autorizar o Cloud EKM a acessar seus VPC em nome desse projeto, mesmo que o projeto principal e a projeto de VPC são iguais. Ao autorizar o acesso, as chaves no seu projeto principal podem use a VPC no seu projeto de VPC.

  1. Verifique se há uma conta de serviço do Cloud EKM para o projeto.

    CLI da gcloud

    gcloud beta services identity create \
      --service=cloudkms.googleapis.com \
      --project=KEY_PROJECT_ID
    
  2. Conceda as permissões servicedirectory.viewer e servicedirectory.pscAuthorizedService na sua projeto de VPC para service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com Se precisar de ajuda para conseguir o ID e o número do projeto, consulte Como criar e gerenciar projetos.

    CLI da gcloud

    gcloud projects add-iam-policy-binding VPC_PROJECT_ID \
      --member='serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com' \
      --role='roles/servicedirectory.viewer'
    
    gcloud projects add-iam-policy-binding VPC_PROJECT_ID \
      --member='serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com' \
      --role='roles/servicedirectory.pscAuthorizedService'
    

Criar uma conexão EKM

Para conectar seu gerenciador de chaves externo ao Cloud EKM, crie uma Conexão EKM no projeto de chave.

Console

  1. No console do Google Cloud, acesse Página Infraestrutura do KMS.

    Acessar a infraestrutura do KMS

  2. Clique em Criar conexão.

  3. Em Nome da conexão, digite um nome.

  4. Em Região, selecione um local para a conexão EKM. Qualquer um As chaves do Cloud KMS associadas a essa conexão devem estar no mesmo como a conexão.

  5. No campo Service resource ID (self_link), insira o valor de do Diretório de serviços criado Seção Criar um endpoint de serviço do Diretório de serviços. O serviço do diretório de serviços precisa estar no mesmo local que o uma conexão com a Internet.

  6. No campo Nome do host, adicione o nome do host do gerenciador de chaves externo.

  7. Em Certificados, clique em Adicionar certificado para fazer upload de um ou mais Certificados de servidor X.509 para seu gerenciador de chaves externo. Os certificados precisam no formato DER.

  8. Em Modo de gerenciamento EKM, selecione Manual para usar a conexão EKM chaves externas gerenciadas manualmente ou selecione Cloud KMS para usar o EKM para chaves externas coordenadas.

  9. Se você selecionou Cloud KMS como modo de gerenciamento de EKM, na seção No campo Crypto Space path (Caminho do espaço criptográfico), insira o caminho do espaço criptográfico fornecido pelo ou Cloud EKM.

  10. Opcional. Para definir a conexão EKM como padrão para esta projeto e local, marque a caixa de seleção Definir conexão como padrão. Se outra conexão EKM estiver definida como padrão para projeto e local, essa conexão EKM vai substituir padrão.

  11. Clique em Criar.

gcloud

Para usar o Cloud KMS na linha de comando, primeiro Instale ou faça upgrade para a versão mais recente da Google Cloud CLI.

Para criar uma conexão EKM para chaves externas gerenciadas manualmente, execute o comando seguinte comando:

gcloud beta kms ekm-connections create EKM_CONNECTION \
    --location LOCATION \
    --service-directory-service SERVICE_DIRECTORY_SERVICE \
    --hostname HOSTNAME \
    --server-certificates-files SERVER_CERTIFICATE_FILES \
    --key-management-mode manual

Substitua:

  • EKM_CONNECTION: um nome para a conexão EKM.
  • LOCATION: o local do Cloud KMS em que você quer criar a conexão do EKM. Todas as chaves do Cloud KMS associadas a essa A conexão precisa estar no mesmo local que a conexão.
  • SERVICE_DIRECTORY_SERVICE: o ID do recurso do Serviço do Diretório de serviços para sua conexão.
  • HOSTNAME: o nome do host do gerenciador de chaves externo.
  • SERVER_CERTIFICATE_FILES: uma lista de arquivos separada por vírgulas. que contêm certificados de servidor X.509 para o gerenciador de chaves externo. Os certificados precisam estar no formato DER.

Para criar uma conexão EKM para chaves externas coordenadas, execute o comando seguinte comando:

gcloud beta kms ekm-connections create EKM_CONNECTION \
    --location LOCATION \
    --service-directory-service SERVICE_DIRECTORY_SERVICE \
    --hostname HOSTNAME \
    --server-certificates-files SERVER_CERTIFICATE_FILES \
    --key-management-mode cloud-kms \
    --crypto-space-path CRYPTO_SPACE_PATH

Substitua:

  • EKM_CONNECTION: um nome para a conexão EKM.
  • LOCATION: o local do Cloud KMS em que você quer criar a conexão do EKM. Todas as chaves do Cloud KMS associadas a essa A conexão precisa estar no mesmo local que a conexão.
  • SERVICE_DIRECTORY_SERVICE: o ID do recurso do Serviço do Diretório de serviços para sua conexão.
  • HOSTNAME: o nome do host do gerenciador de chaves externo.
  • SERVER_CERTIFICATE_FILES: uma lista de arquivos separada por vírgulas. que contêm certificados de servidor X.509 para o gerenciador de chaves externo. Os certificados precisam estar no formato DER.
  • CRYPTO_SPACE_PATH: o caminho do espaço criptográfico fornecido pelo provedor de EKM.

Para informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help.

API

Estes exemplos usam curl como um cliente HTTP para demonstrar o uso da API. Para mais informações sobre controle de acesso, consulte Como acessar a API Cloud KMS.

Para criar uma conexão EKM para chaves externas coordenadas, execute o comando seguinte comando:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConnections" \
    --request "POST" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --header "x-goog-user-project: PROJECT_ID" \
    --data '{
      "name": "EKM_CONNECTION",
      "serviceResolvers": [
        {
          "serviceDirectoryService": "SERVICE_DIRECTORY_SERVICE",
          "hostname": "HOSTNAME",
          "serverCertificates": [
            {
              SERVER_CERTIFICATES
            }
          ]
        }
      ]
      "keyManagementMode": "CLOUD_KMS",
      "cryptoSpacePath": "CRYPTO_SPACE_PATH"
    }'

Substitua:

  • PROJECT_ID: o ID do projeto em que você quer criar o conexão EKM.
  • LOCATION: o Cloud KMS em que você quer criar o conexão EKM.
  • EKM_CONNECTION: o nome a ser usado para a conexão EKM.
  • SERVER_CERTIFICATES: uma lista de até 10 objetos Certificate que representam certificados do servidor de folha.
  • HOSTNAME: o nome do host do gerenciador de chaves externo.
  • CRYPTO_SPACE_PATH: o caminho do espaço criptográfico fornecido pelo provedor de EKM.

Para criar uma conexão EKM para chaves externas gerenciadas manualmente, execute o comando seguinte comando:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConnections" \
    --request "POST" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --header "x-goog-user-project: PROJECT_ID" \
    --data '{
      "name": "EKM_CONNECTION",
      "serviceResolvers": [
        {
          "serviceDirectoryService": "SERVICE_DIRECTORY_SERVICE",
          "hostname": "HOSTNAME",
          "serverCertificates": [
            {
              SERVER_CERTIFICATES
            }
          ]
        }
      ]
    }'

Substitua:

  • PROJECT_ID: o ID do projeto em que você quer criar o conexão EKM.
  • LOCATION: o Cloud KMS em que você quer criar o conexão EKM.
  • EKM_CONNECTION: o nome a ser usado para a conexão EKM.
  • SERVER_CERTIFICATES: uma lista de até 10 Certificate objetos que representam certificados do servidor de folha.
  • HOSTNAME: o nome do host do gerenciador de chaves externo.

Consulte a documentação da API EkmConnection.create para mais informações.

Status do certificado

Depois de fazer upload de um certificado para sua conexão EKM, verifique o status geral do certificado da conexão EKM, bem como o status de cada certificado do Página de infraestrutura do KMS.

As conexões EKM têm o status geral na coluna Status do certificado de cada conexão. Se uma conexão EKM tiver um status diferente de Ativa, recomendamos atualizar os certificados na sua conexão EKM.

As conexões EKM e os certificados individuais podem ter os seguintes status:

  • Ativo: o certificado é válido e não está se aproximando da data de validade.
  • Expira em 30 dias: o certificado é válido, mas precisa expirar. nos próximos 30 dias.
  • Expirado: o certificado expirou e não é mais válido. Recomendamos atualizar certificados expirados.
  • Ainda não é válido: o certificado não está ativo. Isso pode acontecer se a data de início do certificado está no futuro.

Se o certificado não for mais válido, atualize a conexão EKM no console do Google Cloud.

Console

  1. No console do Google Cloud, acesse Página Infraestrutura do KMS.

    Acessar a infraestrutura do KMS

  2. Clique no nome do EKM via conexão VPC com o certificado precisam ser atualizados.

  3. Clique em Editar conexão.

  4. Clique em Adicionar certificado para fazer upload de um ou mais certificados de servidor X.509. para o gerenciador de chaves externo. Os certificados precisam estar no formato DER.

  5. Remova os certificados expirados. Passe o cursor sobre o certificado expirado e Selecione o ícone Excluir à direita.

  6. Clique em Atualizar conexão para atualizar o EKM via conexão VPC.

Definir uma conexão EKM como padrão

É possível definir uma conexão EKM como padrão para um determinado projeto e localização. Quando uma conexão EKM padrão é definida para um projeto e um local, Novo Cloud EKM por chaves VPC criadas em keyrings nesse local use a conexão EKM indicada, a menos que outra conexão EKM seja selecionada.

Para definir uma conexão EKM como padrão para o projeto e local, conclua as seguintes etapas:

Console

  1. No console do Google Cloud, acesse Página Infraestrutura do KMS.

    Acessar a infraestrutura do KMS

  2. Clique na conexão EKM que você quer definir como padrão.

  3. Clique em Editar conexão.

  4. Em Conexão padrão, selecione Definir conexão como o padrão para LOCATION.

  5. Clique em Atualizar conexão.

CLI da gcloud

gcloud beta kms ekm-config update
  --location=LOCATION
  --default-ekm-connection=projects/PROJECT_ID/locations/LOCATION/ekmConnections/DEFAULT_EKM_CONNECTION

Substitua:

  • LOCATION: o Cloud KMS em que você quer definir a conexão EKM padrão.
  • PROJECT_ID: o nome do projeto em que você quer definir. a conexão EKM padrão.
  • DEFAULT_EKM_CONNECTION: o nome da conexão EKM que que você quer definir como padrão para este local. A localização do A conexão EKM precisa corresponder ao local fornecido em LOCATION.

API

Para definir a conexão EKM padrão para um local, use o EkmConfig.patch :

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ekmConfig" \
    --request "PATCH" \
    --header "authorization: Bearer TOKEN" \
    --header "content-type: application/json" \
    --data '{"defaultEkmConnection": "projects/PROJECT_ID/locations/LOCATION/ekmConnections/DEFAULT_EKM_CONNECTION"}'

Substitua:

  • PROJECT_ID: o ID do projeto em que você quer definir. uma conexão EKM padrão.
  • LOCATION: o Cloud KMS em que você quer definir a conexão EKM padrão.
  • DEFAULT_EKM_CONNECTION: o nome do EKM. que você quer definir como padrão para este local. O local da conexão EKM precisa corresponder ao local informado LOCATION:

Se outra conexão EKM tiver sido definida como padrão para esse local, o e a conexão EKM selecionada a substitui como padrão. Só é possível uma conexão EKM ser padrão para um determinado projeto e local.

A seguir