Integração do Key Protect

Os dados que você armazena no IBM Cloud® Databases são criptografados por padrão usando chaves geradas aleatoriamente. Para controlar as chaves de criptografia, você pode usar sua própria chave (BYOK) e IBM Key Protect usar uma de suas próprias chaves para criptografar seus bancos de dados e backups.

Este documento aborda a integração do Key Protect com Cloud Databases o, que inclui Databases for PostgreSQL, Databases for MongoDB, Databases for Redis, Databases for Elasticsearch IBM Cloud® Databases for MySQL,, e Messages for RabbitMQ.

Para começar, é necessário que o Key Protect seja provisionado em sua conta da IBM Cloud.

Criando ou incluindo uma chave no Key Protect

Acesse sua instância do Key Protect e gere ou insira uma chave.

Concessão de autorização de serviço na interface do usuário

Autorize o Key Protect para uso com as implementações do Cloud Databases:

  1. Abra o painel do IBM Cloud.
  2. Na barra de menus, clique em Gerenciar-> Acesso (IAM).
  3. Na navegação lateral, clique em Autorizações.
  4. Clique em Criar.
  5. No menu Serviço de origem, selecione o serviço da implementação. Por exemplo, Databases for PostgreSQL ou Messages for RabbitMQ
  6. No menu Recursos do serviço de origem, selecione Todos os recursos.
  7. No menu Serviço de destino, selecione Key Protect.
  8. Selecione ou mantenha o valor padrão Conta como o grupo de recursos para o Serviço de destino.
  9. No menu ID da Instância do serviço de destino, selecione as instâncias de serviço para autorizar.
  10. Ative a função Leitor.
  11. Para usar "Bring your own key" (BYOK) para backups, selecione a caixa Ativar autorizações a serem delegadas na seção Autorizar serviços dependentes.
  12. Clique em Autorizar.

Se a autorização de serviço não estiver presente antes de provisionar a sua implementação com uma chave, a provisão falhará.

Usando a chave do Key Protect

Depois de conceder às suas implementações do Cloud Databases permissão para usar suas chaves, você fornecerá o nome da chave ou o CRN ao provisionar uma implementação. A implementação usa sua chave de criptografia para criptografar seus dados.

Usando a tecla Key Protect na interface do usuário

Se estiver provisionando na página do catálogo, selecione a instância do Key Protect e a chave dos menus suspensos.

Uso da chave Key Protect na CLI

Na CLI, use o parâmetro disk_encryption_key_crn no objeto JSON de parâmetros.

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-NAME> standard us-south \
-p \ '{
  "disk_encryption_key_crn": "crn:v1:<...>:key:<id>"
}'

A Key Protect chave precisa ser identificada pelo seu CRN completo, não apenas pelo seu ID. Um CRN key protect está no formato crn:v1:<...>:key:<id>.

Uso da chave Key Protect na API

Na API, use o parâmetro disk_encryption_key no corpo da solicitação.

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "blue-us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-x-standard",
    "disk_encryption_key_crn": "crn:v1:<...>:key:<id>"
  }'

A Key Protect chave precisa ser identificada pelo seu CRN completo, não apenas pelo seu ID. Um CRN key protect está no formato crn:v1:<...>:key:<id>.

Rotação de chaves

O Key Protect oferece rotação de chave manual e automática e a rotação de chave é suportada por implementações do Cloud Databases. O processo de rotação de uma chave inicia uma tarefa de sincronização do estado do KMS e a implementação é recriptografada com a nova chave. A tarefa é exibida na página Tarefas da Visão geral da implementação e os eventos associados do Key Protect e do Cloud Databases são enviados para o Activity Tracker.

Para obter mais informações, consulte Rotação manual ou automática.

Excluindo a implementação

Se você excluir uma implementação protegida com uma chave do Key Protect, ela permanecerá registrada na chave durante o período de exclusão recuperável (até 9 dias). Para excluir a tecla no período de exclusão suave, forçar a exclusão a tecla. Após o período de exclusão recuperável, a chave poderá ser excluída sem a força. Para determinar quando você pode excluir a chave, verifique a associação entre a chave e sua implementação.

Fragmentação de criptografia

A fragmentação de criptografia é uma ação destrutiva. Quando a chave é excluída, seus dados se tornam irrecuperáveis.

O Key Protect permite que você inicie uma exclusão forçada de uma chave que esteja em uso por serviços da IBM Cloud®, incluindo suas implementações do Cloud Databases. Essa ação é chamada de fragmentação de criptografia. A exclusão de uma chave que está em uso em sua implementação bloqueia os discos que contêm seus dados e desativa sua implementação. Ainda é possível acessar a IU e alguns metadados, como configurações de segurança, na IU, na CLI e na API, mas não é possível acessar nenhum dos bancos de dados ou dados contidos dentro deles. A exclusão de chave é enviada para o Activity Tracker Event Routing como kms.secrets.delete.

Bring Your Own Key para backups

Se você usa o Key Protect, ao provisionar um banco de dados, também é possível designar uma chave para criptografar o disco do Cloud Object Storage que mantém os backups de sua implementação.

O BYOK para backups está disponível somente nas regiões dos EUA us-south e us-east, e eu-de.

Apenas as chaves us-south em e eu-de são resistentes a falhas regionais. Para garantir que seus backups estejam disponíveis mesmo se ocorrer uma falha na região, você deve usar uma chave de us-south ou eu-de, independentemente da localização da sua implantação.

Concedendo a autorização de delegação

Para permitir que sua implantação use a Key Protect chave, você precisa habilitar a autorização para ser delegada ao conceder as autorizações de serviço. Se a autorização de delegação não estiver presente antes de provisionar sua implementação com uma chave, a provisão falhará.

Usando a chave na provisão na CLI

Após a autorização e a delegação adequadas serem concedidas, você fornecerá o nome da chave ou CRN quando provisionar uma implementação.

Na CLI, use o parâmetro backup_encryption_key_crn no objeto JSON de parâmetros.

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-NAME> standard us-south \
-p \ '{
  "backup_encryption_key_crn": "crn:v1:<...>:key:<id>"
}'

Usando a chave na provisão na API

Na API, use o parâmetro backup_encryption_key_crn no corpo da solicitação.

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "blue-us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-x-standard",
    "backup_encryption_key_crn": "crn:v1:<...>:key:<id>"
  }'

Após a ativação da delegação e o fornecimento da implementação, duas entradas são exibidas em Autorizações no IAM. Uma é a entrada para a implementação que lista seu status como delegador. Ele é "Criado pelo usuário".

Exemplo de delegador Autorização de Key Protect
Função Origem Target Tipo
Delegador de autorização, Leitor <cloud-databases> Service Serviço do Key Protect Definido pelo Usuário

E uma para o depósito do Cloud Object Storage para os backups dele, em que a implementação é o inicializador.

Exemplo Key Protect Autorização para Cloud Object Storage de Cloud Databases
Função Origem Target Tipo
Leitor Serviço do Cloud Object Storage Serviço do Key Protect Criado por <cloud-databases-crn>

Removendo chaves

O IAM/Key Protect não o impede de remover a política entre a chave e o Cloud Object Storage (o segundo exemplo), mas fazer isso pode tornar seus backups irrestauráveis. Para evitar isso, se você excluir a política do Cloud Object Storage que controla a capacidade do Cloud Databases de usar a chave para o Cloud Object Storage, a política será recriada para continuar fazendo backup de sua implementação.

Tenha cuidado ao remover chaves e autorizações. Se você tiver várias implementações que usam as mesmas chaves, será possível destruir inadvertidamente backups para todas essas implementações, revogando a autorização de delegação. Se possível, não utilize a mesma chave para backups de várias implantações.

Para fragmentar os backups, é possível excluir a chave. O Cloud Object Storage assegura que o armazenamento seja ilegível e não gravável. No entanto, quaisquer outras implantações que utilizem essa mesma chave para backups enfrentam falhas subsequentes no backup.

Se for necessário que a mesma chave seja usada para backups de várias implementações, a remoção de chaves e autorizações poderá ter os efeitos colaterais a seguir.

  • Se você excluir apenas a autorização do Cloud Object Storage (como visto na Tabela 2), não apenas a implementação que é mostrada como o criador será afetada, mas quaisquer implementações que também usem a mesma chave também serão afetadas. Essas implementações podem encontrar falhas provisórias de backup até que a política seja recriada automaticamente. Não haverá efeitos duradouros, exceto pelos backups ausentes.
  • Se você excluir apenas a Cloud Databases autorização do delegador, criada por você (conforme mostrado na Tabela 1), nada será imediatamente afetado, pois a segunda autorização ainda estará em vigor. No entanto, se a autorização do Cloud Object Storage alguma vez for removida, ela não poderá ser recriada e poderá levar várias implementações que usam a mesma chave a perder a capacidade de backup.
  • Se você excluir a autorização do Cloud Object Storage E a autorização do delegador do Cloud Databases, todas as implementações que usam a mesma chave imediatamente deixarão de ter a capacidade de fazer backup e as autorizações corretas não poderão ser recriadas, destruindo efetivamente os backups para todas as implementações que usam essa chave.

Tenha cuidado se você reutilizar chaves.