Crie chaves de criptografia com o Cloud KMS

Este guia de início rápido mostra como criar e usar chaves de criptografia com o Cloud Key Management Service em um projeto de sua propriedade. Estas instruções usam o Cloud de Confiance console para criar keyrings, chaves e versões de chaves no Cloud KMS. Para instruções que usam outros métodos, consulte Visão geral do Autokey, Criar um key ring, e Criar uma chave.

Este guia de início rápido usa a linha de comando para enviar solicitações para a API Cloud KMS. Veja exemplos de programação que usam as bibliotecas do cliente para envio de solicitações para a API Cloud KMS em Criptografia e descriptografia.

Antes de começar

  1. Instale a Google Cloud CLI.

  2. Configure a CLI gcloud para usar sua identidade federada.

    Para mais informações, consulte Fazer login na gcloud CLI com sua identidade federada.

  3. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  4. Crie ou selecione um Cloud de Confiance projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
    • Criar um projeto: para criar um projeto, você precisa do papel de criador de projetos (roles/resourcemanager.projectCreator), que contém a resourcemanager.projects.create permissão. Saiba como conceder papéis.
    • Crie um Cloud de Confiance projeto:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o Cloud de Confiance projeto que você está criando.

    • Selecione o Cloud de Confiance projeto que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do seu Cloud de Confiance projeto.

  5. Verifique se o faturamento está ativado para o Cloud de Confiance projeto.

  6. Ative a API Cloud KMS:

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (roles/serviceusage.serviceUsageAdmin), que contém a serviceusage.services.enable permissão. Saiba como conceder papéis.

    gcloud services enable cloudkms.googleapis.com
  7. Conceda papéis à sua conta de usuário. Execute o seguinte comando uma vez para cada um dos seguintes papéis do IAM: roles/cloudkms.admin, roles/cloudkms.cryptoKeyEncrypterDecrypter

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Substitua:

Keyrings e chaves

Para criptografar e descriptografar o conteúdo, você precisa de uma chave do Cloud KMS, que faz parte de um keyring.

Crie um keyring com o nome test e uma chave com o nome quickstart. Consulte a visão geral da hierarquia de objetos para saber mais sobre esses objetos e como eles se relacionam.

gcloud kms keyrings create "test" \
    --location "global"
gcloud kms keys create "quickstart" \
    --location "global" \
    --keyring "test" \
    --purpose "encryption"

Use a opção list para ver o nome e os metadados da chave que acabou de criar.

gcloud kms keys list \
    --location "global" \
    --keyring "test"

Você verá:

NAME                                                                      PURPOSE          PRIMARY_STATE
projects/PROJECT_ID/locations/global/keyRings/test/cryptoKeys/quickstart  ENCRYPT_DECRYPT  ENABLED

Criptografar dados

Agora que você tem uma chave, basta usá-la para criptografar um texto ou conteúdo binário.

Armazene algum texto a ser criptografado em um arquivo chamado "mysecret.txt".

echo -n "Some text to be encrypted" > mysecret.txt

Para criptografar os dados com gcloud kms encrypt, forneça as informações da chave, especifique o nome do arquivo de texto simples a ser criptografado e o nome do arquivo que conterá o conteúdo criptografado:

gcloud kms encrypt \
    --location "global" \
    --keyring "test" \
    --key "quickstart" \
    --plaintext-file ./mysecret.txt \
    --ciphertext-file ./mysecret.txt.encrypted

O método encrypt salva o conteúdo criptografado no arquivo especificado pela sinalização --ciphertext-file.

Descriptografar texto

Para descriptografar os dados com gcloud kms decrypt, forneça as informações da chave, especifique o nome do arquivo a ser descriptografado e especifique o nome do arquivo com o conteúdo descriptografado:

gcloud kms decrypt \
    --location "global" \
    --keyring "test" \
    --key "quickstart" \
    --ciphertext-file ./mysecret.txt.encrypted \
    --plaintext-file ./mysecret.txt.decrypted

O método decrypt salva o conteúdo descriptografado no arquivo especificado pela sinalização --plaintext-file.

Para fazer isso, use a mesma chave com que o conteúdo foi criptografado.

Liberar espaço

Para evitar cobranças na conta do Cloud de Confiance pelos recursos usados nesta página, exclua o Cloud de Confiance projeto do e os recursos.

Liste as versões disponíveis para sua chave:

gcloud kms keys versions list \
    --location "global" \
    --keyring "test" \
    --key "quickstart"

Para destruir uma versão, execute o seguinte comando, em que 1 é o número da versão da chave que você quer destruir:

gcloud kms keys versions destroy 1 \
    --location "global" \
    --keyring "test" \
    --key "quickstart"

A seguir