Importar material de chaves em chaves do AWS KMS - AWS Key Management Service

Importar material de chaves em chaves do AWS KMS

É possível criar uma AWS KMS keys (chave do KMS) com material de chave que você fornece.

Uma chave do KMS é uma representação lógica de uma chave de criptografia. Os metadados de uma chave do KMS incluem o ID do material de chave usado para criptografar e descriptografar dados. Quando você cria uma chave do KMS, por padrão, o AWS KMS gera o material de chave para essa chave do KMS. No entanto, você pode criar uma chave do KMS sem material de chave e importar o seu próprio material de chaves para essa chave do KMS, um recurso normalmente conhecido como "traga sua própria chave" (BYOK).

nota

O AWS KMS não é compatível com a descriptografia de texto cifrado do AWS KMS fora do AWS KMS, mesmo que o texto cifrado tenha sido criptografado em uma chave do KMS com material de chave importado. O AWS KMS não publica o formato de texto cifrado exigido por essa tarefa, e o formato pode ser alterado sem aviso prévio.

O material de chave importado só é compatível com chaves do KMS de criptografia simétrica em armazenamentos de chaves do AWS KMS, incluindo chaves do KMS de criptografia simétrica de várias regiões. Ele não é compatível com chaves do KMS assimétricas, chaves do KMS de Hash-based message authentication code (HMAC – Código de autenticação de mensagem por hash) ou chaves do KMS em armazenamentos personalizados de chaves.

Ao usar o material de chaves importadas, você continua responsável pelo material de chaves enquanto permite que o AWS KMS use uma cópia dele. Você pode optar por fazer isso por um ou mais dos seguintes motivos:

  • Para comprovar que você gerou o material de chaves usando uma origem de entropia que atende aos seus requisitos.

  • Para usar o material de chaves de sua própria infraestrutura com serviços da AWS, e usar o AWS KMS para gerenciar o ciclo de vida desse material de chaves na AWS.

  • Para definir um horário de validade do material de chaves na AWS e para excluí-lo manualmente, mas também para disponibilizá-lo novamente no futuro. Por outro lado, programar a exclusão de chaves exige um período de espera de 7 a 30 dias, após os quais você não pode recuperar a chave do KMS excluída.

  • Para possuir a cópia original do material de chave e mantê-lo fora da AWS para durabilidade adicional e recuperação de desastres durante o ciclo de vida completo do material de chave.

O material de chave importado é compatível somente com chaves do KMS de criptografia simétrica em armazenamentos de chaves do AWS KMS, incluindo chaves simétricas de várias regiões do KMS. Ele não é compatível com chaves do KMS assimétricas, chaves do KMS de HMAC ou chaves do KMS em armazenamentos personalizados de chaves.

É possível monitorar o uso e o gerenciamento de uma chave do KMS com material de chave importado. O AWS KMS registra uma entrada no log do AWS CloudTrail quando você cria a chave do KMS, baixa a chave pública e importa o token e importa o material de chave. O AWS KMS também registra uma entrada quando você exclui manualmente o material de chave importado ou quando o AWS KMS exclui o material de chave expirado.

Para obter mais informações sobre diferenças importantes entre as chaves do KMS com material de chaves importado e aquelas com material de chaves gerado pelo AWS KMS, consulte Sobre o material de chave importada.

Regiões

O material de chaves importado é compatível com todas as Regiões da AWS às quais o AWS KMS oferece suporte. Os requisitos para o material de chaves importado são diferentes nas regiões da China. Para obter detalhes, consulte Importar o material de chave — etapa 3: Criptografar o material de chave.

Sobre o material de chave importada

Antes de decidir importar o material de chaves para o AWS KMS, você deve entender as seguintes características do material de chaves importadas.

Você gera o material de chave

Você é responsável por gerar o material de chaves usando uma origem de aleatoriedade que atende aos seus requisitos de segurança. O material de chave importado deve ser uma chave de criptografia simétrica de 256 bits, exceto nas regiões da China, em que ele deve ser uma chave de criptografia simétrica de 128 bits.

Você pode excluir o material de chave.

Você pode excluir material de chave importado de uma chave do KMS, tornando imediatamente a chave KMS inutilizável. Além disso, ao importar o material de chave para uma chave do KMS, é possível determinar se a chave expira e definir sua data de validade. Quando a data de validade chegar, o AWS KMS exclui o material de chave. Sem o material de chave, a chave do KMS não pode ser usada em nenhuma operação criptográfica. Para restaurar a chave, é necessário reimportar o mesmo material de chave para a chave.

Não é possível alterar o material de chave

Quando você importa o material de chave para uma chave do KMS, esta é associada permanentemente a esse material de chave. Você pode reimportar o mesmo material de chaves, mas não pode importar outro material de chaves para essa chave do KMS. Além disso, não é possível habilitar a alternância automática de chaves de uma chave do KMS com material de chaves importado. No entanto, você pode alternar manualmente uma chave do KMS com material de chave importado.

Não é possível alterar a origem do material de chave

As chaves do KMS projetadas para material de chave importado têm um valor de origem de EXTERNAL que não pode ser alterado. Não é possível converter uma chave do KMS para material de chave importado para usar material de chave de qualquer outra fonte, incluindo o AWS KMS.

Não é possível descriptografar com nenhuma outra chave do KMS

Quando você criptografa os dados sob uma chave do KMS, o texto cifrado é associado permanentemente à chave do KMS e ao seu material de chave. Ele não pode ser descriptografado com nenhuma outra chave do KMS, incluindo uma chave do KMS diferente com o mesmo material de chave. Este é um recurso de segurança das chaves do KMS.

A única exceção são chaves de várias regiões, que foram projetadas para serem interoperáveis. Para obter mais detalhes, consulte Por que nem todas as chaves do KMS com material de chave importado são interoperáveis?.

Sem portabilidade ou recursos de garantia

Os textos cifrados produzidos pelo AWS KMS não são portáveis. O AWS KMS não é compatível com a descriptografia de texto cifrado do AWS KMS fora do AWS KMS, mesmo que o texto cifrado tenha sido criptografado em uma chave do KMS com material de chave importado. O AWS KMS não publica o formato de texto cifrado exigido por essa tarefa, e o formato pode ser alterado sem aviso prévio.

Além disso, você não pode usar nenhuma ferramenta da AWS, como o AWS Encryption SDK ou a criptografia do lado do cliente do Amazon S3, para descriptografar textos cifrados do AWS KMS.

Como resultado, não é possível usar chaves com material de chave importada para oferecer suporte a acordos de garantia de chave em que um terceiro autorizado com acesso condicional ao material de chave possa descriptografar determinados textos cifrados fora do AWS KMS. Para oferecer suporte à garantia de chave, use o AWS Encryption SDK para criptografar sua mensagem em uma chave que seja independente do AWS KMS.

Você é responsável pela disponibilidade e durabilidade

Você é responsável pela disponibilidade e durabilidade gerais do material de chaves. AWS KMS é criado para manter o material de chaves importado altamente disponível. No entanto, o AWS KMS não mantém a durabilidade do material de chave importada no mesmo nível que o material de chave gerado pelo AWS KMS. Para restaurar o material de chave importado que foi excluído de uma chave do KMS, é necessário manter uma cópia do material de chaves em um sistema controlado por você. Em seguida, você pode importá-lo novamente para a chave do KMS..

Essa diferença é importante nos seguintes casos:

  • Ao definir um tempo de validade para o material de chave importado, o AWS KMS exclui esse material depois que ele expira. O AWS KMS não exclui a chave do KMS ou seus metadados. Você pode criar um alarme do Amazon CloudWatch que envia uma notificação quando o material de chaves importado estiver se aproximando da data de expiração.

    Você não pode excluir o material de chave gerado pelo AWS KMS para uma chave do KMS nem definir o material de chave do AWS KMS para expirar, embora possa alterná-lo.

  • Quando você exclui manualmente o material de chave importado, o AWS KMS exclui esse material, mas não exclui a chave do KMS ou seus metadados. Por outro lado, programar a exclusão de chaves exige um período de espera de 7 a 30 dias, após o qual o AWS KMS exclui permanentemente a chave do KMS, seus metadados e o material de chave.

  • No improvável evento de determinadas falhas regionais afetarem o AWS KMS (tais como uma queda de energia), o AWS KMS não poderá restaurar automaticamente seu material de chave importado. No entanto, o AWS KMS pode restaurar a chave do KMS e seus metadados.

Permissões para importar material de chave

Para criar e gerenciar chaves do KMS com material de chave importado, o usuário precisa de permissão para as operações nesse processo. Você pode fornecer as permissões kms:GetParametersForImport, kms:ImportKeyMaterial e kms:DeleteImportedKeyMaterial na política de chaves ao criar a chave do KMS. No console do AWS KMS, essas permissões são adicionadas automaticamente para administradores de chaves quando você cria uma chave com uma origem externa de material de chave.

Para criar chaves do KMS com material de chave importado, a entidade principal precisa das permissões a seguir.

  • kms:CreateKey (política do IAM)

    • Para limitar essa permissão a chaves do KMS com material de chave importado, use a condição de política kms:KeyOrigin com um valor de EXTERNAL.

      { "Sid": "CreateKMSKeysWithoutKeyMaterial", "Effect": "Allow", "Resource": "*", "Action": "kms:CreateKey", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL" } } }
  • kms:GetParametersForImport (política de chaves ou do IAM)

    • Para limitar essa permissão a solicitações que usem um algoritmo de quebra automática específico e uma especificação de chave de quebra, use as condições de política kms:WrappingAlgorithm e kms:WrappingKeySpec.

  • kms:ImportKeyMaterial (política de chaves ou do IAM)

    • Para permitir ou proibir material de chave que expire e controlar a data de validade, use as condições de política kms:ExpirationModel e kms:ValidTo.

Para reimportar o material de chave importada, a entidade principal precisa das permissões kms:GetParametersForImport e kms:ImportkeyMaterial.

Para excluir o material de chave importada, a entidade principal precisa da permissão kms:DeleteImportedKeyMaterial.

Por exemplo, para permitir que o exemplo KMSAdminRole gerencie todos os aspectos de uma chave do KMS com material de chave importado, inclua uma declaração de política de chaves como a seguinte na política de chaves da chave do KMS.

{ "Sid": "Manage KMS keys with imported key material", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole" }, "Action": [ "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:DeleteImportedKeyMaterial" ] }

Como importar o material de chave

A visão geral a seguir explica o processo para importar seu material de chaves para o AWS KMS. Para obter mais detalhes sobre cada etapa no processo, consulte o tópico correspondente.

  1. Criar uma chave do KMS de criptografia simétrica sem material de chave: a especificação de chave deve ser SYMMETRIC_DEFAULT e a origem deve ser EXTERNAL. Uma origem de chave de EXTERNAL indica que a chave foi projetada para material de chave importado e evita que o AWS KMS gere material de chave para a chave do KMS. Em uma etapa posterior, você importará seu próprio material de chave para essa chave do KMS.

  2. Baixar a chave pública e o token de importação – depois de concluir a etapa 1, baixe uma chave publica e um token de importação. Esses itens protegem a importação de seu material de chaves para o AWS KMS.

  3. Criptografar o material de chaves – use a chave pública baixada na etapa 2 para criptografar o material de chaves que você criou no seu próprio sistema.

  4. Importar o material de chaves – carregue o material de chave criptografado que você criou na etapa 3 e o token de importação que você baixou na etapa 2.

    Quando a operação de importação é concluída com êxito, o estado da chave KMS muda de PendingImport para Enabled. Agora, você pode usar suas chaves do KMS em operações de criptografia.

O AWS KMS registra uma entrada no log do AWS CloudTrail quando você cria a chave do KMS, baixa a chave pública e importa o token e importa o material de chave. O AWS KMS também registra uma entrada quando você exclui o material de chave importado ou quando o AWS KMS exclui o material de chave expirado.

Como importar novamente o material de chave

Se você gerencia uma chave do KMS com material de chaves importado, talvez seja necessário importar novamente o material de chave. Você pode reimportar o material da chave para substituir o material de chaves expirado ou excluído. Você também pode reimportar o material chave para alterar o modelo de expiração ou a data de validade do material da chave.

Você deve importar novamente o mesmo material de chave importado originalmente para a chave do KMS. Não é possível importar outro material de chave para uma chave do KMS. Além disso, o AWS KMS não pode criar o material de chave para uma chave do KMS criada sem esse material.

Para importar novamente um material de chaves, use o mesmo procedimento que você usou para importar o material de chaves na primeira vez, com as seguintes exceções.

  • Utilize uma chave do KMS existente em vez de criar uma nova. Você pode ignorar a Etapa 1 do procedimento de importação.

  • Se a chave do KMS importou o material de chave importado, você deve excluir o material de chave importado existente antes de importá-lo novamente.

  • Ao reimportar o material de chave, você pode alterar o modelo de expiração e data de expiração.

Cada vez que você importa o material de chave para uma chave do KMS, é necessário baixar e usar uma nova chave de empacotamento e token de importação da chave do KMS. O procedimento de empacotamento não afeta o conteúdo do material de chave, portanto você pode usar diferentes chaves de empacotamento (e diferentes tokens de importação) para importar o mesmo material de chave.

Como identificar chaves do KMS com material de chave importado

Quando você cria uma chave do KMS sem material de chave, o valor da propriedade Origin dessa chave do KMS é EXTERNAL e não pode ser alterado. Ao contrário do key state (estado da chave), o valor Origin não depende da presença ou ausência de material de chave.

Você pode usar o valor de origem EXTERNAL para identificar chaves do KMS projetadas para material de chave importado. Você pode visualizar o status de conexão no console do AWS KMS ou usando a operação DescribeKey. Também é possível exibir as propriedades do material de chave, como se e quando ela expira, usando o console ou as APIs.

Para identificar chaves do KMS com material de chave importado (console)

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

  2. Para alterar a Região da AWS, use o seletor de regiões no canto superior direito da página.

  3. Use uma das seguintes técnicas para visualizar a propriedade Origin das suas chaves do KMS.

    • Para adicionar uma coluna Origin (Origem) à sua tabela de chaves do KMS, no canto superior direito, escolha o ícone Settings (Configurações). Selecione Origin (Origem) e clique em Confirm (Confirmar). A coluna Origin (Origem) facilita a identificação das chaves do KMS com um valor de propriedade de origem EXTERNAL.

    • Para encontrar o valor da propriedade Origin de uma chave do KMS específica, escolha o ID de chave ou a alias da chave do KMS. Em seguida, escolha a guia Configuration (Configuração). As guias estão abaixo da seção General configuration (Configuração geral).

  4. Para exibir informações detalhadas sobre o material de chave, escolha a guia Key material (Material de chave). Essa guia é exibida na página de detalhes apenas para chaves do KMS com material de chave importado.

Para identificar chaves do KMS com material de chave importado (API do AWS KMS)

Utilize a operação DescribeKey. A resposta inclui a propriedade Origin da chave do KMS, o modelo de validade e a data de validade, como mostra o exemplo a seguir.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyMetadata": { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Origin": "EXTERNAL", "ExpirationModel": "KEY_MATERIAL_EXPIRES" "ValidTo": 1568894400.0, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": 1568289600.0, "Enabled": false, "MultiRegion": false, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "PendingImport", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

Criar um alarme do CloudWatch para a expiração do material de chave importado

Você pode criar um alarme do CloudWatch que envie uma notificação quando o material de chave importado em uma chave do KMS estiver se aproximando da data de expiração. Por exemplo, o alarme pode notificá-lo quando faltarem menos de 30 dias para a expiração.

Ao importar o material de chave para uma chave do KMS, é possível especificar opcionalmente uma data e hora quando o material de chave expira. Quando o material de chave perde a validade, o AWS KMS exclui o material de chave e a chave KMS se torna inutilizável. Para usar a chave do KMS novamente, você deve reimportar o material de chave. No entanto, se você reimportar o material de chave antes que ele expire, você poderá evitar interromper processos que usem essa chave do KMS.

Esse alarme usa a métrica SecondsUntilKeyMaterialExpires que o AWS KMS publica no CloudWatch para chaves do KMS com material de chave importado que expira. Cada alarme usa essa métrica para monitorar o material de chave importado para uma chave específica do KMS. Você não pode criar um alarme único para todas as chaves do KMS com material de chave expirado ou um alarme para chaves do KMS que você possa vir a criar futuramente.

Requisitos

Os recursos a seguir são exigidos para um alarme do CloudWatch que monitore a expiração do material de chave importado.

Criar o alarme

Siga as instruções em Criar um alarme do CloudWatch com base em um limite estático usando os seguintes valores obrigatórios. Para outros campos, aceite os valores padrão e forneça os nomes conforme solicitado.

Campo Valor
Selecionar métrica

Escolha KMS e, em seguida, selecione Per-Key Metrics (Métricas por chave).

Selecione a linha com a chave do KMS e a métrica SecondsUntilKeyMaterialExpires. Depois, escolha Select metric (Selecionar métrica).

A lista Metrics (Métricas) exibe a métrica SecondsUntilKeyMaterialExpires apenas para chaves do KMS com material de chave importado que expira. Se você não tiver chaves do KMS com essas propriedades na conta e na região, essa lista estará vazia.

Estatística Mínimo
Período 1 minuto
Tipo de limite Estático
Sempre que… Sempre que o nome da métrica for maior que 1

Excluir o material de chave importada

Você pode excluir o material de chave importado de uma chave do KMS a qualquer momento. Além disso, quando o material de chave importado com data de validade expira, o AWS KMS exclui o material da chave. Nos dois casos, o AWS KMS exclui o material da chave imediatamente, o estado de chave da chave do KMS muda para Importação pendente e a chave do KMS não pode ser usada em nenhuma operação criptográfica.

No entanto, essas ações não excluem a chave KMS. Para usar a chave do KMS novamente, você deverá reimportar o mesmo material de chaves para a chave do KMS. Entretanto, a exclusão de uma chave do KMS é irreversível. Quando você programa a exclusão de chaves e o período de espera necessário expira, o AWS KMS exclui o material de chave e todos os metadados associados à chave do KMS.

Você pode usar o AWS Management Console ou a API do AWS KMS para excluir o material de chaves. Você pode usar a API diretamente, fazendo solicitações HTTP ou usando um AWS SDK, a AWS Command Line Interface (AWS CLI) ou o AWS Tools for PowerShell.

O AWS KMS registra uma entrada no log do AWS CloudTrail quando você exclui o material de chave importada e quando o AWS KMS exclui o material de chave expirado.

Como a exclusão do material de chave afeta os serviços da AWS integrados ao AWS KMS

Quando você exclui o material de chaves, a chave do KMS se torna inutilizável imediatamente. No entanto, as chaves de dados usadas pelos serviços da AWS não são afetadas de imediato. Isso significa que a exclusão do material de chaves pode não afetar imediatamente todos os dados e recursos da AWS protegidos pela chave do KMS, embora eles sejam afetados eventualmente.

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 AWS KMS key (chave do KMS) no AWS KMS para gerar uma chave de dados e usam essa chave de dados para criptografar seus dados. Essas chaves de dados de texto simples persistem na memória, desde que os dados que elas protegem sejam usados ativamente.

Por exemplo, considere este cenário:

  1. Você cria um volume criptografado do EBS, e especifica uma chave do KMS com material de chave importado. O Amazon EBS solicita que o AWS KMS use a chave do KMS 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 a chave do KMS 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 para criptografar a E/S do disco para o volume do EBS. A chave de dados persiste na memória, enquanto o volume do EBS está conectado à instância do EC2.

  3. Você exclui o material de chave importado da chave do KMS, tornando-o inutilizável. Isso não tem efeito imediato na instância de EC2 ou no volume do EBS. O motivo é que o Amazon EC2 está usando a chave de dados em texto simples, e não a chave do KMS, para criptografar toda a E/S de disco enquanto o volume está anexado à instância.

  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. Da próxima vez que o volume do EBS for anexado à instância do EC2, a anexação falhará porque o Amazon EBS não consegue usar a chave do KMS para descriptografar a chave de dados criptografada do volume. Para usar o volume do EBS novamente, você deverá reimportar o mesmo material de chaves para a chave do KMS.

Excluir material de chave (console)

Você pode usar o AWS Management Console para excluir o material de chaves.

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

  4. Faça um dos seguintes procedimentos:

    • Marque a caixa de seleção de uma chave do KMS com material de chave importado. Escolha Key actions (Ações de chave), Delete key material (Excluir material de chaves).

    • Escolha o alias ou ID de uma chave do KMS com material de chave importado. Escolha a guia Key material (Material de chaves) e, em seguida, Delete key material (Excluir material de chave).

  5. Confirme que você deseja excluir o material de chaves e selecione Delete key material (Excluir material de chaves). O status da chave do KMS, que corresponde ao seu estado de chave, muda para Pending import (Importação pendente).

Excluir o material de chave (API do AWS KMS)

Para usar a API do AWS KMS para excluir o material de chaves, envie uma solicitação DeleteImportedKeyMaterial. O exemplo a seguir mostra como fazer isso com a AWS CLI.

Substitua 1234abcd-12ab-34cd-56ef-1234567890ab pelo ID da chave do KMS cujo material de chave você quer excluir. É possível usar o ID de chave ou o ARN da chave do KMS, mas não é possível usar um alias para essa operação.

$ aws kms delete-imported-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab