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 de deidentify
e reidentify
para a 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, 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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/dlp.user
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/dlp.user
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
Etapa 1: criar um keyring e uma chave
Antes de iniciar este procedimento, decida onde você quer que a Proteção de Dados Sensíveis
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 de proteção de dados sensíveis.
Caso contrário, as solicitações de Proteção de Dados Sensíveis vão falhar.
Confira uma lista de locais compatíveis em
Locais de proteção de dados sensíveis. 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.
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 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.
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.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
Saiba mais sobre a tokenização de dados com uma chave criptográfica.
Analise um exemplo completo com a demonstração de como criar uma chave encapsulada, tokenizar o conteúdo e reidentificar o conteúdo tokenizado.
Saiba mais sobre os métodos de desidentificação que aceitam essa chave encapsulada e veja exemplos de código.