arrow_back

Como começar a usar o Cloud KMS

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Como começar a usar o Cloud KMS

Lab 45 minutos universal_currency_alt 1 crédito show_chart Introdutório
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP079

Laboratórios autoguiados do Google Cloud

Visão geral

Neste laboratório, você aprenderá a usar alguns recursos avançados das APIs de segurança e privacidade do Google Cloud, incluindo os seguintes:

  • configuração de um bucket seguro do Cloud Storage;
  • gerenciamento de chaves e dados criptografados com o Cloud Key Management Service;
  • visualização de registros de auditoria do Cloud Storage.

Você vai coletar dados do Enron Corpus para criptografá-los e carregá-los no Cloud Storage.

Conteúdo

  • Como criptografar dados e gerenciar chaves de criptografia usando o KMS (Key Management Service)

Vamos usar

  • Cloud Storage
  • SDK Cloud

Configuração e requisitos

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: 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.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = <project_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

Tarefa 1: crie um bucket do Cloud Storage

Para armazenar os dados deste laboratório, você precisa criar seu próprio bucket do Cloud Storage.

  1. Escolha um nome para o bucket do Cloud Storage, como -enron_corpus. Para mais informações sobre como nomear esses elementos, consulte as diretrizes de nomenclatura de buckets do Cloud Storage. Configure uma variável para o nome do bucket executando o seguinte comando no Cloud Shell:
BUCKET_NAME="{{{ project_0.project_id }}}-enron_corpus"
  1. Agora crie o bucket executando o seguinte comando:
gsutil mb gs://${BUCKET_NAME}

A execução desse comando também ajuda a verificar se você configurou corretamente o cliente da linha de comando gsutil, se a autenticação está funcionando e se você tem acesso de gravação ao projeto de nuvem em que está operando.

  1. Depois de criar o bucket, siga para a próxima etapa e faça o download do Enron Corpus.

Clique em Verificar meu progresso para conferir o objetivo.

Crie um bucket do Cloud Storage.

Tarefa 2: confira os dados

O Enron Corpus é um grande banco de dados com mais de 600 mil e-mails gerados por 158 funcionários da Enron Corporation. Esses dados foram copiados para o bucket do Cloud Storage gs://enron_emails/.

  1. Use o comando a seguir para salvar localmente um dos arquivos de origem e conferir a aparência dele.
gsutil cp gs://enron_emails/allen-p/inbox/1. .
  1. Agora use tail no arquivo salvo para verificar se o texto do e-mail está lá:
tail 1.

Você vai receber esta saída:

Attached is the Delta position for 1/18, 1/31, 6/20, 7/16, 9/24 << File: west_delta_pos.xls >> Let me know if you have any questions.

Isso deverá mostrar o conteúdo de um arquivo de e-mail de texto sem formatação. Há dois tipos de arquivos interessantes para você: de imagem e de mensagem de texto simples. Caso tenha interesse, use o mesmo mecanismo para verificar o que há nesses outros arquivos.

Tarefa 3: ative o Cloud KMS

O Cloud KMS é um serviço de gerenciamento de chaves criptográficas no Google Cloud. Antes de usar o KMS, você precisa ativá-lo no seu projeto. O KMS já está ativado neste laboratório provisionado para você. Verifique isso usando um dos comandos da CLI gcloud.

  • Execute o seguinte comando na sessão do Cloud Shell:
gcloud services enable cloudkms.googleapis.com Observação: também é possível ativar o KMS e outros serviços no seu projeto usando a interface do console do Cloud.

Você não deve ter recebido nenhuma resposta. Agora o Cloud KMS está ativado no seu projeto.

Tarefa 4: crie um keyring e uma CryptoKey

Para criptografar os dados, é preciso 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 algum outro agrupamento conceitual. Neste laboratório, o keyring será chamado de test e a CryptoKey será chamada de qwiklab.

  1. Execute o seguinte comando no Cloud Shell para configurar variáveis de ambiente:
KEYRING_NAME=test CRYPTOKEY_NAME=qwiklab
  1. Execute o comando gcloud para criar o keyring. Neste laboratório, você vai usar uma localização global, mas também é possível definir uma região específica:
gcloud kms keyrings create $KEYRING_NAME --location global
  1. Em seguida, usando o novo keyring, crie uma CryptoKey chamada qwiklab:
gcloud kms keys create $CRYPTOKEY_NAME --location global \ --keyring $KEYRING_NAME \ --purpose encryption Observação: não é possível excluir CryptoKeys e keyrings do Cloud KMS.

Nenhuma resposta deve aparecer. Pronto! Você criou um keyring e uma CryptoKey.

  1. Abra o Gerenciamento de chaves no console ao acessar o Menu de navegação > Segurança > Gerenciamento de chaves.

A interface da Web do Gerenciamento de chaves permite conferir e gerenciar as CryptoKeys e os keyrings. Você usará essa IU mais tarde, quando gerenciar permissões.

Clique em Verificar meu progresso para conferir o objetivo.

Crie um keyring e uma CryptoKey.

Tarefa 5: criptografe seus dados

Em seguida, tente criptografar alguns dados.

  1. Use o conteúdo do e-mail que você verificou anteriormente e codifique-o em base64 com o seguinte comando:
PLAINTEXT=$(cat 1. | base64 -w0) Observação: a codificação base64 permite que dados binários sejam enviados para a API como texto simples. Esse comando funciona para imagens, vídeos ou qualquer outro tipo de dados binários.

Ao usar o endpoint de criptografia, você pode enviar o texto codificado em base64 que quer criptografar para a chave especificada.

  1. Execute o comando a seguir:
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type: application/json" Observação: a ação encrypt sempre vai retornar um resultado diferente, mesmo que você use textos e chaves iguais.

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

  1. Agora que seus dados foram criptografados, é possível salvá-los em um arquivo e enviá-los para o bucket do Cloud Storage. Para extrair o texto criptografado da resposta JSON e salvá-lo em um arquivo, use o utilitário de linha de comando jq. É possível enviar a resposta da chamada anterior para o jq, que pode analisar a propriedade ciphertext do arquivo 1.encrypted. Execute o comando a seguir:
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type:application/json" \ | jq .ciphertext -r > 1.encrypted
  1. Para verificar se é possível descriptografar os dados, chame o endpoint decrypt e confira se o texto descriptografado corresponde ao do e-mail original. Os dados criptografados têm informações sobre qual versão da cryptokey foi usada para criptografá-los. Portanto, a versão específica nunca é fornecida ao endpoint de descriptografia. Execute o comando a seguir:
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:decrypt" \ -d "{\"ciphertext\":\"$(cat 1.encrypted)\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type:application/json" \ | jq .plaintext -r | base64 -d Observação: geralmente, a descriptografia é executada na camada do aplicativo. Para conferir um tutorial sobre como criptografar e descriptografar dados em várias linguagens de programação, leia o guia de início rápido do Cloud KMS.
  1. Agora que você verificou que o texto foi criptografado com sucesso, faça o upload do arquivo criptografado para o bucket do Cloud Storage:
gsutil cp 1.encrypted gs://${BUCKET_NAME}

Clique em Verificar meu progresso para conferir o objetivo.

Criptografe seus dados com a chave do Cloud KMS e faça upload deles no bucket de armazenamento.

Tarefa 6: configure as permissões do IAM

No KMS, há duas permissões principais que são as mais importantes. Uma permite que um usuário ou conta de serviço gerencie recursos do KMS, outra permite que um usuário ou conta de serviço use chaves para criptografar e descriptografar dados.

A permissão para gerenciar chaves é a cloudkms.admin. Com ela, qualquer pessoa pode criar keyrings, além de criar, modificar, desativar e destruir cryptokeys. A permissão para criptografar e descriptografar é a cloudkms.cryptoKeyEncrypterDecrypter, que é usada para chamar os endpoints da API de criptografia e descriptografia.

Neste exercício, você atribuirá permissões de IAM por meio do usuário autorizado atual.

  1. Para conferir quem é esse usuário, execute o seguinte comando:
USER_EMAIL=$(gcloud auth list --limit=1 2>/dev/null | grep '@' | awk '{print $2}')
  1. Em seguida, atribua a esse usuário a capacidade de gerenciar recursos do KMS. Atribua ao IAM a permissão para gerenciar o keyring que você acabou de criar usando o seguinte comando gcloud:
gcloud kms keyrings add-iam-policy-binding $KEYRING_NAME \ --location global \ --member user:$USER_EMAIL \ --role roles/cloudkms.admin

As CryptoKeys pertencem aos keyrings, que, por sua vez, pertencem aos projetos. Portanto, um usuário com um papel ou uma permissão específica em um nível mais alto nessa hierarquia herda as mesmas permissões nos recursos filho. Ou seja, um usuário com o papel de proprietário em um projeto também é proprietário em todos os keyrings e cryptokeys dentro do projeto. Da mesma maneira, um usuário com o papel cloudkms.admin em um keyring tem as mesmas permissões associadas nas cryptokeys desse keyring.

Sem a permissão cloudkms.cryptoKeyEncrypterDecrypter, o usuário autorizado não poderá usar as chaves para criptografar ou descriptografar dados.

  1. Execute o seguinte comando do gcloud para atribuir a permissão do IAM para criptografar e descriptografar dados de qualquer CryptoKey no keyring criado:
gcloud kms keyrings add-iam-policy-binding $KEYRING_NAME \ --location global \ --member user:$USER_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Agora é possível conferir as permissões atribuídas na seção "Chaves criptográficas" do Gerenciamento de chaves.

  1. Marque a caixa ao lado do nome do keyring (test) e clique em Principais no painel de informações à direita.

Você vai conferir um menu com as contas e permissões do keyring que acabou de adicionar.

Tarefa 7: faça o backup dos dados na linha de comando

Agora que você sabe como criptografar um único arquivo e tem permissão para fazer isso, é possível executar um script para fazer backup de todos os arquivos em um diretório. Neste exemplo, copie todos os e-mails de allen-p, criptografe-os e faça o upload deles para um bucket do Cloud Storage.

  1. Primeiro, copie todos os e-mails de allen-p para seu diretório de trabalho atual:
gsutil -m cp -r gs://enron_emails/allen-p .
  1. Agora copie e cole o seguinte comando no Cloud Shell para fazer backup e criptografar todos os arquivos do diretório allen-p para o bucket do Cloud Storage:
MYDIR=allen-p FILES=$(find $MYDIR -type f -not -name "*.encrypted") for file in $FILES; do PLAINTEXT=$(cat $file | base64 -w0) curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type:application/json" \ | jq .ciphertext -r > $file.encrypted done gsutil -m cp allen-p/inbox/*.encrypted gs://${BUCKET_NAME}/allen-p/inbox

Esse script passa por todos os arquivos em um determinado diretório, os criptografa com a API KMS e os envia ao Cloud Storage.

Clique em Verificar meu progresso para conferir o objetivo.

Criptografe vários arquivos usando a API KMS e faça o upload deles no Cloud Storage.

Depois que o script for concluído, será possível conferir os arquivos criptografados ao clicar em "Storage" no menu à esquerda do console.

  1. Para encontrar os arquivos, acesse o Menu de navegação > Cloud Storage > Buckets > YOUR_BUCKET > allen-p > inbox. Você vai conferir algo parecido com:

Conteúdo do bucket

Observação: o Cloud Storage oferece suporte à criptografia do lado do servidor, que é compatível com a rotação de chaves dos dados e é a maneira recomendada de criptografar dados no Cloud Storage. O exemplo acima serve apenas para fins de demonstração.

Tarefa 8: confira os Registros de auditoria do Cloud

Os Registros de auditoria do Cloud têm dois fluxos de registro: "Atividade do administrador" e "Acesso aos dados". Eles são gerados pelos serviços do Google Cloud para ajudar você a saber quem fez o quê, onde e quando nos seus projetos do Google Cloud.

  • Para conferir a atividade de qualquer recurso no KMS, acesse o Menu de navegação > Visão geral do Cloud > guia "Atividade". Isso abre a interface de atividade do Cloud. Depois, clique em Acessar a Análise de registros e selecione Cloud KMS Key Ring como Tipo de recurso. Você vai conferir a criação do keyring e todas as alterações feitas nele.

Você criptografou dados e fez upload deles com o KMS e o Cloud Storage.

O que vimos

  • Como usar o IAM para gerenciar permissões do KMS
  • Como usar o KMS para criptografar dados
  • Como usar o Cloud Storage para armazenar dados criptografados
  • Como usar os Registros de auditoria do Cloud para conferir todas as atividades de CryptoKeys e keyrings

Tarefa 9: teste seus conhecimentos

Faça nosso teste para avaliar seus conhecimentos sobre o Cloud KMS.

Parabéns!

Termine a Quest

Este laboratório autoguiado faz parte da Quest Security & Identity Fundamentals. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. Você pode publicar os selos com um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se nesta Quest ou em outra que tenha este laboratório para receber os créditos de conclusão imediatamente. Consulte o catálogo do Google Cloud Ensina para ver todas as Quests disponíveis.

Comece o próximo laboratório

Continue sua Quest com o laboratório Como configurar um cluster particular do Kubernetes ou confira estas outras opções do Google Cloud Ensina:

Próximas etapas/Saiba mais

Manual atualizado no dia 31 de agosto de 2023

Laboratório testado no dia 31 de agosto de 2023

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