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

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

Por padrão, o Database Migration Service (do Oracle para o AlloyDB para PostgreSQL) criptografa o conteúdo do cliente em repouso. O Database Migration Service (do Oracle para o AlloyDB para PostgreSQL) processa a criptografia para você sem que você precise fazer nada. Essa opção é chamada de Criptografia padrão do Google.

Se você quiser controlar suas chaves de criptografia, use chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados a CMEKs, incluindo o serviço de migração de banco de dados (do Oracle para o AlloyDB para PostgreSQL). O uso de chaves do Cloud KMS permite controlar o nível de proteção, o local, a programação de rotação, as permissões de uso e acesso e os limites criptográficos. O uso do Cloud KMS também permite a você monitorar o uso de chaves, visualizar registros de auditoria e controlar ciclos de vida importantes. Em vez de o Google ser proprietário e gerente de chaves de criptografia de chaves (KEKs) simétricas que protegem seus dados, você controla e gerencia essas chaves no Cloud KMS.

Depois de configurar os recursos com CMEKs, a experiência de acesso aos recursos do Database Migration Service (do Oracle para o AlloyDB para PostgreSQL) é semelhante à criptografia padrão do Google. Para mais informações sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).

Regiões em que o Database Migration Service oferece suporte a CMEK

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

CMEK com o Cloud KMS Autokey

É possível criar CMEKs manualmente para proteger os recursos do Database Migration Service (do Oracle para o AlloyDB para PostgreSQL) ou usar o Autokey do Cloud KMS. Com o Autokey, keyrings e chaves são gerados sob demanda como parte da criação ou atualização de recursos no Database Migration Service (do Oracle para o AlloyDB para PostgreSQL). Os agentes de serviço que usam as chaves para operações de criptografia e descriptografia são criados se ainda não existirem e receberem os papéis necessários do Identity and Access Management (IAM). Para mais informações, consulte Visão geral das autokeys.

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.

Noções básicas sobre 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 qualquer 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

As seções a seguir descrevem como configurar o CMEK para

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. Instale e inicialize a Google Cloud CLI.
  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 CLI 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 Google Cloud .

  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.

Criar 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.

Só é possível usar comandos gcloud CLI para criar o tipo de conta de serviço necessário para CMEK.

Para criar uma conta de serviço com gcloud CLI, 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.

CLI da 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 à conta de serviço acesso à chave

Você só precisa executar este procedimento se estiver usando gcloud CLI 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: