Gerenciamento de Chaves do Google (GCP KMS): Guia de Introdução

Assegurar dados é uma prioridade máxima para qualquer organização, e a criptografia é uma das maneiras mais eficazes de proteger dados. Mas como exatamente? A Google Cloud Platform (GCP) oferece um serviço de gerenciamento de chaves chamado Google Key Management Service (KMS), que permite criar e gerenciar rapidamente chaves de criptografia.

Neste tutorial, você aprenderá como criar e usar uma chave no GCP KMS. Você também passará por alguns conceitos importantes relacionados ao gerenciamento de chaves, como chaves, keyrings e versões de chaves.

Preparado? Continue lendo e leve a segurança dos seus dados para o próximo nível!

Pré-requisitos

Este tutorial será uma demonstração prática. Para acompanhar, certifique-se de ter uma conta GCP com faturamento ativo, mas um teste gratuito seria suficiente.

A Google Cloud Project is a collection of resources you create and manage in GCP. Note that you should create separate projects for each of your applications. Doing so lets you efficiently manage the resources for each application. In the end, you can delete all the resources associated with a project, which is helpful for clean-up.

Para criar um novo projeto no Google Cloud:

1. Abra o seu navegador da web favorito e faça login no Console GCP. Semelhante ao console da AWS, o console GCP é uma interface baseada na web para gerenciar seus recursos no Google Cloud.

2. No seu console GCP, vá para a página Gerenciar Recursos, onde você pode ver e gerenciar todos os seus projetos existentes.

3. Em seguida, clique no botão CRIAR PROJETO para criar um novo projeto.

Creating a new Google Cloud project

Por fim, configure as seguintes configurações para o seu novo projeto e clique em CRIAR para criar o seu projeto.

  • Nome do Projeto – Insira um nome para o seu projeto, que não precisa ser único e pode ser alterado posteriormente. A escolha deste tutorial para o nome do projeto é gcp-kms-demo.

  • Localização – Selecione a organização ou pasta pai onde deseja criar este projeto. Seu projeto recém-criado será o pai superior. Mas você pode pular este campo se não tiver uma organização.

O campo de Localização pode não aparecer se você estiver usando uma conta de teste.

Configuring a new Google Cloud project

Se bem-sucedido, você verá o seu projeto Google Cloud recém-criado listado, conforme mostrado abaixo.

Viewing the newly-created Google Cloud project

Habilitando a API do Cloud KMS para o Projeto Google Cloud

Você acabou de criar o seu primeiro Se bem-sucedido, você verá o seu projeto Google Cloud recém-criado listado, conforme mostrado abaixo. projeto na Nuvem, e geralmente você não pode deixá-lo desprotegido. Não se preocupe! A API do Cloud KMS é um conjunto de APIs de criptografia fornecidas pela Google que você pode usar para proteger seus dados.

Para usar a API do Cloud KMS, você precisa habilitá-la para o seu projeto:

1. Acesse a página seletor de projetos do Google e selecione o seu projeto Google Cloud (gcp-kms-demo).

Selecting a project

2. Em seguida, vá para a página Habilitar acesso à API e clique em AVANÇAR para confirmar a ativação da API para o projeto selecionado.

Confirming the selected Google Cloud project

3. Agora, clique em ATIVAR para habilitar a API do Cloud KMS.

Enabling the Cloud KMS API

Neste momento, a API Cloud KMS está ativada para o seu projeto. Agora você pode começar a usar a API Cloud KSM para criar e gerenciar chaves de criptografia.

Verifying the Cloud KMS API is enabled

Começando a Cloud Shell para Criar Chaves e Anéis de Chave

A ativação da API Cloud KMS prepara você para criar chaves e anéis de chave para criptografar e descriptografar seus dados. Chaves e anéis de chave são os conceitos fundamentais na Cloud KMS.

Key A key is an encryption key stored in a keyring that you can use to encrypt and decrypt your data. Each key has a name, and the name must be unique within the keyring. You can use IAM ( Identity and Access Management) policies to control who has access to keys.
Keyring A keyring is a container in Cloud KMS that holds a set of keys. You can think of the keyring as a folder on your computer that contains many files. But in essence, a keyring holds a set of keys in a specific Cloud KMS location.

Mas antes de criar chaves e anéis de chave, você primeiro precisa iniciar a Cloud Shell. A Cloud Shell é um shell gratuito e interativo que você pode usar para executar comandos na Google Cloud Platform sem instalar qualquer ferramenta em sua máquina.

1. No Console do GCP, clique no botão Ativar Cloud Shell (canto superior direito), como mostrado abaixo, para iniciar a Cloud Shell.

Starting the Cloud Shell

A Cloud Shell session initializes, as shown below (at the bottom of the page), where you can run commands.

Viewing the Cloud Shell prompt

2. Em seguida, execute o seguinte gcloud Este prompt aparece a primeira vez que você executa o comando gcloud na Cloud Shell, solicitando que você autorize a ferramenta gcloud a acessar a API KSM. na Cloud Shell para criar um novo anel de chave (keyring) chamado kms-demo-keyring na localização global.

gcloud kms keyrings create "kms-demo-keyring" \
--location "global"

–location “global”

Quando solicitado, clique em AUTORIZAR para continuar executando o comando.

Authorizing access to the KSM API

Este prompt aparece pela primeira vez que você executa o comando gcloud no Cloud Shell, pedindo que você autorize a ferramenta gcloud a acessar a API do KSM.

Creating a new keyring

Como mostrado abaixo, não há mensagens de saída quando o keyring é criado com sucesso.

Relacionado:Use Chaves de Criptografia Como um Profissional Com o Gerenciamento de Chaves da AWS

gcloud kms keys create "kms-demo-key01" \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --purpose "encryption"

Observe que a localização (global) deve ser a mesma que você definiu para o keyring.

–localização “global” \

–keyring “kms-demo-keyring” \

Creating a key for encryption

–purpose “criptografia”

gcloud kms keys list --location "global" --keyring "kms-demo-keyring"

Cada vez que você cria ou rotaciona uma chave, o Cloud KMS cria uma nova versão da chave. Essa funcionalidade permite que você volte facilmente para uma versão anterior, se necessário.

PURPOSE ENCRYPT_DECRYPT Indicates the purpose of the key (encryption and decryption).
ALGORITHM GOOGLE_SYMMETRIC_ENCRYPTION Indicates the key uses Google Symmetric Encryption, the default algorithm for Cloud KMS keys.
PROTECTION_LEVEL SOFTWARE Indicates the key is software-protected.
LABELS You can add labels to keys to categorize them or to add additional information.
PRIMARY ID 1 Indicates the key is the primary key for the keyring, which is what Cloud KMS uses by default when you do not specify a key.

Note that you can have only one primary key per keyring.

PRIMARY STATE ENABLED Shows the current status of the key. The ENABLED state indicates the key can be used for its specified purpose.
Listing the keys in a keyring

Assim como criar um keyring, não há mensagens de saída quando a chave é criada com sucesso.

Mas neste ponto, você tem um keyring e chave que pode usar para criptografar e descriptografar seus dados.

4. Agora, execute o seguinte comando para listar as chaves em um –keyring (kms-demo-keyring)

Você verá uma saída semelhante à captura de tela abaixo com informações da seguinte forma:

echo "This is some sensitive data that I want to encrypt." > gcp-kms-demo.txt

Criptografando e Descriptografando Dados com GCP KMS

A criptografia é uma linha crucial de defesa para dissuadir o acesso de partes maliciosas a dados sensíveis. E agora que você tem uma chave de criptografia, pode usá-la para criptografar seus dados.
ls cat gcp-kms-demo.txt
Para criptografar dados com GCP KMS:
cat gcp-kms-demo.txt
Listing the text file and verifying the data

1. Execute o comando abaixo, que não fornece saída, mas cria um arquivo de texto (gcp-kms-demo.txt) com alguns textos para criptografar.

2. Em seguida, execute cada comando abaixo para listar (ls) o arquivo de texto (gcp-kms-demo.txt) e visualizar (cat) seu conteúdo para verificar os dados.

gcloud kms encrypt \
    --location "global" \
    --keyring "kms-demo-keyring" \
    --key "kms-demo-key01" \
    --plaintext-file ./gcp-kms-demo.txt \
    --ciphertext-file ./gcp-kms-demo.txt.encrypted
Encrypting data

# Listar o arquivo de texto

cat gcp-kms-demo.txt.encrypted

# Visualizar o conteúdo do arquivo de texto

3. Uma vez verificado, execute o comando abaixo para criptografar os dados em seu arquivo (gcp-kms-demo.txt) usando sua chave (kms-demo-key01). Os dados criptografados serão então armazenados em um novo arquivo chamado gcp-kms-demo.txt.encrypted.

Verifying the file data is encrypted

–location “global” \

–keyring “kms-demo-keyring” \

gcloud kms decrypt \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01" \
  --ciphertext-file ./gcp-kms-demo.txt.encrypted \
  --plaintext-file ./gcp-kms-demo.txt.decrypted
Decrypting encrypted data

–key “kms-demo-key01” \

cat gcp-kms-demo.txt.decrypted

–plaintext-file ./gcp-kms-demo.txt \

Verifying the encrypted file has been decrypted

–ciphertext-file ./gcp-kms-demo.txt.encrypted

4. Agora, execute o seguinte comando para tentar visualizar os dados do arquivo criptografado (gcp-kms-demo.txt.encrypted).

Você verá símbolos quebrados, estranhos e ilegíveis, conforme mostrado abaixo. Esta saída indica que o arquivo foi criptografado com sucesso.

gcloud kms keys versions list \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01"

Você precisa armazenar este arquivo criptografado em um local seguro. Por exemplo, você pode armazenar várias cópias no AWS S3, GCP Cloud Storage ou Azure Blob Storage. O Google Cloud não salva a versão em texto simples dos seus dados. Portanto, se você perder o arquivo criptografado, será impossível descriptografá-lo para recuperar os dados originais.

Listing all the key versions

Relacionado:Como Fazer Upload de Arquivos para o S3 com o AWS CLI

5. Depois de criptografado, execute o comando abaixo para descriptografar seus dados (gcp-kms-demo.txt.encrypted) usando a mesma chave (kms-demo-key01). Mas desta vez, os dados descriptografados são armazenados em um novo arquivo chamado gcp-kms-demo.txt.decrypted.

gcloud kms keys versions destroy 1\
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01"

Assim como na criptografia, este comando não fornece saída, mas você verificará a descriptografia na etapa seguinte.

gcloud kms keys versions list

–location “global” \

–keyring “kms-demo-keyring” \

Verifying the key has been scheduled for destruction

–key “kms-demo-key01” \

Deleting the Google Cloud project

–ciphertext-file ./gcp-kms-demo.txt.encrypted \

–plaintext-file ./gcp-kms-demo.txt.decrypted

Confirming Google Cloud project deletion

6. Finalmente, execute o seguinte comando para visualizar (cat) o arquivo descriptografado (gcp-kms-demo.txt.decrypted) e verificar se os dados foram descriptografados com sucesso.

Abaixo, você pode ver os dados originais que foram salvos no arquivo de texto. Parabéns! Você criptografou e descriptografou os dados com sucesso usando o Google Cloud KMS.

Limpeza de Recursos do Google Cloud

Source:
https://adamtheautomator.com/gcp-kms/