Acesse mais de 700 laboratórios e cursos

Como usar chaves de criptografia gerenciadas pelo cliente com o Cloud Storage e o Cloud KMS

Laboratório 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

Informações gerais

Com o Cloud Key Management Service (Cloud KMS), é possível gerenciar chaves de criptografia no Google Cloud. Essas chaves são criadas pelo Cloud KMS e gerenciadas por você da mesma forma que você as gerenciaria no local.

Com o Cloud KMS, é possível gerar, usar, alternar e destruir chaves de criptografia simétrica AES256 para uso direto por todos os seus serviços do Cloud.

Neste laboratório, você vai usar o Cloud KMS para criar keyrings e CryptoKeys e depois usá-las com o Cloud Storage para definir chaves padrão em buckets e criptografar objetos individuais com uma chave do Cloud KMS.

Além disso, você vai realizar criptografia manualmente do lado do servidor com as chaves do Cloud KMS e fazer o upload dos dados criptografados para o Cloud Storage.

As permissões do Cloud KMS serão gerenciadas com o IAM, e os Registros de auditoria do Cloud serão usados para acessar todas as atividades de CryptoKeys e keyrings.

Objetivos

Neste laboratório, você vai aprender a:

  • Gerenciar chaves e dados criptografados usando o Cloud KMS.
  • Criar keyrings e CryptoKeys.
  • Definir a chave de criptografia padrão de um bucket do Storage.
  • Criptografar um objeto com uma chave do Cloud KMS.
  • Alternar as chaves de criptografia.
  • Realizar manualmente criptografia do lado do servidor com as chaves do Cloud KMS.

Configuração e requisitos

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período e sem custos financeiros.

  1. Faça login no Qwiklabs em uma janela anônima.

  2. Confira o tempo de acesso do laboratório (por exemplo, 1:15:00) e finalize todas as atividades nesse prazo.
    Não é possível pausar o laboratório. Você pode reiniciar o desafio, mas vai precisar refazer todas as etapas.

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. Clique em Usar outra conta, depois copie e cole as credenciais deste laboratório nos locais indicados.
    Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.

  7. Aceite os termos e pule a página de recursos de recuperação.

Tarefa 1: configurar os recursos necessários

Nesta tarefa, você vai configurar os recursos necessários para o laboratório.

Crie um bucket do Cloud Storage

Observação: um bucket precisa ter um nome exclusivo em nível global. Neste laboratório, você vai usar o ID do projeto do Google Cloud como parte do nome do bucket para garantir que ele seja exclusivo. Esse ID é automaticamente armazenado em uma variável de ambiente do Cloud Shell chamada DEVSHELL_PROJECT_ID.
  1. Na barra de título do console do Google Cloud, clique em Ativar o Cloud Shell (Ícone "Ativar Cloud Shell"). Caso solicitado, clique em Continuar.

  2. Execute o comando a seguir para criar o bucket:

gcloud storage buckets create --location={{{project_0.default_region|Region}}} gs://$DEVSHELL_PROJECT_ID-kms
  1. Execute os comandos abaixo para criar alguns arquivos que serão enviados por upload para o bucket:
echo "This is sample file 1" > file1.txt echo "This is sample file 2" > file2.txt echo "This is sample file 3" > file3.txt
  1. Execute o comando a seguir para copiar o arquivo file1.txt para o bucket:
gcloud storage cp file1.txt gs://$DEVSHELL_PROJECT_ID-kms

Ative o Cloud KMS

Observação: antes de usar o Cloud KMS, ele precisa ser ativado no seu projeto. O Cloud KMS já está ativado no projeto do Google Cloud do Qwiklabs provisionado para você. Por via das dúvidas, você vai emitir o comando para ativá-lo.
  • Execute o seguinte comando no Cloud Shell para ativar o Cloud KMS:
gcloud services enable cloudkms.googleapis.com

Clique em Verificar meu progresso para conferir o objetivo.

Criar um bucket do Cloud Storage

Tarefa 2: usar o Cloud KMS

Nesta tarefa, você vai usar o Cloud KMS para criar um keyring e uma CryptoKey.

Crie um keyring e uma CryptoKey

Observação: para criptografar os dados, você precisa criar um keyring e uma CryptoKey. Keyrings são úteis para agrupar chaves. As chaves podem ser agrupadas por ambiente, como teste, preparo e produção, ou por outros conceitos. Neste laboratório, o keyring será chamado de test e a CryptoKey será chamada de labkey.
  1. No Cloud Shell, execute os comandos a seguir para criar variáveis para manter o nome do keyring e o da CryptoKey.
KEYRING_NAME=lab-keyring CRYPTOKEY_1_NAME=labkey-1 CRYPTOKEY_2_NAME=labkey-2
  1. Execute o comando a seguir para criar o keyring.
gcloud kms keyrings create $KEYRING_NAME --location {{{project_0.default_region|Region}}}
  1. Em seguida, usando o novo keyring, crie uma CryptoKey chamada labkey-1:
gcloud kms keys create $CRYPTOKEY_1_NAME --location {{{project_0.default_region|Region}}} \ --keyring $KEYRING_NAME --purpose encryption
  1. Crie outra CryptoKey chamada labkey-2:
gcloud kms keys create $CRYPTOKEY_2_NAME --location {{{project_0.default_region|Region}}} \ --keyring $KEYRING_NAME --purpose encryption

O keyring e as chaves podem ser conferidos no console do Google Cloud.

  1. No menu de navegação (Ícone do menu de navegação) do console, clique em Segurança > Gerenciamento de chaves.

Repare que há um keyring chamado lab-keyring.

  1. Encontre as chaves de criptografia labkey-1 e labkey-2 clicando no keyring lab-keyring.

Lista de chaves do keyring

Clique em Verificar meu progresso para conferir o objetivo.

Criar um keyring e uma Cryptokey

Tarefa 3: adicionar uma chave padrão a um bucket

Nesta tarefa, você vai adicionar uma chave padrão ao bucket.

Confira a chave padrão de um bucket

  • Execute o comando a seguir para conferir a chave de criptografia padrão do seu bucket:
gsutil kms encryption gs://$DEVSHELL_PROJECT_ID-kms Observação: o bucket não tem uma chave de criptografia padrão, ou seja, todos os dados dele serão criptografados com chaves gerenciadas pelo Google.

Atribua as chaves do Cloud KMS a uma conta de serviço

  • Execute os comandos a seguir para dar à sua conta de serviço do Cloud Storage permissão para usar suas duas chaves do Cloud KMS:
gsutil kms authorize -p $DEVSHELL_PROJECT_ID -k \ projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings\ /$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_1_NAME gsutil kms authorize -p $DEVSHELL_PROJECT_ID -k \ projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings\ /$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_2_NAME

Esta é a sintaxe geral dos comandos acima:

gsutil kms authorize -p [PROJECT_STORING_OBJECTS] -k [KEY_RESOURCE]

Sendo que [KEY_RESOURCE] está no formato:

projects/[PROJECT_STORING_KEYS]/locations/[LOCATION]/keyRings/[KEY_RING_NAME]/cryptoKeys/[KEY_NAME]

Configure a chave padrão de um bucket

Uma chave do Cloud KMS pode ser definida como a chave padrão quando objetos são gravados em um bucket.

Ao definir a chave padrão, o recurso da chave precisa ser especificado no mesmo formato que o comando anterior: projects/[PROJECT_STORING_KEYS]/locations/[LOCATION]/keyRings/ [KEY_RING_NAME]/cryptoKeys/[KEY_NAME].

  1. Execute o comando abaixo para definir a chave padrão do seu bucket como a primeira chave que você gerou:
gsutil kms encryption -k \ projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings\ /$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_1_NAME \ gs://$DEVSHELL_PROJECT_ID-kms
  1. Execute o comando a seguir para conferir a chave padrão do bucket e verificar se o último comando teve êxito:
gsutil kms encryption gs://$DEVSHELL_PROJECT_ID-kms

A chave de criptografia padrão do bucket agora é a primeira chave de criptografia.

Observação: os objetos gravados em um bucket antes da adição ou alteração da chave padrão permanecem criptografados com o método anterior.
  1. Execute o comando a seguir para copiar o arquivo file2.txt para o bucket:
gcloud storage cp file2.txt gs://$DEVSHELL_PROJECT_ID-kms

Confira os arquivos no bucket

  • No console do Google Cloud, acesse o menu de navegação (Ícone do menu de navegação), clique em Cloud Storage > Buckets e depois no seu bucket para este laboratório.

Você vai perceber que o arquivo 1 foi criptografado com uma chave gerenciada pelo Google e o arquivo 2 com uma chave gerenciada pelo cliente.

Clique em Verificar meu progresso para conferir o objetivo.

Adicionar uma chave padrão ao bucket

Tarefa 4: criptografar objetos individuais com uma chave do Cloud KMS

Nesta tarefa, você vai criptografar um objeto individual com uma chave do Cloud KMS. Isso é útil se você quiser usar uma chave diferente daquela definida como padrão no bucket ou se não houver uma chave padrão. Para isso, você deve aprovar a chave a ser usada em cada comando gsutil com a flag -o: -o "GSUtil:encryption_key=[KEY_RESOURCE]"

  1. Execute o comando a seguir para copiar o arquivo file3.txt para o bucket, criptografando-o com sua segunda chave de criptografia:
gsutil -o \ "GSUtil:encryption_key=projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings\ /$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_2_NAME" \ cp file3.txt gs://$DEVSHELL_PROJECT_ID-kms
  1. No console do Google Cloud, atualize a tela Detalhes do bucket. O arquivo file3.txt também estará criptografado com uma chave gerenciada pelo cliente.

Identifique a chave usada para criptografar um objeto

Confira a coluna de criptografia no console do Cloud. Ela mostra o tipo de chave usado: gerenciada pelo Google ou pelo cliente. Detalhes sobre a chave podem ser acessados se você passar o cursor sobre ela. Também é possível verificar esses detalhes usando o gsutil, o que será feito na próxima etapa.

  1. Execute o seguinte comando para mostrar os detalhes de um objeto (a opção -L faz com que o gsutil ls exiba todos os detalhes do arquivo):
gsutil ls -L gs://$DEVSHELL_PROJECT_ID-kms/file3.txt
  1. Nas informações retornadas, encontre a linha da chave do KMS.

Ela mostra a chave de criptografia em uso pelo arquivo.

  1. Execute o comando anterior outra vez para os arquivos file1.txt e file2.txt.

Clique em Verificar meu progresso para conferir o objetivo.

Criptografar objetos individuais com uma chave do Cloud KMS

Tarefa 5: realizar a rotação de chaves

Nesta tarefa, você vai realizar as rotações automática e manual das chaves.

Observação: no Cloud KMS, para acionar a rotação de chaves; gere uma nova versão de uma chave e marque-a como a versão primária. Todas as chaves têm uma versão principal designada em algum momento, que é usada pelo Cloud KMS para criptografar dados. Depois de fazer a rotação de uma chave, as versões anteriores, que já não são principais, não serão desativadas nem destruídas e vão continuar disponíveis para a descriptografia de dados.

Faça a rotação automática das chaves

Observação: ao prover uma programação de rotação, o Cloud KMS automaticamente faz a rotação das chaves para você. Use a ferramenta de linha de comando gcloud ou o console do Google Cloud para configurar uma programação de rotação de chaves.
  1. No menu de navegação (Ícone do menu de navegação) do console do Google Cloud, clique em Segurança > Gerenciamento de chaves e depois no keyring chamado lab-keyring para acessar suas chaves de criptografia labkey-1 e labkey-2.
Observação: se você não encontrar lab-keyring, clique em Atualizar.
  1. Clique na chave chamada labkey-1 para conferir todas as versões.

Atualmente, você só tem uma.

  1. Clique no botão Editar período de rotação.

  2. Defina o menu suspenso do período de rotação para 30 dias.

O período de rotação também pode ser definido como um período personalizado que permite especificar qualquer período.

  1. Clique em Salvar.

O console agora exibe a próxima data de rotação da chave.

Faça a rotação manual das chaves

Observação: também é possível fazer a rotação manualmente com a ferramenta de linha de comando gcloud ou pelo console do Google Cloud.
  1. No console, volte ao keyring chamado lab-keyring e clique na chave chamada labkey-2 para conferir todas as versões.

  2. Clique no botão Alternar chave e em Alternar.

Agora você tem suas versões da chave, sendo version 2 a primária.

Observação: quando você usa os comandos de rotação de chaves mostrados acima, a rotação NÃO faz outra criptografia dos dados já criptografados com a nova versão de chave gerada. Se você suspeitar de uso não autorizado de uma chave, criptografe os dados protegidos por ela novamente e depois desative ou programe a destruição da versão de chave anterior.

Destrua as chaves antigas

Observação: se você destruir uma chave que criptografa objetos atuais, não será possível recuperar os dados, mas você vai continuar recebendo cobranças pelo armazenamento dos objetos até que eles sejam excluídos.

Nessa parte, você não vai destruir uma chave, mas apenas entender o processo de exclusão.

  1. Na tela de versões labkey-2, clique nos três pontos verticais à direita da linha da version 1 da chave e selecione Destruir.

  2. Confira a mensagem que aparece em Programar destruição da versão 1 da chave e clique em Cancelar quando acabar.

Você usou as chaves do Cloud KMS com êxito para criptografar dados no Cloud Storage.

Clique em Verificar meu progresso para conferir o objetivo.

Rotação de chaves

Tarefa bônus: criptografar dados com a API REST

O serviço do Cloud KMS também oferece uma API REST para realizar criptografia e descriptografia. O conteúdo que será criptografado é especificado como parte de um documento JSON na solicitação REST e precisa ser codificado usando Base64. Esse documento JSON tem esta forma:

{"plaintext":"Base64 encoded data to encrypt"}.

Na seção bônus do laboratório, você vai invocar manualmente a API REST usando comandos curl para demonstrar a capacidade da API.

  1. Esta seção pressupõe que você ainda está com a sessão do Cloud Shell aberta e com as variáveis de ambiente a seguir definidas:

KEYRING_NAME

CRYPTOKEY_1_NAME

CRYPTOKEY_2_NAME.

Se essas variáveis não estiverem definidas, volte ao laboratório anterior e execute os comandos para criá-las.

  1. Execute o comando a seguir para codificar alguns textos de exemplo como base64 e armazená-los em uma variável chamada PLAIN_TEXT:
PLAIN_TEXT=$(echo -n "Some text to be encrypted" | base64)
  1. Repita a variável PLAIN_TEXT para verificar se o texto foi codificado:
echo $PLAIN_TEXT

O texto codificado em base64 vai aparecer.

  1. Use a API REST para criptografar o texto codificado chamando o método encrypt da sua chave.

  2. Preencha o campo de texto simples do JSON da sua solicitação com o conteúdo codificado em Base64:

curl \ "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_1_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAIN_TEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default \ print-access-token)" \ -H "Content-Type: application/json"

A resposta será um payload JSON que contém o texto no campo de texto criptografado.

Observação: o texto criptografado pode ser facilmente extraído da resposta JSON e salvo em um arquivo usando o utilitário jq da linha de comando. A resposta da chamada anterior pode ser canalizada para jq, que pode analisar a propriedade de texto criptografado e salvar em data1.encrypted.
  1. Execute o comando abaixo que repete a criptografia, mas dessa vez analisa a propriedade de texto criptografado e a salva no arquivo data1.encrypted:
curl \ "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_1_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAIN_TEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default \ print-access-token)" \ -H "Content-Type: application/json" \ | jq .ciphertext -r > data1.encrypted
  1. Acesse o conteúdo do arquivo data1.encrypted com o seguinte comando:
more data1.encrypted Observação: o texto criptografado pode ser descriptografado chamando o método "decrypt" da sua chave. É preciso usar a mesma chave usada para criptografar o conteúdo.
  1. Execute o comando a seguir para descriptografar o conteúdo no arquivo data1.encrypted e salvá-lo no arquivo chamado data1.decrypted:
curl -v \ "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/{{{project_0.default_region|Region}}}/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_1_NAME:decrypt" \ -d "{\"ciphertext\":\"$(cat data1.encrypted)\"}" \ -H "Authorization:Bearer $(gcloud auth application-default \ print-access-token)" \ -H "Content-Type:application/json" \ | jq .plaintext -r | base64 -d > data1.decrypted
  1. Acesse o conteúdo do arquivo data1.decrypted com o seguinte comando:
more data1.decrypted

Você aprendeu a usar as chaves do Cloud KMS corretamente.

Parabéns!

Neste laboratório, você:

  • Gerenciou chaves e dados criptografados usando o Cloud KMS.

  • Criou keyrings e CryptoKeys.

  • Definiu a chave de criptografia padrão de um bucket do Storage.

  • Criptografou um objeto com uma chave do Cloud KMS.

  • Fez a rotação de chaves de criptografia.

  • Realizou a criptografia manual no lado do servidor com as chaves do Cloud KMS.

Finalize o laboratório

Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.

Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.

Copyright 2025 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de empresas e produtos podem ser marcas registradas das empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.