Alternar AWS KMS keys - AWS Key Management Service

Alternar AWS KMS keys

As melhores práticas criptográficas desencorajam a reutilização extensiva de chaves de criptografia. Para criar um novo material criptográfico para suas chaves gerenciadas pelo cliente, você pode criar novas chaves do KMS e, em seguida, alterar suas aplicações ou seus aliases para usar essas novas chaves do KMS. Ou você pode habilitar a alternância automática de chaves para uma chave do KMS existente.

Quando você habilita a alternância automática de chaves para uma chave do KMS, o AWS KMS gera um novo material criptográfico para a chave do KMS a cada ano. O AWS KMS também salva todas as versões anteriores do material criptográfico perpetuamente para que possa ser usado para descriptografar dados criptografados por essa chave do KMS. O AWS KMS não exclui nenhum material de chaves alternadas até que você exclua a chave do KMS. Você pode monitorar a alternância do material de chave para suas chaves do KMS no Amazon CloudWatch e AWS CloudTrail.

Quando você usa uma chave do KMS alternada para criptografar dados, o AWS KMS usa o material de chave atual. Quando você usa a chave do KMS alternada para descriptografar texto cifrado, o AWS KMS usa a versão do material de chave que foi usado para criptografá-lo. Você não pode solicitar uma versão específica do material de chave. Como o AWS KMS descriptografa de modo transparente com o material de chave adequado, você pode usar com segurança uma chave alternada do KMS em aplicações e Serviços da AWS sem alterações de código.

No entanto, a alternância automática de chaves não afeta os dados protegidos pela chave do KMS. Ela não alterna as chaves de dados geradas pela chave do KMS, não criptografa novamente quaisquer dados protegidos pela chave do KMS e não reduzirá o impacto de uma chave de dados comprometida.

O AWS KMS só é compatível com a alternância automática de chaves para chaves do KMS de criptografia simétrica com material de chave que o AWS KMS cria. A alternância automática é opcional para chaves do KMS gerenciadas pelo cliente. O AWS KMS sempre alterna o material de chave para chaves do KMS gerenciadas pela AWS a cada ano. A alternância de chaves do KMS de propriedade da AWS varia.

nota

O intervalo de alternância para Chaves gerenciadas pela AWS mudou em maio de 2022. Para obter mais detalhes, consulte Chaves gerenciadas pela AWS.

A alternância de chaves altera apenas o material de chave, que é o segredo criptográfico usado em operações de criptografia. A chave do KMS é o mesmo recurso lógico, independentemente da ocorrência de alterações ou do número de vezes que estas tenham sido feitas no material de chave. As propriedades da chave do KMS não são alteradas, conforme mostrado na imagem a seguir.

A alternância de chaves automática tem os seguintes benefícios:

  • As propriedades da chave do KMS, incluindo seu ID de chave, ARN de chave, região, políticas e permissões, não são alteradas quando há alternância na chave.

  • Não é necessário alterar aplicações ou aliases que fazem referência ao ID de chave ou ARN de chave da chave do KMS.

  • A alternância do material de chave não afeta o uso da chave do KMS em nenhum AWS service (Serviço da AWS).

  • Depois que você habilita a alternância de chaves, o AWS KMS alterna a chave do KMS automaticamente a cada ano. Você não precisa lembrar nem programar a atualização.

Você pode optar por criar uma nova chave do KMS e usá-la em vez da chave do KMS original. Isso tem o mesmo efeito que alternar o material da chave em uma chave do KMS existente e, portanto, normalmente é considerado como alternar manualmente a chave. A alternância manual é uma boa opção quando você deseja controlar a programação da mudança de chaves. Isso também fornece uma maneira de alternar chaves do KMS que não estejam qualificadas para alternância automática de chaves, incluindo chaves do KMS assimétricas, chaves do KMS de Hash-based message authentication code (HMAC – Código de autenticação de mensagem por hash), chaves do KMS em armazenamentos personalizados de chaves e chaves do KMS com material de chave importado.

Alternância de chaves e definição de preço

O AWS KMS cobra uma taxa mensal para cada versão do material de chave mantido para sua chave do KMS. Para obter mais informações, consulte Definição de preço do AWS Key Management Service.

Alternância de chaves e cotas

Cada chave do KMS conta como uma chave ao calcular cotas de recursos de chaves, independentemente do número de versões de material de chave alternadas.

Para obter informações detalhadas sobre chaves de backup e alternância, consulte o Detalhes criptográficos do AWS Key Management Service.

Como funciona a alternância de chaves automática

A alternância de chaves no AWS KMS é uma prática recomendada criptográfica que foi criada para ser transparente e fácil de usar. O AWS KMS é compatível com a alternância automática opcional de chaves somente para chaves gerenciadas pelo cliente.

Gerenciamento do material de chave

O AWS KMS retém todo o material de chave de uma chave do KMS, mesmo que a alternância de chaves esteja desabilitada. O AWS KMS exclui o material da chave somente quando você exclui a chave do KMS.

Uso do material de chave

Quando você usa uma chave do KMS alternada para criptografar dados, o AWS KMS usa o material de chave atual. Quando você usa a chave do KMS alternada para descriptografar texto cifrado, o AWS KMS usa a mesma versão do material de chave que foi usado para criptografá-lo. Você não pode solicitar uma versão específica do material de chave.

Diferenças no gerenciador de chaves

As opções de alternância automática de chaves variam de acordo com o gerenciador de chaves.

Chaves gerenciadas pelo cliente

A alternância automática de chaves é desabilitada por padrão para chaves gerenciadas pelo cliente, mas usuários autorizados podem habilitá-la e desabilitá-la. Quando você habilita (ou reabilita) a alternância automática de chaves, o AWS KMS alterna automaticamente a chave do KMS 1 ano (aproximadamente 365 dias) após a data de habilitação e a cada ano depois disso.

Chaves gerenciadas pela AWS

O AWS KMS alterna automaticamente as Chaves gerenciadas pela AWS a cada ano (aproximadamente 365 dias). Não é possível habilitar ou desabilitar a alternância de chaves para Chaves gerenciadas pela AWS.

nota

Em maio de 2022, o AWS KMS alterou o cronograma de alternância para Chaves gerenciadas pela AWS de a cada 3 anos (aproximadamente 1.095 dias) para a cada ano (aproximadamente 365 dias).

Novas Chaves gerenciadas pela AWS são alternadas automaticamente 1 ano após serem criadas e aproximadamente a cada ano depois disso.

Chaves gerenciadas pela AWS existentes são alternadas automaticamente 1 ano após sua alternância mais recente e a cada ano depois disso.

Chaves pertencentes à AWS

Não é possível habilitar ou desabilitar a alternância de chaves para Chaves pertencentes à AWS. A estratégia de alternância de chaves para uma Chave pertencente à AWS é determinada pelo serviço da AWS que cria e gerencia a chave. Para obter detalhes, consulte o tópico Criptografia em repouso, no manual do usuário ou no guia do desenvolvedor do serviço.

Tipos de chave do KMS com suporte

A alternância automática de chaves só é compatível com chaves do KMS de criptografia simétrica com material de chave que o AWS KMS gera (origem = AWS_KMS).

A alternância automática de chaves não tem suporte com os seguintes tipos de chaves do KMS, mas você pode alternar essas chaves do KMS manualmente.

Chaves de várias regiões

Você pode habilitar e desabilitar a alternância automática de chaves parachaves de várias regiões. Você define a propriedade apenas na chave primária. Quando o AWS KMS sincroniza as chaves, ele copia a configuração de propriedade da chave primária para suas chaves de réplica. Quando o material de chave da chave primária é alternado, o AWS KMS copia automaticamente esse material para todas as suas chaves de réplica. Para obter mais detalhes, consulte Alternância de chaves de várias regiões.

Chaves do KMS desabilitadas

Enquanto uma chave do KMS permanece desabilitada, o AWS KMS não a alterna. No entanto, o status da alternância de chaves não muda, e você não pode alterá-lo enquanto a chave do KMS está desabilitada. Quando a chave do KMS for reabilitada, se o material de chave tiver mais de 1 ano de idade, o AWS KMS a alternará imediatamente e a cada ano depois disso. Se o material de chave tiver menos de 1 ano de idade, o AWS KMS retomará a programação original da alternância de chaves.

Chaves do KMS com exclusão pendente

Enquanto uma chave do KMS permanece com exclusão pendente, o AWS KMS não a alterna. O status da alternância de chaves é definido como false e você não pode alterá-lo enquanto a exclusão estiver pendente. Se a exclusão for cancelada, o status da alternância de chaves anterior será restaurado. Se o material de chave tiver mais de 1 ano de idade, o AWS KMS a alternará imediatamente e a cada ano depois disso. Se o material de chave tiver menos de 1 ano de idade, o AWS KMS retomará a programação original da alternância de chaves.

Serviços da AWS

É possível habilitar a alternância automática de chaves nas chaves gerenciadas pelo cliente que você usa para criptografia no lado do servidor em serviços da AWS. A alternância anual é transparente e compatível com os serviços da AWS.

Monitoramento da alternância de chaves

Quando o AWS KMS alterna automaticamente o material de chave para uma Chave gerenciada pela AWS ou uma chave gerenciada pelo cliente, ele grava um evento KMS CMK Rotation no Amazon CloudWatch Events e um evento RotateKey no seu log do AWS CloudTrail. É possível usar esses registros para verificar se a chave do KMS foi alternada.

Consistência eventual

A alternância automática de chaves está sujeita aos mesmos efeitos de consistência final de outras operações de gerenciamento do AWS KMS. Pode haver um pequeno atraso antes que o novo material de chave esteja disponível no AWS KMS. Porém, o material de chave alternante não causa interrupção ou atraso em operações de criptografia. O material de chave atual será usado em operações de criptografia até que o novo material de chave esteja disponível no AWS KMS. Quando o material chave para uma chave de várias regiões é alternado automaticamente, o AWS KMS usa o material de chave atual até que o novo material de chave esteja disponível em todas as regiões com uma chave de várias regiões relacionada.

Como habilitar e desabilitar a alternância de chaves automática

Usuários autorizados podem usar o console do AWS KMS e a API do AWS KMS para habilitar e desabilitar a alternância automática de chaves e visualizar o status da alternância de chaves.

Quando você habilita a alternância automática de chaves, o AWS KMS alterna o material de chave da chave do KMS 1 ano após a data de habilitação e a cada ano depois disso.

Habilitar e desabilitar a alternância de chaves (console)

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

  2. Para alterar a Região da AWS, use o Region selector (Seletor de regiões) no canto superior direito da página.

  3. No painel de navegação, escolha Customer managed keys (Chaves gerenciadas pelo cliente). (Não é possível habilitar ou desabilitar a alternância de Chaves gerenciadas pela AWS. Elas são alternadas automaticamente a cada ano.)

  4. Escolha o alias ou ID de chave de uma chave do KMS.

  5. Selecione a guia Key rotation (Rotação de chaves).

    A guia Key rotation (Alternância de chaves) só é exibida na página de detalhes de chaves do KMS de criptografia simétrica com material de chave gerado pelo AWS KMS (cuja Origin (Origem) é AWS_KMS), incluindo chaves do KMS de criptografia simétrica de várias regiões.

    Não é possível alternar automaticamente chaves do KMS assimétricas, chaves do KMS de HMAC, chaves do KMS com material de chave importado nem chaves do KMS em armazenamentos personalizados de chave. No entanto, é possível alterná-las manualmente.

  6. Marque ou desmarque a caixa de seleção Automatically rotate this KMS key every year (Alternar esta chave do KMS automaticamente todos os anos).

    nota

    Se uma chave do KMS estiver desabilitada ou com exclusão pendente, a caixa de seleção Automatically rotate this KMS key every year (Alternar esta chave do KMS automaticamente todos os anos) estará vazia, e você não pode alterá-la. O status da alternância de chaves é restaurado quando você habilita a chave do KMS ou cancela a exclusão. Para obter mais detalhes, consulte Como funciona a alternância de chaves automática e Estados das chaves do AWS KMS.

  7. Escolha Save (Salvar).

Habilitar e desabilitar a alternância de chaves (API do AWS KMS)

Você pode usar a API do AWS Key Management Service (AWS KMS) para habilitar e desabilitar a alternância automática de chaves e exibir o status atual da alternância de qualquer chave gerenciada pelo cliente. Estes exemplos usam a AWS Command Line Interface (AWS CLI), mas você pode usar qualquer linguagem de programação compatível.

A operação EnableKeyRotation habilita a alternância de chaves automática para a chave do KMS especificada. A operação DisableKeyRotation a desativa. Para identificar a chave do KMS nessas operações, use seu ID de chave ou ARN de chave. Por padrão, a mudança de chaves está desabilitada nas chaves gerenciadas de cliente.

O exemplo a seguir habilita a alternância de chaves na chave do KMS de criptografia simétrica especificada e usa a operação GetKeyRotationStatus para ver o resultado. Ele desabilita a alternância de chaves e, novamente, usa GetKeyRotationStatus para ver a alteração.

$ aws kms enable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab $ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyRotationEnabled": true } $ aws kms disable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab $ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyRotationEnabled": false }

Alterar chaves manualmente

Talvez você queira criar uma nova chave do KMS e usá-la no lugar de uma chave do KMS atual, em vez de habilitar a alternância de chaves automática. Quando a nova chave do KMS tem material criptográfico diferente daquele da chave do KMS atual, usar a nova chave do KMS tem o mesmo efeito de alterar o material de chave em uma chave do KMS existente. O processo de substituir uma chave do KMS por outra é conhecido como alternância manual de chaves.

Você pode preferir alternar as chaves manualmente, para controlar a frequência da mudança. Isso também é uma boa solução para chaves do KMS que não estão qualificadas para alternância automática de chaves, como chaves do KMS assimétricas, chaves do KMS de HMAC, chaves do KMS em armazenamentos personalizados de chaves e chaves do KMS com material de chave importado.

nota

Quando você começar a usar a nova chave do KMS, mantenha a chave do KMS original habilitada para que o AWS KMS possa descriptografar os dados que a chave do KMS original criptografou.

Ao alternar as chaves do KMS manualmente, você precisa atualizar as referências ao ARN ou ao ID da chave do KMS nas suas aplicações. Aliases, que associam um nome amigável a uma chave do KMS, tornam esse processo mais fácil. Use um alias para fazer referência a uma chave do KMS em suas aplicações. Quando quiser alterar a chave do KMS utilizada pela aplicação, em vez de editar o código da aplicação, altere a chave do KMS de destino do alias. Para obter mais detalhes, consulte Usar aliases em suas aplicações.

nota

Os aliases que apontam para a versão mais recente de uma chave KMS alternada manualmente são uma boa solução para as operações DescribeKey,Encrypt, GenerateDataKey, GenerateDataKeyPair, GenerateMac e Sign. Aliases não são permitidos em operações que gerenciam chaves KMS, como DisableKey ou ScheduleKeyDeletion.

Ao chamar a operação Decrypt em chaves do KMS de criptografia simétrica alternadas manualmente, omita o parâmetro KeyId do comando. O AWS KMS usa automaticamente a chave KMS que criptografou o texto cifrado.

O parâmetro KeyId é obrigatório ao chamar Decrypt ou Verify com uma chave do KMS assimétrica ou ao chamar VerifyMac com uma chave do KMS do KMS. Essas solicitações falham quando o valor do parâmetro KeyId é um alias que não aponta mais para a chave do KMS que executou a operação criptográfica, como quando uma chave é alternada manualmente. Para evitar esse erro, você deve rastrear e especificar a chave KMS correta para cada operação.

Para alterar a chave do KMS de destino de um alias, use a operação UpdateAlias na API do AWS KMS. Por exemplo, este comando atualiza o alias alias/TestKey para apontar para uma nova chave do KMS. Como a operação não retorna uma saída, o exemplo usa a operação ListAliases para mostrar que o alias agora está associado a uma chave do KMS diferente e que o campo LastUpdatedDate está atualizado. O comando ListAliases usa o parâmetro query na AWS CLI para obter somente o alias alias/TestKey.

$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/TestKey`]' { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestKey", "AliasName": "alias/TestKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1521097200.123, "LastUpdatedDate": 1521097200.123 }, ] } $ aws kms update-alias --alias-name alias/TestKey --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 $ aws kms list-aliases --query 'Aliases[?AliasName==`alias/TestKey`]' { "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestKey", "AliasName": "alias/TestKey", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1521097200.123, "LastUpdatedDate": 1604958290.722 }, ] }