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:
- Abra o painel do IBM Cloud.
- Na barra de menus, clique em Gerenciar-> Acesso (IAM).
- Na navegação lateral, clique em Autorizações.
- Clique em Criar.
- No menu Serviço de origem, selecione o serviço da implementação. Por exemplo, Databases for PostgreSQL ou Messages for RabbitMQ
- No menu Recursos do serviço de origem, selecione Todos os recursos.
- No menu Serviço de destino, selecione Key Protect.
- Selecione ou mantenha o valor padrão Conta como o grupo de recursos para o Serviço de destino.
- No menu ID da Instância do serviço de destino, selecione as instâncias de serviço para autorizar.
- Ative a função Leitor.
- 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.
- 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".
| 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.
| 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.