Crie uma ligação de GCE

Esta página mostra-lhe como configurar o Cloud External Key Manager (Cloud EKM) para estabelecer ligação ao seu fornecedor de gestão de chaves externa (EKM) através de uma rede da nuvem virtual privada (VPC).

Pode usar chaves externas através da VPC em localizações do Cloud KMS que suportam o EKM através da VPC. Para mais informações, consulte a página Localizações do Cloud KMS.

Terminologia

  • Ligação EKM

    O recurso do Cloud KMS usado para configurar uma ligação ao seu gestor de chaves externo. Na Google Cloud consola, isto é denominado EKM através da ligação VPC.

  • Projeto de VPC

    O projeto que contém o recurso de VPC usado para estabelecer ligação ao seu gestor de chaves externo.

  • Projetos principais

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

  • Espaço cripto

    Um contentor para os seus recursos no parceiro de gestão de chaves externo. O seu espaço de criptomoedas é identificado por um caminho de espaço de criptomoedas exclusivo. O formato do caminho do espaço de criptografia varia consoante o parceiro de gestão de chaves externas. Por exemplo, v0/cryptospaces/YOUR_UNIQUE_PATH.

Antes de começar

Depois de concluir os passos abaixo, pode começar a usar as chaves do EKM do Google Cloud para proteger os seus dados.

Criar um novo projeto

  1. Na Google Cloud consola, aceda à página Gerir recursos.

    Aceda à página Gerir recursos

  2. Crie um novo Google Cloud projeto ou selecione um projeto existente.

  3. Verify that billing is enabled for your Google Cloud project.

  4. Pode saber mais acerca dos preços do EKM na nuvem.

Ative o Cloud KMS

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

    Ative a API Cloud Key Management Service

  2. Tome nota da conta de serviço do EKM do Google Cloud do seu projeto. No exemplo seguinte, substitua PROJECT_NUMBER peloGoogle Cloud número do projeto do seu projeto. Estas informações também ficam visíveis sempre que usa a consola para criar uma chave do EKM da nuvem. Google Cloud

    service-PROJECT_NUMBER@gcp-sa-ekms.
    

Certifique-se de que a CLI gcloud está atualizada

Se vai usar a Google Cloud CLI, certifique-se de que está atualizada com o seguinte comando:

CLI gcloud

gcloud components update

Prepare uma rede VPC

Existem duas opções ao configurar uma rede de VPC:

Por predefinição, os novos projetos contêm uma rede de modo automático que é pré-preenchida com regras de firewall. Se a rede VPC não for usada para fins de produção, a rede de modo automático predefinida é a forma mais rápida de começar.

Se o seu gestor de chaves externo estiver a ser executado no local e se vai estabelecer ligação ao mesmo através de conetividade híbrida, deve usar uma rede de modo personalizado porque oferece controlo sobre os intervalos de endereços IP da sub-rede.

Siga estes passos para configurar a VPC:

  1. Ative o acesso privado do Google

    O gestor de chaves externo tem de validar o token OIDC contido em cada pedido. Para validar o token, tem de obter a chave pública OAuth2 do nome de domínio www.googleapis.com. Se o gestor de chaves externo for executado em Google Cloud e não tiver acesso através da Internet (por exemplo, uma VM sem um IP externo ou bloqueada por uma firewall), siga as instruções para configurar o acesso privado da Google.

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

    Os pedidos do EKM na nuvem vão ser provenientes deste intervalo. Crie regras de firewall de entrada e saída para TCP para a porta na qual o gestor de chaves externo está a ouvir.

Configure a conetividade híbrida

Se o gestor de chaves externo estiver a ser executado no local, use uma solução de conetividade híbrida para ligar a VPC à sua rede no local. Depois de configurar a conetividade, siga estes passos adicionais:

  1. Ative o acesso privado do Google

    O gestor de chaves externo tem de validar o token OIDC contido em cada pedido. Para validar o token, tem de obter a chave pública OAuth2 a partir do nome do domínio www.googleapis.com. Se o gestor de chaves externo for executado no local e não tiver acesso através da Internet, siga as instruções para configurar o acesso privado da Google para anfitriões no local.

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

    Os pedidos do EKM na nuvem vão ser provenientes deste intervalo. Configure a firewall de rede no local ou equipamento semelhante para permitir o tráfego TCP na porta em que o gestor de chaves externo está a escutar.

  3. Certifique-se de que a sua VPC tem uma rota de retorno para o intervalo de IP 35.199.192.0/19

    A sua rede no local tem de ter uma rota para o destino.35.199.192.0/19 Para informações sobre como cumprir este requisito, consulte as estratégias de trajeto de retorno para alvos no local.

Estratégias de trajeto de retorno para alvos no local

  • Para túneis de VPN do Google Cloud que usam o encaminhamento estático, crie manualmente uma rota na sua rede no local cujo destino seja 35.199.192.0/19 e cujo salto seguinte seja o túnel de VPN do Google Cloud. Para túneis da Cloud VPN que usam o encaminhamento baseado em políticas, configure o seletor de tráfego local da Cloud VPN e o seletor de tráfego remoto do gateway de VPN nas instalações para incluir 35.199.192.0/19.

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

Configure o seu gestor de chaves externo

Siga as instruções do seu fornecedor de EKM para configurar o EKM.

Configure o seu espaço de criptomoedas

Se usar o EKM da nuvem como parte de um acordo de EKM gerido pelo parceiro, estes passos foram concluídos por si como parte do processo de aprovisionamento do parceiro.

Se o seu fornecedor de EKM for compatível com a gestão de chaves de EKM a partir do Cloud KMS, tem de seguir os seguintes passos de configuração no seu EKM:

  • Crie um espaço de criptografia para os seus recursos geridos pelo Cloud KMS no EKM.

  • Conceda à sua conta de serviço do Cloud KMS acesso ao espaço de encriptação e às chaves criadas no mesmo.

  • Configure a política de Justificações de acesso a chaves para definir as justificações de acesso que devem ser permitidas ou negadas.

O processo exato para cada um destes passos depende da sua GCE. Para mais informações, consulte a documentação do seu fornecedor de EKM.

Crie um ponto final de serviço do Service Directory

Crie e configure um ponto final do serviço do Service Directory no seu projeto de VPC que aponte para o endereço IP privado e a porta do seu gestor de chaves externo. Se estiver a usar um balanceador de carga à frente de várias réplicas do GKM, use o endereço IP e a porta do balanceador de carga. Certifique-se de que o campo network do ponto final do serviço do diretório de serviços está preenchido.

Autorize o Cloud EKM a aceder à sua VPC

Para cada projeto principal, tem de autorizar o EKM do Google Cloud a aceder à sua VPC em nome desse projeto, mesmo que o projeto principal e o projeto da VPC sejam o mesmo. Ao autorizar o acesso, as chaves no seu projeto de chaves podem usar a VPC no seu projeto de VPC.

  1. Certifique-se de que existe uma conta de serviço do EKM do Google Cloud para o projeto.

    CLI gcloud

    gcloud beta services identity create \
      --service=cloudkms.googleapis.com \
      --project=KEY_PROJECT_ID
    
  2. Conceda as funções servicedirectory.viewer e servicedirectory.pscAuthorizedService no seu projeto de VPC a service-KEY_PROJECT_NUMBER@gcp-sa-ekms. Para obter ajuda com o ID e o número do projeto, consulte o artigo Criar e gerir projetos.

    CLI gcloud

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

Crie uma ligação de GCE

Para ligar o seu gestor de chaves externo ao Cloud EKM, crie uma ligação EKM no seu projeto de chaves.

Consola

  1. Na Google Cloud consola, aceda à página Infraestrutura do KMS.

    Aceda à infraestrutura do KMS

  2. Clique em Criar associação.

  3. Em Nome da associação, introduza um nome para a associação.

  4. Para Região, selecione uma localização para a ligação EKM. Todas as chaves do Cloud KMS associadas a esta ligação têm de estar na mesma localização que a ligação.

  5. Para o campo ID do recurso de serviço (self_link), introduza o valor do serviço do Service Directory criado na secção Crie um ponto final de serviço do Service Directory. O serviço de diretório de serviços tem de estar na mesma localização que a ligação.

  6. No campo Nome do anfitrião, adicione o nome do anfitrião do seu gestor de chaves externo.

  7. Em Certificados, clique em Adicionar certificado para carregar um ou mais certificados de servidor X.509 para o seu gestor de chaves externo. Os certificados têm de estar no formato DER.

  8. Para o modo de gestão do EKM, selecione Manual para usar a ligação EKM para chaves externas geridas manualmente ou selecione Cloud KMS para usar a ligação EKM para chaves externas coordenadas.

  9. Se selecionou Cloud KMS para o modo de gestão de EKM, no campo Caminho do espaço criptográfico, introduza o caminho do espaço criptográfico fornecido pelo seu EKM.

  10. Opcional. Para definir a ligação EKM como a ligação predefinida para este projeto e localização, selecione a caixa de verificação Definir ligação como predefinição. Se outra ligação EKM estiver atualmente definida como a ligação predefinida para este projeto e localização, esta ligação EKM substitui a predefinição existente.

  11. Clique em Criar.

gcloud

Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.

Para criar uma ligação EKM para chaves externas geridas manualmente, execute o 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 o seguinte:

  • EKM_CONNECTION: um nome para a ligação EKM.
  • LOCATION: a localização do Cloud KMS onde quer criar a ligação EKM. Todas as chaves do Cloud KMS associadas a esta ligação têm de estar na mesma localização que a ligação.
  • SERVICE_DIRECTORY_SERVICE: o ID do recurso do serviço Service Directory para a sua ligação.
  • HOSTNAME: o nome do anfitrião do seu gestor de chaves externo.
  • SERVER_CERTIFICATE_FILES: uma lista de ficheiros separados por vírgulas que contêm certificados de servidor X.509 para o seu gestor de chaves externo. Os certificados têm de estar no formato DER.

Para criar uma ligação EKM para chaves externas coordenadas, execute o 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 o seguinte:

  • EKM_CONNECTION: um nome para a ligação EKM.
  • LOCATION: a localização do Cloud KMS onde quer criar a ligação EKM. Todas as chaves do Cloud KMS associadas a esta ligação têm de estar na mesma localização que a ligação.
  • SERVICE_DIRECTORY_SERVICE: o ID do recurso do serviço Service Directory para a sua ligação.
  • HOSTNAME: o nome do anfitrião do seu gestor de chaves externo.
  • SERVER_CERTIFICATE_FILES: uma lista de ficheiros separados por vírgulas que contêm certificados de servidor X.509 para o seu gestor de chaves externo. Os certificados têm de estar no formato DER.
  • CRYPTO_SPACE_PATH: o caminho do espaço criptográfico fornecido pelo seu fornecedor de EKM.

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

API

Estes exemplos usam o curl como cliente HTTP para demonstrar a utilização da API. Para mais informações sobre o controlo de acesso, consulte o artigo Aceder à API Cloud KMS.

Para criar uma ligação EKM para chaves externas coordenadas, execute o 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 o seguinte:

  • PROJECT_ID: o ID do projeto onde quer criar a ligação EKM.
  • LOCATION: o Cloud KMS onde quer criar a ligação EKM.
  • EKM_CONNECTION: o nome a usar para a ligação EKM.
  • SERVER_CERTIFICATES: uma lista de até 10 objetos Certificate que representam certificados de servidor folha.
  • HOSTNAME: o nome do anfitrião do seu gestor de chaves externo.
  • CRYPTO_SPACE_PATH: o caminho do espaço criptográfico fornecido pelo seu fornecedor de EKM.

Para criar uma ligação EKM para chaves externas geridas manualmente, execute o 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 o seguinte:

  • PROJECT_ID: o ID do projeto onde quer criar a ligação EKM.
  • LOCATION: o Cloud KMS onde quer criar a ligação EKM.
  • EKM_CONNECTION: o nome a usar para a ligação EKM.
  • SERVER_CERTIFICATES: uma lista de até 10 Certificate objetos que representam certificados de servidor folha.
  • HOSTNAME: o nome do anfitrião do seu gestor de chaves externo.

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

Estado do certificado

Depois de carregar um certificado para a sua ligação EKM, pode verificar o estado geral do certificado da ligação EKM, bem como o estado de cada certificado na página da infraestrutura KMS.

As associações de EKM têm um estado geral na coluna Estado do certificado de cada associação. Se uma associação de GCE tiver um estado diferente de Ativa, recomendamos que atualize os certificados na associação de GCE.

As ligações EKM e os certificados individuais podem ter o seguinte estado:

  • Ativo: o certificado é válido e não está perto da data de validade.
  • Expira no prazo de 30 dias: o certificado é válido, mas tem uma data de validade nos próximos 30 dias.
  • Expirado: o certificado expirou e já não é válido. Recomendamos que atualize todos os certificados expirados.
  • Ainda não é válido: o certificado não está ativo. Isto pode acontecer se a data de início do certificado for no futuro.

Se o seu certificado já não for válido, atualize a ligação EKM na Google Cloud consola.

Consola

  1. Na Google Cloud consola, aceda à página Infraestrutura do KMS.

    Aceda à infraestrutura do KMS

  2. Clique no nome da ligação EKM através da VPC com o certificado que tem de ser atualizado.

  3. Clique em Editar associação.

  4. Clique em Adicionar certificado para carregar um ou mais certificados de servidor X.509 para o seu gestor de chaves externo. Os certificados têm de estar no formato DER.

  5. Remova os certificados expirados. Passe o cursor do rato sobre o certificado expirado e selecione o ícone Eliminar à direita.

  6. Clique em Atualizar associação para atualizar o EKM através da associação à VPC.

Defina uma ligação EKM como predefinição

Pode definir uma associação de EKM como a associação predefinida para um determinado projeto e localização. Quando é definida uma associação de EKM predefinida para um projeto e uma localização, as novas chaves do Cloud EKM by VPC criadas em conjuntos de chaves nessa localização usam a associação de EKM indicada, a menos que seja selecionada outra associação de EKM.

Para definir uma associação de EKM como predefinição para o respetivo projeto e localização, conclua os passos seguintes:

Consola

  1. Na Google Cloud consola, aceda à página Infraestrutura do KMS.

    Aceda à infraestrutura do KMS

  2. Clique na associação de EKM que quer definir como predefinição.

  3. Clique em Editar associação.

  4. Em Ligação predefinida, selecione a caixa de verificação Definir ligação como predefinição para LOCATION.

  5. Clique em Atualizar associação.

CLI gcloud

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

Substitua o seguinte:

  • LOCATION: o Cloud KMS para o qual quer definir a ligação EKM predefinida.
  • PROJECT_ID: o nome do projeto para o qual quer definir a ligação EKM predefinida.
  • DEFAULT_EKM_CONNECTION: o nome da associação de EKM que quer definir como predefinição para esta localização. A localização da ligação EKM tem de corresponder à localização indicada em LOCATION.

API

Para definir a ligação EKM predefinida para uma localização, use o método 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 o seguinte:

  • PROJECT_ID: o ID do projeto para o qual quer definir uma associação de GCE por predefinição.
  • LOCATION: o Cloud KMS para o qual quer definir a ligação EKM predefinida.
  • DEFAULT_EKM_CONNECTION: o nome da ligação EKM que quer definir como predefinição para esta localização. A localização da ligação EKM tem de corresponder à localização indicada em LOCATION.

Se outra ligação EKM tiver sido definida como predefinição para esta localização, a ligação EKM selecionada substitui-a como predefinição. Só é possível predefinir uma ligação EKM para um determinado projeto e localização.

O que se segue?