Esta página descreve como usar o Cloud Key Management Service (Cloud KMS) para criar uma
chave encapsulada que pode ser usada para enviar solicitações
deidentify e
reidentify
à API Cloud Data Loss Prevention da Proteção de Dados Sensíveis.
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, consulte Pseudonimização.
Para um exemplo que mostra como criar uma chave encapsulada, tokenizar conteúdo e reidentificar conteúdo tokenizado, consulte Desidentificar e reidentificar texto sensível em vez disso.
Você pode concluir as etapas neste documento em 5 a 10 minutos, excluindo as Antes de começar etapas.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud 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 Criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie um Google Cloud projeto:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto que você está criando. -
Selecione o Google Cloud projeto que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do Google Cloud projeto.
-
Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
Ative as APIs Proteção de Dados Sensíveis e Cloud KMS, se alguma delas ainda não estiver ativada:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel Proprietário (roles/owner). Caso contrário, você pode receber essa permissão pelo papel Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud 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 Criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie um Google Cloud projeto:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto que você está criando. -
Selecione o Google Cloud projeto que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do Google Cloud projeto.
-
Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
Ative as APIs Proteção de Dados Sensíveis e Cloud KMS, se alguma delas ainda não estiver ativada:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel Proprietário (roles/owner). Caso contrário, você pode receber essa permissão pelo papel Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com
Funções exigidas
Para receber as permissões necessárias para criar uma chave AES encapsulada, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
- Administrador do Cloud KMS (
roles/cloudkms.admin) - Criptografador de CryptoKey do Cloud KMS (
roles/cloudkms.cryptoKeyEncrypter)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Criar um keyring e uma chave
Antes de iniciar este procedimento, decida onde você quer que a Proteção de Dados Sensíveis processe suas solicitações de desidentificação e reidentificação. Ao criar uma chave do Cloud KMS, é necessário armazená-la em global ou na mesma região que você usará para suas solicitações de Proteção de Dados Sensíveis.
Caso contrário, as solicitações de Proteção de Dados Sensíveis vão falhar.
Você pode encontrar uma lista de locais compatíveis em Locais da Proteção de Dados Sensíveis. Anote o nome da região escolhida (por exemplo, us-west1).
Neste procedimento, é usado global como local para todas as solicitações de API. Se você quiser usar uma região diferente, substitua global pelo nome da região.
Crie um keyring:
gcloud kms keyrings create "dlp-keyring" \ --location "global"Crie uma chave:
gcloud kms keys create "dlp-key" \ --location "global" \ --keyring "dlp-keyring" \ --purpose "encryption"Liste o keyring e a chave:
gcloud kms keys list \ --location "global" \ --keyring "dlp-keyring"A saída a seguir é exibida:
NAME: projects/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key PURPOSE: ENCRYPT_DECRYPT ALGORITHM: GOOGLE_SYMMETRIC_ENCRYPTION PROTECTION_LEVEL: SOFTWARE LABELS: PRIMARY_ID: 1 PRIMARY_STATE: ENABLEDNessa saída,
PROJECT_IDé o ID do projeto.O valor de
NAMEé o nome completo do recurso da chave do Cloud KMS. Anote esse valor porque as solicitações de desidentificação e reidentificação exigem isso.
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.
Crie uma chave AES de 128, 192 ou 256 bits. O comando a seguir usa
opensslpara criar uma chave de 256 bits no diretório atual:openssl rand -out "./aes_key.bin" 32O arquivo
aes_key.biné adicionado ao diretório atual.Codifique a chave AES como uma string base64:
base64 -i ./aes_key.binVocê verá um resultado parecido com este:
uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=
Encapsular a chave AES usando a chave do Cloud KMS
Esta seção descreve como usar a chave do Cloud KMS criada em Criar um keyring e uma chave para encapsular a chave AES codificada em base64 criada em Criar uma chave AES codificada em base64.
Para encapsular a chave AES, use curl para enviar a seguinte solicitação ao
método
projects.locations.keyRings.cryptoKeys.encrypt
da API Cloud KMS:
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: o ID do projeto.BASE64_ENCODED_AES_KEY: a string codificada em base64 retornada em Criar uma chave AES codificada em base64.
A resposta que você recebe do Cloud KMS é semelhante ao seguinte JSON:
{
"name": "projects/<var>PROJECT_ID</var>/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.
Essa é sua chave encapsulada.
A seguir
Saiba mais sobre como tokenizar dados usando uma chave criptográfica key.
Confira um exemplo que mostra como criar uma chave encapsulada , tokenizar conteúdo e reidentificar conteúdo tokenizado conteúdo.
Saiba mais sobre os métodos de desidentificação que usam essa chave encapsulada, e confira exemplos de código.