Excluir chaves mestras do cliente - AWS Key Management Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Excluir chaves mestras do cliente

Excluir uma Chave mestra do cliente (CMK) no AWS Key Management Service (AWS KMS) é destrutivo e potencialmente perigoso. Essa ação exclui o material de chaves e todos os metadados associados à CMK e é irreversível. Depois que uma CMK é excluída, não é mais possível descriptografar os dados que foram criptografados com essa CMK, o que significa que os dados são irrecuperáveis. Só exclua uma CMK quando você tiver certeza de que não vai mais precisar dela. Caso não tenha certeza, desative a CMK em vez de excluí-la. É possível ativar novamente a CMK desativada caso precise usá-la mais tarde, mas não pode recuperar a CMK que foi excluída.

Antes de excluir uma CMK, é recomendável saber como muitos textos cifrados foram criptografados com essa CMK. O AWS KMS não armazena essas informações nem qualquer um dos textos cifrados. Para obter essas informações, você deve verificar se já utilizou uma CMK. Para algumas orientações que possam ajudá-lo nessa questão, vá para Determinar a utilização anterior de um Chave mestra do cliente.

O AWS KMS nunca exclui suas CMKs, a menos que você as programe explicitamente para exclusão e o período de espera obrigatório expire.

No entanto, você pode optar por excluir uma CMK devido a um ou mais dos seguintes motivos:

  • Como concluir o ciclo de vida da chave das CMKs que não são mais necessárias

  • Para evitar a sobrecarga de gerenciamento e os custos associados à manutenção de CMKs não usadas

  • Como reduzir o número de CMKs que contam em relação à cota de recurso da CMK

nota

Se você fechar ou excluir sua conta da AWS, suas CMKs se tornarão inacessíveis, e você não será mais cobrado por elas. Não é necessário programar a exclusão de suas CMKs em separado do fechamento da conta.

Como funciona a exclusão de chaves mestras do cliente

Usuários autorizados podem excluir chaves mestras do cliente (CMKs) simétricas ou assimétricas. O procedimento é o mesmo para os dois tipos de CMKs.

Como é destrutivo e potencialmente perigoso excluir uma CMK, o AWS KMS impõe um período de espera. Para excluir uma CMK no AWS KMS, programe a exclusão de chaves. Você pode definir o período de espera de 7 dias, no mínimo, até 30 dias, no máximo. O período de espera padrão é de 30 dias.

Durante o período de espera, o estado da CMK e o status da chave é Exclusão pendente.

Depois que o período de espera terminar, o AWS KMS excluirá o CMK, seus aliases e todos os metadados relacionados do AWS KMS.

Quando você programa a exclusão de chaves, o AWS KMS relata a data e hora do fim do período de espera. Essa data e hora é pelo menos o número especificado de dias a partir da programação da exclusão de chaves, mas pode ser até 24 horas mais. Por exemplo, vamos supor que você programe a exclusão de chaves e especifique um período de espera de 7 dias. Nesse caso, o final do período de espera não ocorre antes de 7 dias nem após 8 dias a partir do momento da sua solicitação. Você pode confirmar a data e hora exatas do término do período de espera API do Console de gerenciamento da AWS, AWS CLI ou AWS KMS.

Use o período de espera para garantir que não vai precisar da CMK agora nem no futuro. É possível configurar um alarme do Amazon CloudWatch para avisá-lo se uma pessoa ou aplicação tentar usar a CMK durante o período de espera. Para recuperar a CMK, basta cancelar a exclusão de chaves antes do término do período de espera. Após o término do período de espera, não será possível cancelar a exclusão de chaves, e o AWS KMS excluirá a CMK.

O AWS KMS registra uma entrada no log do AWS CloudTrail quando você programa a exclusão da CMK e quando a CMK é realmente excluída.

Excluir CMKs assimétricas

Usuários autorizados podem excluir CMKs simétricas ou assimétricas. O procedimento para programar a exclusão dessas CMKs é o mesmo para os dois tipos de chaves. No entanto, como é possível fazer download da chave pública de uma CMK assimétrica para usá-la fora do AWS KMS, a operação apresenta riscos adicionais significativos, principalmente para CMKs assimétricas usadas para criptografia (o uso de chave é ENCRYPT_DECRYPT).

  • Ao programar a exclusão de uma CMK, o estado da chave da CMK é alterado para Exclusão pendente e a CMK não pode ser usada em operações criptográficas. No entanto, a programação de exclusão não tem efeito em chaves públicas fora do AWS KMS. Os usuários que têm a chave pública podem continuar a usá-la para criptografar mensagens. Eles não recebem nenhuma notificação sobre a alteração do estado da chave. A menos que a exclusão seja cancelada, o texto cifrado criado com a chave pública não pode ser descriptografado.

  • Os alarmes, os logs e outras estratégias que detectam tentativas de uso da CMK com exclusão pendente não conseguem detectar o uso da chave pública fora do AWS KMS.

  • Quando o CMK for excluído, ocorrerá falha em todas as ações do AWS KMS que envolverem essa CMK. No entanto, os usuários que têm a chave pública podem continuar a usá-la para criptografar mensagens. Esses textos cifrados não podem ser descriptografados.

Se for necessário excluir uma CMK assimétrica usando a chave ENCRYPT_DECRYPT, utilize as entradas de log do CloudTrail para determinar se a chave pública foi obtida por download e compartilhada. Se for o caso, verifique se a chave pública não está sendo usada fora do AWS KMS. Depois, considere desativar a CMK em vez de excluí-la.

Como a exclusão de chaves mestras do cliente afeta os serviços da AWS integrados ao AWS KMS

Vários serviços da AWS se integram ao AWS KMS para proteger seus dados. Alguns desses serviços, como o Amazon EBS e o Amazon Redshift, usam uma Chave mestra do cliente (CMK) no AWS KMS para gerar uma chave de dados e usam a chave de dados para criptografar os dados. Essas chaves de dados de texto simples persistem na memória, desde que os dados que elas protegem sejam usados ativamente.

A programação de uma CMK para exclusão a torna inutilizável, mas não impede que o serviço da AWS use chaves de dados na memória para criptografar e descriptografar seus dados. O serviço não é afetado enquanto precisar usar a CMK com exclusão pendente ou já excluída.

Por exemplo, considere este cenário:

  1. Você cria um volume criptografado do EBS e especifica uma CMK. O Amazon EBS pede ao AWS KMS para usar sua CMK para gerar uma chave de dados criptografada para o volume. O Amazon EBS armazena a chave de dados criptografada com o volume.

  2. Quando você anexa o volume do EBS a uma instância do EC2, o Amazon EC2 solicita que o AWS KMS use sua CMK para descriptografar a chave de dados criptografada do volume do EBS. O Amazon EC2 armazena a chave de dados de texto simples na memória do hipervisor e usa-a para criptografar a E/S do disco no volume do EBS. A chave de dados persiste na memória, enquanto o volume do EBS está conectado à instância do EC2.

  3. Você programa a CMK para exclusão, o que a torna inutilizável. Isso não tem efeito imediato na instância do EC2 nem no volume do EBS, porque o Amazon EC2 está usando a chave de dados de texto simples — e não a CMK — para criptografar a E/S do disco no volume do EBS.

    Mesmo quando o horário programado expira e o AWS KMS exclui a CMK, não há nenhum efeito imediato sobre a instância do EC2 nem o volume do EBS, porque o Amazon EC2 está usando a chave de dados de texto simples, e não a CMK.

  4. No entanto, quando o volume criptografado do EBS é desanexado da instância do EC2, o Amazon EBS remove a chave de texto simples da memória. Na próxima vez em que o volume criptografado do EBS for anexado à instância do EC2, a anexação falhará porque o Amazon EBS não pode usar a CMK para descriptografar a chave de dados criptografada do volume.

Programar e cancelar a exclusão de chaves

Os procedimentos a seguir descrevem como programar e cancelar a exclusão de chaves no AWS KMS usando o Console de gerenciamento da AWS, a AWS CLI, e o AWS SDK for Java.

Atenção

Excluir uma Chave mestra do cliente (CMK) no AWS KMS é destrutivo e potencialmente perigoso. Prossiga somente quando você tiver certeza de que não vai precisar mais usar a CMK futuramente. Caso não tenha certeza, desative a CMK em vez de excluí-la.

Para excluir uma CMK, é preciso ter a respectiva permissão. Se você conta apenas com a política de chaves para especificar permissões do AWS KMS, pode ser necessário adicionar mais permissões antes de excluir a CMK. Para informações sobre como adicionar essas permissões, vá para Adicionar permissões para programar e cancelar a exclusão de chaves.

O AWS KMS registra uma entrada no log do AWS CloudTrail quando você programa a exclusão da CMK e quando a CMK é realmente excluída.

Programar e cancelar a exclusão de chaves (console)

Você pode programar e cancelar a exclusão de chaves no Console de gerenciamento da AWS.

Para programar a exclusão de chaves

  1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service (AWS KMS) em https://console.aws.amazon.com/kms.

  2. Para alterar a região do AWS, use o seletor Region (Região) no canto superior direito da página.

  3. No painel de navegação, escolha Customer managed keys (Chaves gerenciadas de cliente).

  4. Marque a caixa de seleção ao lado da CMK que você deseja excluir.

  5. Escolha Key actions (Ações de chave), Schedule key deletion (Programar exclusão da chave).

  6. Leia e considere o aviso e as informações sobre o cancelamento e a exclusão durante o período de espera. Se você decidir cancelar a exclusão, selecione Cancel (Cancelar).

  7. Para Waiting period (in days) (Período de espera (em dias)), digite um número de dias entre 7 e 30.

  8. Marque a caixa de seleção ao lado de Confirmar que você deseja programar essa chave para exclusão no <number of days> dias..

  9. Escolha Schedule deletion.

O status da CMK muda para Exclusão pendente.

Para cancelar a exclusão de chaves

  1. Abra o console do AWS KMS em https://console.aws.amazon.com/kms.

  2. Para alterar a região do AWS, use o seletor Region (Região) no canto superior direito da página.

  3. No painel de navegação, escolha Customer managed keys (Chaves gerenciadas de cliente).

  4. Marque a caixa de seleção ao lado da CMK que você deseja recuperar.

  5. Escolha Key actions (Ações de chave), Cancel key deletion (Cancelar exclusão da chave).

O status da CMK muda de Exclusão pendente para Desabilitado. Para usar a CMK, é necessário habilitá-la.

Programar e cancelar a exclusão de chaves (AWS CLI)

Use o comando aws kms schedule-key-deletion para programar a exclusão de chaves da AWS CLI, conforme mostrado no exemplo a seguir.

$ aws kms schedule-key-deletion --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --pending-window-in-days 10

Quando usada com êxito, a AWS CLI retorna o resultado como a saída mostrada no exemplo a seguir:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "DeletionDate": 1442102400.0 }

Use o comando aws kms cancel-key-deletion para cancelar a exclusão de chaves da AWS CLI, conforme mostrado no exemplo a seguir.

$ aws kms cancel-key-deletion --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

Quando usada com êxito, a AWS CLI retorna o resultado como a saída mostrada no exemplo a seguir:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

O status da CMK muda de Exclusão pendente para Desabilitado. Para usar a CMK, é necessário habilitá-la.

Programar e cancelar a exclusão de chaves (AWS SDK for Java)

O exemplo a seguir demonstra como programar uma CMK para exclusão com o AWS SDK for Java. Esse exemplo requer que você tenha instanciado anteriormente um AWSKMSClient como kms.

String KeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; int PendingWindowInDays = 10; ScheduleKeyDeletionRequest scheduleKeyDeletionRequest = new ScheduleKeyDeletionRequest().withKeyId(KeyId).withPendingWindowInDays(PendingWindowInDays); kms.scheduleKeyDeletion(scheduleKeyDeletionRequest);

O exemplo a seguir demonstra como cancelar uma chave para exclusão com o AWS SDK for Java. Esse exemplo requer que você tenha instanciado anteriormente um AWSKMSClient como kms.

String KeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; CancelKeyDeletionRequest cancelKeyDeletionRequest = new CancelKeyDeletionRequest().withKeyId(KeyId); kms.cancelKeyDeletion(cancelKeyDeletionRequest);

O status da CMK muda de Exclusão pendente para Desabilitado. Para usar a CMK, é necessário habilitá-la.

Adicionar permissões para programar e cancelar a exclusão de chaves

Se você usa políticas do IAM para conceder permissões do AWS KMS, todos os usuários e funções do IAM com acesso de administrador à AWS ("Action": "*") ou com acesso total ao AWS KMS ("Action": "kms:*") já podem programar e cancelar exclusões de chaves para CMKs do AWS KMS. Se você conta apenas com a política de chaves para conceder permissões do AWS KMS, pode ser necessário adicionar mais permissões para que seus usuários e funções do IAM possam excluir CMKs. Para adicionar essas permissões, consulte as etapas a seguir.

Os procedimentos a seguir descrevem como adicionar permissões a uma política de chaves usando o Console de gerenciamento da AWS ou a AWS CLI.

Maneiras de adicionar permissão para programar e cancelar a exclusão de chaves

Adicionar permissões para programar e cancelar a exclusão de chaves (console)

Você pode usar o Console de gerenciamento da AWS para adicionar permissões para programar e cancelar a exclusão de chaves.

  1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service (AWS KMS) em https://console.aws.amazon.com/kms.

  2. Para alterar a região do AWS, use o seletor Region (Região) no canto superior direito da página.

  3. No painel de navegação, escolha Customer managed keys (Chaves gerenciadas de cliente).

  4. Selecione o alias ou o ID de chave da CMK cujas permissões você quer alterar.

  5. Selecione a guia Key policy (Política de chaves). Em Key deletion (Exclusão de chaves), selecione Allow key administrators to delete this key (Permitir que administradores de chaves excluam esta chave) e escolha Save changes (Salvar alterações).

    nota

    Se a opção Allow key administrators to delete this key (Permitir que administradores de chaves excluam esta chave) não for exibida, isso geralmente significa que você modificou essa política principal usando a API do AWS KMS. Nesse caso, atualize manualmente o documento de política de chaves. Adicione as permissões kms:ScheduleKeyDeletion e kms:CancelKeyDeletion à instrução de administradores de chaves ("Sid": "Allow access for Key Administrators") na política de chaves e selecione Save changes (Salvar alterações).

Adicionar permissões para programar e cancelar a exclusão de chaves (AWS CLI)

Você pode usar o AWS Command Line Interface para adicionar permissões para programar e cancelar a exclusão de chaves.

Para adicionar permissão para programar e cancelar a exclusão de chaves

  1. Use o comando aws kms get-key-policy para recuperar a política de chaves existente e, em seguida, salve o documento de política em um arquivo.

  2. Abra o documento de política em um editor de texto de sua preferência, adicione as permissões kms:ScheduleKeyDeletion e kms:CancelKeyDeletion à instrução de política que concede permissões aos administradores de chaves (por exemplo, a instrução de política com "Sid": "Allow access for Key Administrators"). Salve o arquivo. O exemplo a seguir mostra uma declaração de política com essas duas permissões:

    { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSKeyAdmin"}, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }
  3. Use o comando aws kms put-key-policy para aplicar a política de chaves à CMK.