Ativar CMEK para Looker (Google Cloud Core)

Por padrão, o Google Cloud criptografa os dados automaticamente em repouso usando chaves de criptografia gerenciadas pelo Google. Se você tiver requisitos regulatórios ou de conformidade específicos relacionados às chaves que protegem seus dados, use as chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia no nível de aplicativo do Looker (Google Cloud Core).

Para mais informações sobre a CMEK em geral, incluindo quando e por que ativá-la, consulte a documentação do Cloud Key Management Service.

Nesta página, mostramos como configurar uma instância do Looker (Google Cloud Core) para usar CMEK.

Como o Looker (Google Cloud Core) interage com a CMEK?

Looker (Google Cloud Core) usa uma única chave CMEK (por meio de uma hierarquia de chaves secundárias) para ajudar a proteger os dados confidenciais gerenciados pela instância do Looker (Google Cloud Core). Durante a inicialização, cada processo na instância do Looker faz uma chamada inicial para o Cloud Key Management Service (KMS) para descriptografar a chave. Durante a operação normal (após a inicialização), toda a instância do Looker faz uma única chamada para o KMS aproximadamente a cada cinco minutos para verificar se a chave ainda é válida.

Que tipos de instâncias do Looker (Google Cloud Core) são compatíveis com CMEK?

As instâncias do Looker (Google Cloud Core) são compatíveis com CMEK quando dois critérios são atendidos:

  • As etapas de configuração de CMEK descritas nesta página são concluídas antes de a instância do Looker (Google Cloud Core) ser criada. Não é possível ativar chaves de criptografia gerenciadas pelo cliente em instâncias atuais.
  • As edições da instância precisam ser Enterprise ou Embed.

Fluxo de trabalho para criar uma instância do Looker (Google Cloud Core) com CMEK

Nesta página, você verá as etapas para configurar a CMEK em uma instância do Looker (Google Cloud Core).

  1. Configure seu ambiente.
  2. Somente usuários da CLI e da API do gcloud: crie uma conta de serviço para cada projeto que exige chaves de criptografia gerenciadas pelo cliente.
  3. Crie um keyring e uma chave e defina o local para a chave. O local é a região do Google Cloud.
  4. Somente CLI gcloud e usuários da API: copie ou anote o ID da chave (KMS_KEY_ID) e o local para a chave, juntamente com o ID (KMS_KEYRING_ID) do keyring. Você precisa dessas informações ao conceder acesso à chave à conta de serviço.
  5. Somente usuários da CLI e da API do gcloud: conceda à conta de serviço acesso à chave.
  6. Acesse um projeto e crie uma Looker (Google Cloud Core) com as seguintes opções:
    1. Selecione o mesmo local usado pela chave de criptografia gerenciada pelo cliente.
    2. Defina a edição como Enterprise ou Embed.
    3. Ative a configuração da chave gerenciada pelo cliente.
    4. Adicione a chave de criptografia gerenciada pelo cliente por nome ou ID.

Quando todas essas etapas forem concluídas, sua instância do Looker (Google Cloud Core) será ativada com CMEK.

Antes de começar

Se você ainda não fez isso, verifique se o seu ambiente está configurado para permitir que você siga as instruções nesta página. Siga as etapas desta seção para verificar se a configuração está correta.

  1. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud. Observação: se você não pretende manter os recursos criados usando este procedimento, crie um projeto em vez de selecionar um atual. Depois de concluir essas etapas, você pode excluir o projeto, o que removerá os recursos associados a ele.

    Acessar o seletor de projetos

  2. Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
  3. Verifique se você tem o papel de administrador do Looker na sua conta de usuário.
  4. Instale a CLI do Google Cloud.
  5. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
    

  6. Ative a API Cloud Key Management Service.

    Ative a API

  7. Ative a API Looker (Google Cloud Core).

    Ative a API

Crie uma conta de serviço

Se você estiver usando a CLI gcloud ou a API para criar uma instância do Looker (Google Cloud Core), será preciso criar uma conta de serviço para cada projeto do Google Cloud que exija chaves de criptografia gerenciadas pelo cliente. Se você criar mais de uma instância do Looker (Google Cloud Core) em um projeto, a mesma conta de serviço será aplicada a todas as instâncias do Looker (Google Cloud Core) nesse projeto, e a criação da conta de serviço precisará ser feita apenas uma vez. Se você usar o console para criar uma instância, o Looker (Google Cloud Core) criará a conta de serviço automaticamente quando você escolher a opção Usar uma chave de criptografia gerenciada pelo cliente.

Para permitir que um usuário gerencie contas de serviço, conceda um dos seguintes papéis:

  • Usuário da conta de serviço (roles/iam.serviceAccountUser): inclui permissões para listar contas de serviço, receber detalhes sobre uma conta de serviço e personificar uma conta de serviço.
  • Administrador da conta de serviço (roles/iam.serviceAccountAdmin): inclui permissões para listar contas de serviço e receber detalhes sobre uma conta de serviço. Também inclui permissões para criar, atualizar e excluir contas de serviço.

Atualmente, só é possível usar comandos gcloud CLI para criar o tipo de conta de serviço necessário para chaves de criptografia gerenciadas pelo cliente. Se você estiver usando o console do Google Cloud, o Looker (Google Cloud Core) criará automaticamente essa conta de serviço para você.

gcloud

gcloud beta services identity create \
--service=looker.googleapis.com \
--project=PROJECT_ID

O comando anterior retorna um nome de conta de serviço. Use esse nome de conta de serviço durante o procedimento em Como conceder à conta de serviço acesso à chave.

Crie um keyring e uma chave.

Observação: é possível usar uma chave gerenciada externamente com CMEK usando o serviço Cloud EKM para disponibilizar a chave pelo Cloud KMS.

É possível criar a chave no mesmo projeto do Google Cloud que a instância do Looker (Google Cloud Core) ou em um projeto de usuário separado. O local do keyring do Cloud KMS precisa corresponder à região em que você quer criar a instância do Looker (Google Cloud Core). Uma chave de região global ou de várias regiões não funcionará. A solicitação de criação de instância do Looker (Google Cloud Core) falhará se as regiões não corresponderem.

Siga as instruções nas páginas de documentação Criar um keyring e Criar uma chave para criar um keyring e uma chave que atendam aos dois critérios a seguir:

  • O campo Local do keyring precisa corresponder à região que você definirá para a instância do Looker (Google Cloud Core).
  • O campo Objetivo da chave precisa ser criptografado/descriptografado simétrico.

Consulte a seção Girar sua chave para saber mais sobre a rotação de chaves e a criação de novas versões de chaves.

Copie ou anote KMS_KEY_ID e KMS_KEYRING_ID

Se você estiver usando o gcloud ou a API para configurar sua instância do Looker (Google Cloud Core), siga as instruções na página da documentação Como conseguir um código de recurso do Cloud KMS para localizar os códigos do recurso do keyring e da chave que você acabou de criar. Copie ou anote o ID da chave (KMS_KEY_ID) e o local da chave, juntamente com o ID (KMS_KEYRING_ID) do keyring. Você precisa dessas informações ao conceder acesso à chave à conta de serviço.

Conceda à conta de serviço acesso a chave

Você só precisará executar esse procedimento se estiver usando a CLI gcloud ou a API. Para SERVICE_ACCOUNT_NAME, use o nome da conta de serviço retornado quando você criou a conta de serviço.

Para conceder acesso à conta de serviço:

gcloud

gcloud Cloud KMS keys add-iam-policy-binding KMS_KEY_ID \
--location=GCP_REGION \
--keyring=KMS_KEYRING_ID \
--member=serviceAccount:SERVICE_ACCOUNT_NAME \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Criar uma instância do Looker (Google Cloud Core) com CMEK

Para criar uma instância com chaves de criptografia gerenciadas pelo cliente no console do Google Cloud, primeiro siga as etapas na seção Criar um keyring e uma chave, mostrada anteriormente, para criar um keyring e uma chave na mesma região que você usará na sua instância do Looker (Google Cloud Core). Em seguida, usando as configurações a seguir, siga as instruções para criar uma instância do Looker (Google Cloud Core) na página Criar uma instância do Looker (Google Cloud Core) na página de documentação do console do Google Cloud:

Console

  1. Na seção Edição da página Criar uma instância, é necessário selecionar uma edição Enterprise ou Embed para usar a CMEK.
  2. Na seção Criptografia da página Criar uma instância, selecione o botão de opção Chave de criptografia gerenciada pelo cliente (CMEK). Isso revela um campo suspenso Selecionar uma chave gerenciada pelo cliente.
  3. No campo Selecionar uma chave gerenciada pelo cliente, defina a chave que você quer usar. A chave precisa estar em um keyring com um local definido na mesma região que a instância do Looker (Google Cloud Core) que você está criando. Caso contrário, a criação da instância falhará. É possível selecionar a chave com um destes dois métodos:
    1. Selecione o nome da chave na lista suspensa: as chaves disponíveis no projeto do Google Cloud aparecem em uma lista suspensa. Depois de selecionar a chave, clique em OK.
    2. Digite o ID de recurso da chave: clique no texto Não encontra sua chave? Digite o código do recurso da chave, que aparece na parte inferior do menu suspenso.Isso revela uma caixa de diálogo Inserir código do recurso da chave, em que você pode inserir o código da chave. Depois de inserir o ID, selecione Salvar.
  4. Depois de selecionar uma chave, será exibida uma mensagem pedindo que você conceda permissão à sua conta de serviço para usá-la. Clique no botão Conceder.
  5. Se a conta de serviço não tiver permissão para criptografar/descriptografar com a chave selecionada, uma mensagem será exibida. Se isso acontecer, clique em Conceder para conceder à conta de serviço o roles/cloudkms.cryptoKeyEncrypterDecrypter papel de IAM na chave KMS selecionada.
  6. Depois de concluir toda a configuração da sua instância do Looker (Google Cloud Core), clique em Criar.

gcloud

gcloud looker instances create INSTANCE_NAME \
--project=PROJECT_ID \
--oauth-client-id=OAUTH_CLIENT_ID\
--oauth-client-secret=OAUTH_CLIENT_SECRET \
--kms-key=KMS_KEY_ID
--region=REGION \
--edition=EDITION

Para ativar a CMEK, é necessário atribuir --edition a core-embed-annual ou core-enterprise-annual.

Sua instância do Looker (Google Cloud Core) agora está ativada com CMEK.

Visualizar informações da chave em uma instância ativada para CMEK

Depois de criar uma instância do Looker (Google Cloud Core), verifique se a CMEK está ativada.

Console

  1. No Console do Google Cloud, acesse a página Instâncias do Looker.
  2. Clique no nome de uma instância para abrir a página Detalhes dela. Se uma instância tiver CMEK ativada, uma linha de Criptografia indicará a criptografia usada para a instância. O campo Chave de criptografia gerenciada pelo cliente (CMEK) mostra o identificador de chave.

gcloud

gcloud looker instances describe INSTANCE_NAME --region=REGION --format config

Esse comando retorna um kmsKeyName, um kmsKeyNameVersion e um kmsKeyState para confirmar que a instância foi configurada com CMEK.

Usar o gerenciador de chaves externo do Cloud (Cloud EKM)

Para proteger os dados nas instâncias do Looker (Google Cloud Core), é possível usar chaves gerenciadas em um parceiro de gerenciamento de chaves externo compatível. Para mais informações, consulte a página de documentação do Gerenciador de chaves externas do Cloud, incluindo a seção Considerações.

Quando você estiver pronto para criar uma chave do Cloud EKM, consulte a seção Como funciona da página de documentação do Gerenciador de chaves externas do Cloud. Depois de criar uma chave, forneça o nome dela ao criar uma instância do Looker (Google Cloud Core).

O Google não controla a disponibilidade de chaves em um sistema externo de gerenciamento de chaves.

Gire a chave

Recomendamos que você gire a chave para ajudar a promover a segurança. Cada vez que sua chave é girada, ela cria uma nova versão da chave. Para saber mais sobre a rotação de chaves, consulte a página de documentação Rotação de chave.

Se você alternar a chave usada para proteger sua instância do Looker (Google Cloud Core), a versão anterior da chave ainda será necessária para acessar backups ou exportações feitas quando essa versão estava em uso. Por esse motivo, o Google recomenda manter a versão da chave anterior ativada por pelo menos 45 dias após a rotação para ajudar a garantir que esses itens permaneçam acessíveis. As versões de chave são mantidas por padrão até que sejam desativadas ou destruídas.

Desativar e reativar versões de chave

Consulte as seguintes páginas de documentação:

Se uma versão de chave usada para ajudar a proteger uma instância do Looker (Google Cloud Core) for desativada, a instância do Looker (Google Cloud Core) precisará parar de operar, limpar todos os dados confidenciais não criptografados que ele possa ter na memória e aguardar até que a chave fique disponível novamente. O processo é o seguinte:

  1. A versão da chave usada para ajudar a proteger uma instância do Looker (Google Cloud Core) está desativada.
  2. Em aproximadamente 15 minutos, a instância do Looker (Google Cloud Core) detecta que a versão da chave foi revogada, para de operar e limpa todos os dados criptografados na memória.
  3. Depois que a instância parar de funcionar, as chamadas para as APIs do Looker retornarão uma mensagem de erro.
  4. Depois que a instância parar de operar, a UI do Looker (Google Cloud Core) retornará uma mensagem de erro.
  5. Se você reativar a versão da chave, precisará acionar manualmente uma reinicialização da instância.

Se você desativar uma versão de chave e não quiser esperar que a instância do Looker (Google Cloud Core) pare por conta própria, é possível acionar manualmente uma reinicialização da instância para que a instância do Looker (Google Cloud Core) detecte a versão da chave revogada imediatamente.

Como destruir versões de chave

Consulte a seguinte página de documentação:

Se uma versão de chave usada para ajudar a proteger uma instância do Looker (Google Cloud Core) for destruída, a instância do Looker ficará inacessível. A instância precisa ser excluída, e você não poderá acessar os dados dela.

Resolver problemas

Esta seção descreve o que você pode fazer quando receber uma mensagem de erro durante a configuração ou o uso de instâncias ativadas para CMEK.

As operações de administrador do Looker (Google Cloud Core), como criação ou atualização, podem falhar devido a erros do Cloud KMS e funções ou permissões ausentes. Os motivos comuns para falhas incluem a falta de uma versão de chave, uma versão de chave desativada ou destruída, permissões de IAM insuficientes para acessar a versão de chave, ou uma versão de chave do Cloud KMS em uma região diferente da instância do Looker (Google Cloud Core). Use a tabela de solução de problemas a seguir para diagnosticar e resolver problemas comuns.

Tabela de solução de problemas de chaves de criptografia gerenciadas pelo cliente

Mensagem de erro Possíveis causas Estratégias de solução de problemas
Conta de serviço por produto, por projeto não encontrada O nome da conta de serviço está incorreto. Verifique se você criou uma conta de serviço para o projeto de usuário correto.

ACESSAR A PÁGINA "CONTAS DE SERVIÇO"

Não é possível conceder acesso à conta de serviço A conta de usuário não tem permissão para conceder acesso a esta versão de chave.

Adicione o papel Administrador da organização à sua conta de usuário ou de serviço.

ACESSAR A PÁGINA "CONTAS DO IAM"

A versão da chave do Cloud KMS foi destruída A versão da chave foi destruída. Se a versão da chave for destruída, você não poderá usá-la para criptografar ou descriptografar dados. A instância do Looker (Google Cloud Core) precisa ser excluída.
A versão da chave do Cloud KMS está desativada A versão da chave está desativada.

Reative a versão da chave do Cloud KMS.

ACESSAR A PÁGINA "GERENCIAMENTO DE CHAVE"

Permissão insuficiente para usar a chave do Cloud KMS O papel cloudkms.cryptoKeyEncrypterDecrypter está ausente na conta de usuário ou serviço que você está usando para executar operações em instâncias do Looker (Google Cloud Core) ou a versão da chave do Cloud KMS não existe.

Adicione o papel cloudkms.cryptoKeyEncrypterDecrypter à sua conta de usuário ou serviço.

ACESSAR A PÁGINA "CONTAS DO IAM"

Se a função já estiver na sua conta, consulte a seção Criar um keyring e uma chave para saber como criar uma nova versão de chave. Em seguida, conclua as etapas de criação da instância novamente.

A chave do Cloud KMS não foi encontrada A versão da chave não existe. Crie uma nova versão de chave e conclua as etapas de criação da instância novamente. Consulte a seção Criar um keyring e uma chave.
A instância do Looker (Google Cloud Core) e a versão da chave do Cloud KMS estão em regiões diferentes A versão da chave do Cloud KMS e a instância do Looker (Google Cloud Core) precisam estar na mesma região. Ele não funcionará se a versão da chave do Cloud KMS estiver em uma região global ou em várias regiões. Crie uma versão de chave na mesma região em que você quer criar as instâncias e conclua as etapas de criação da instância novamente. Consulte a seção Criar um keyring e uma chave.

A seguir