Usar chaves de criptografia gerenciadas pelo cliente (CMEK) para migrações contínuas

Visão geral

Esta página descreve como as chaves de criptografia gerenciadas pelo cliente (CMEK) funcionam com jobs de migração do Database Migration Service.

Uma CMEK é ideal para você?

A CMEK é destinada a organizações com dados sensíveis ou regulamentados que exigem o gerenciamento das próprias chaves de criptografia.

Criptografia gerenciada pelo Google e criptografia gerenciada pelo cliente

Com o recurso de chaves de criptografia gerenciadas pelo cliente, você pode usar as próprias chaves criptográficas nos dados transportados pelo Database Migration Service. Depois de adicionar a CMEK, sempre que uma chamada de API for feita, Database Migration Service usará sua chave para acessar os dados.

A CMEK, incluindo chaves de software, hardware e externas, é gerenciada pela API Cloud Key Management Service (KMS).

Quais locais são compatíveis com jobs de migração do Database Migration Service ativados para CMEK?

O CMEK está disponível em todos os locais do Database Migration Service.

Entender as contas de serviço

Quando os jobs de migração do Database Migration Service têm a CMEK ativada, é necessário usar uma conta de serviço para solicitar acesso à chave do Cloud Key Management Service.

Para usar uma CMEK em um projeto, você precisa ter uma conta de serviço e conceder acesso à chave. A conta de serviço precisa existir dentro do projeto. A conta de serviço fica visível em todas as regiões.

Entender as chaves

No Cloud Key Management Service, é preciso criar um keyring com uma chave criptográfica definida com um local. Ao criar um novo job de migração no Database Migration Service, selecione essa chave para criptografar o job.

É preciso saber qual é o ID e a região da chave ao criar novos trabalhos de migração que usam CMEK. Você precisa colocar os bancos de dados de destino na mesma região que a CMEK associada ao job de migração. É possível criar um projeto para as chaves e os bancos de dados de destino ou projetos diferentes para cada um deles.

A CMEK usa o seguinte formato:

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]

Como tornar os dados criptografados com CMEK permanentemente inacessíveis?

Pode haver casos em que você precise destruir permanentemente os dados criptografados com CMEK. Para isso, destrua a versão da CMEK. Não é possível destruir o keyring ou a chave, mas você pode destruir versões da chave.

Restrições

As seguintes restrições se aplicam ao uso de CMEKs:

  • Não é possível atualizar a CMEK em um job de migração em execução.

  • Embora seja possível usar a CMEK para criptografar dados do banco de dados de origem, não é possível usar essas chaves para criptografar os metadados de um job de migração, como o ID do job de migração, o endereço IP do banco de dados de origem e assim por diante.

Usar CMEK

Agora que você entendeu a CMEK, está tudo pronto para configurar uma conta de serviço e chaves para a CMEK. Além disso, você vai aprender a configurar um job de migração para usar o CMEK. Para saber mais sobre a CMEK, consulte Visão geral.

Antes de começar

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Instalar e inicializar o SDK do Cloud.
  7. Verifique se você tem o papel de administrador de migração do banco de dados atribuído à sua conta de usuário.

    Acessar a página IAM

  8. Enable the Cloud Key Management Service API.

    Enable the API

  9. Ative a API Database Migration Service.

    Ativar a API

Fluxo de trabalho para criar jobs de migração no Database Migration Service com CMEK

  1. Somente usuários da gcloud e da API:verifique se você tem uma conta de serviço para cada projeto que exige CMEK. Para mais informações, consulte Criar uma conta de serviço.

  2. Crie um keyring e uma chave e defina o local de cada chave. O local é a região .

  3. Conceda o acesso à chave à conta de serviço.

  4. Copie ou anote o ID da chave (KMS_KEY_ID) e o local da chave e o ID (KMS_KEYRING_ID) do chaveiro. Você precisa dessas informações para conceder o acesso de chave à conta de serviço.

  5. Acesse um projeto, crie um job de migração no Database Migration Service e use a CMEK na seção Opções de criptografia avançada.

Seu job de migração no Database Migration Service agora está ativado com o CMEK.

Crie uma conta de serviço

Você precisa criar uma conta de serviço para cada projeto que exige CMEK.

Para permitir que um usuário gerencie contas de serviço, conceda um dos seguintes papéis:

  • Usuário da conta de serviço (roles/iam.serviceAccountUser): inclui permissões para listar contas de serviço, acessar detalhes sobre uma conta de serviço e representar uma conta de serviço.
  • Administrador da conta de serviço (roles/iam.serviceAccountAdmin): inclui permissões para listar contas de serviço e acessar detalhes sobre uma conta de serviço. Também inclui permissões para criar, atualizar e excluir contas de serviço, e para visualizar ou alterar a política do Database Migration Service do Oracle para o AlloyDB para PostgreSQL em uma conta de serviço.

No momento, só é possível usar comandos gcloud para criar o tipo de conta de serviço necessário para CMEK.

Para criar uma conta de serviço com gcloud, execute o seguinte comando:

gcloud beta services identity create \
--service=datamigration.googleapis.com\
--project=PROJECT_ID

O comando anterior retorna um nome de conta de serviço. Você usa esse nome de conta de serviço durante o procedimento em Conceder o acesso da chave à conta de serviço.

Crie uma chave

É possível criar a chave no mesmo projeto do Google Cloud que o job de migração no Database Migration Service ou em um projeto de usuário separado. O local do keyring do Cloud KMS precisa corresponder à região do banco de dados de destino associado ao job de migração. Não há suporte para chaves de região global ou multirregional. Se as regiões não forem correspondentes, não será possível criar o job de migração.

Para criar uma chave do Cloud KMS:

Console

  1. No console do Google Cloud , acesse a página Chaves criptográficas.
  2. Clique em Criar keyring.
  3. Adicione um nome do keyring. Anote esse nome porque você precisará dele para conceder o acesso de chave à conta de serviço.
  4. Adicione um local de keyring.
  5. Clique em Criar. A página Criar chave é aberta.
  6. Adicione um nome de chave.
  7. Selecione uma Finalidade (simétrica ou assimétrica).
  8. Selecione um Período de rotação e A partir da data.
  9. Clique em Criar.
  10. Na tabela Chaves, clique nos três pontos na última coluna e selecione Copiar ID do recurso. Se preferir, anote o ID. Esse é o KMS_KEY_ID. Você precisa do KMS_KEY_ID para conceder o acesso de chave à conta de serviço.

gcloud

  1. Crie um novo keyring.
    gcloud kms keyrings create KMS_KEYRING_ID \
    --location=REGION
      
    Anote esse nome porque você precisa dele para conceder o acesso de chave à conta de serviço.
  2. Crie uma chave no keyring.
    gcloud kms keys create KMS_KEY_ID \
    --location=REGION \
    --keyring=KMS_KEYRING_ID \
    --purpose=encryption
      
    Anote esse nome porque você precisa dele para conceder o acesso de chave à conta de serviço.

Conceder o acesso à chave à conta de serviço

Você só precisa realizar este procedimento se estiver usando gcloud ou a API.

Para conceder acesso à conta de serviço, use o seguinte código:

gcloud kms keys add-iam-policy-binding KMS_KEY_ID \
--location=REGION \
--keyring=KMS_KEYRING_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Criar um job de migração no Database Migration Service com CMEK

Ao criar um job de migração no Database Migration Service, você pode usar o CMEK para gerenciar a criptografia dos seus dados.

Desativar e reativar versões de chave

Veja os seguintes tópicos: