Como criar uma chave encapsulada

Nesta página, descrevemos como usar o Cloud Key Management Service (Cloud KMS) para criar uma chave encapsulada que pode ser usada para enviar solicitações de deidentify e reidentify para a API Cloud Data Loss Prevention (DLP).

O processo de usar uma chave criptográfica para desidentificar e reidentificar conteúdo é chamado de pseudonimização (ou tokenização). Para informações conceituais sobre esse processo, veja Pseudonimização.

Para ver um exemplo completo que demonstra como criar uma chave encapsulada, tokenizar conteúdo e reidentificar conteúdo tokenizado, veja o Guia de início rápido: como desidentificar e reidentificar textos confidenciais.

Você pode concluir as etapas deste tópico em 5 a 10 minutos, sem incluir as etapas Antes de começar.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Ative as APIs Cloud DLP and Cloud KMS.

    Ative as APIs

  4. Crie uma conta de serviço:

    1. No Console do Cloud, acesse a página Criar conta de serviço.

      Acesse Criar conta de serviço
    2. Selecione um projeto.
    3. No campo Nome da conta de serviço, insira um nome. O Console do Cloud preenche o campo ID da conta de serviço com base nesse nome.

      No campo Descrição da conta de serviço, insira uma descrição. Por exemplo, Service account for quickstart.

    4. Clique em Criar e continuar.
    5. Clique no campo Selecionar um papel.

      Em Acesso rápido, clique em Básico e em Proprietário.

    6. Clique em Continuar.
    7. Clique em Concluído para terminar a criação da conta de serviço.

      Não feche a janela do navegador. Você vai usá-lo na próxima etapa.

  5. Crie uma chave de conta de serviço:

    1. No Console do Cloud, clique no endereço de e-mail da conta de serviço que você criou.
    2. Clique em Chaves.
    3. Clique em Adicionar chave e em Criar nova chave.
    4. Clique em Criar. O download de um arquivo de chave JSON é feito no seu computador.
    5. Clique em Fechar.
  6. Defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS como o caminho do arquivo JSON que contém a chave da conta de serviço. Essa variável só se aplica à sessão de shell atual. Dessa maneira, se você abrir uma nova sessão, defina a variável novamente.

  7. Instale e inicialize o SDK do Cloud..
  8. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  9. Ative as APIs Cloud DLP and Cloud KMS.

    Ative as APIs

  10. Crie uma conta de serviço:

    1. No Console do Cloud, acesse a página Criar conta de serviço.

      Acesse Criar conta de serviço
    2. Selecione um projeto.
    3. No campo Nome da conta de serviço, insira um nome. O Console do Cloud preenche o campo ID da conta de serviço com base nesse nome.

      No campo Descrição da conta de serviço, insira uma descrição. Por exemplo, Service account for quickstart.

    4. Clique em Criar e continuar.
    5. Clique no campo Selecionar um papel.

      Em Acesso rápido, clique em Básico e em Proprietário.

    6. Clique em Continuar.
    7. Clique em Concluído para terminar a criação da conta de serviço.

      Não feche a janela do navegador. Você vai usá-lo na próxima etapa.

  11. Crie uma chave de conta de serviço:

    1. No Console do Cloud, clique no endereço de e-mail da conta de serviço que você criou.
    2. Clique em Chaves.
    3. Clique em Adicionar chave e em Criar nova chave.
    4. Clique em Criar. O download de um arquivo de chave JSON é feito no seu computador.
    5. Clique em Fechar.
  12. Defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS como o caminho do arquivo JSON que contém a chave da conta de serviço. Essa variável só se aplica à sessão de shell atual. Dessa maneira, se você abrir uma nova sessão, defina a variável novamente.

  13. Instale e inicialize o SDK do Cloud..

Etapa 1: criar um keyring e uma chave

Antes de iniciar este procedimento, decida onde você quer que o Cloud DLP processe as solicitações de desidentificação e reidentificação. Quando você cria uma chave do Cloud KMS, é necessário armazená-la em global ou na mesma região que será usada nas solicitações do Cloud DLP. Caso contrário, as solicitações do Cloud DLP falharão.

Veja uma lista de locais compatíveis nos locais do Cloud DLP. Anote o nome da região escolhida (por exemplo, us-west1).

Neste procedimento, global é usado como local para todas as solicitações de API. Se você quiser usar uma região diferente, substitua global pelo nome da região.

  1. Crie um keyring:

    gcloud kms keyrings create "dlp-keyring" \
        --location "global"
    
  2. Crie uma chave:

    gcloud kms keys create "dlp-key" \
        --location "global" \
        --keyring "dlp-keyring" \
        --purpose "encryption"
    
  3. Liste o keyring e a chave:

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

    A saída a seguir é exibida:

    NAME                                                                                   PURPOSE          ALGORITHM                    PROTECTION_LEVEL  LABELS  PRIMARY_ID  PRIMARY_STATE
    projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key  ENCRYPT_DECRYPT  GOOGLE_SYMMETRIC_ENCRYPTION  SOFTWARE                  1           ENABLED
    

    Nessa saída, PROJECT_ID é o ID do projeto.

    O caminho em NAME é o nome completo do recurso da chave do Cloud KMS. Anote-o porque as solicitações de desidentificação e reidentificação exigem isso.

Etapa 2: criar uma chave AES codificada em base64

Esta seção descreve como criar uma chave do padrão de criptografia avançada (AES) e codificá-la no formato base64.

  1. Crie uma chave AES de 128, 192 ou 256 bits. O comando a seguir usa openssl para criar uma chave de 256 bits no diretório atual:

    openssl rand -out "./aes_key.bin" 32
    

    O arquivo aes_key.bin é adicionado ao diretório atual.

  2. Codifique a chave AES como uma string base64:

    base64 -i ./aes_key.bin
    

    Você verá um resultado parecido com este:

    uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=
    

Etapa 3: unir a chave AES usando a chave do Cloud KMS

Esta seção descreve como usar a chave do Cloud KMS que você criou na Etapa 1 para encapsular a chave AES codificada em base64 criada na Etapa 2. de dados.

Para encapsular a chave AES, use curl para enviar a seguinte solicitação para a API Cloud KMS projects.locations.keyRings.cryptoKeys.encrypt:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key:encrypt" \
  --request "POST" \
  --header "Authorization:Bearer $(gcloud auth application-default print-access-token)" \
  --header "content-type: application/json" \
  --data "{\"plaintext\": \"BASE64_ENCODED_AES_KEY\"}"

Substitua:

  • PROJECT_ID: ID do projeto.
  • BASE64_ENCODED_AES_KEY: a string codificada em base64 retornada na Etapa 2.

A resposta que você recebe do Cloud KMS é semelhante ao seguinte JSON:

{
  "name": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key/cryptoKeyVersions/1",
  "ciphertext": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=",
  "ciphertextCrc32c": "901327763",
  "protectionLevel": "SOFTWARE"
}

Nessa saída, PROJECT_ID é o ID do projeto.

Anote o valor de ciphertext na resposta recebida. Essa é sua chave encapsulada.

A seguir