DEV Community

Rodrigo Fernandes
Rodrigo Fernandes

Posted on

AWS KMS - Key Material

Anotações sobre o AWS KMS - Key Material para ajudar na preparação das certificações AWS.

Até o momento as anotações são para as certificações abaixo:

Image description


Definição do fornecedor

A Key Material é uma propriedade da Key do KMS que identifica a origem do Key Material na Key do KMS.


Anotações gerais

  • External
  • O download expira em até 24 horas
  • Você escolhe a origem do Key Material ao criar a Key do KMS 
  • Não é possível alterá-la, extrair e visualizar
  • Não tem rotação automática
  • Select o wrapping algoritmo
  • Download key
  • Custom key store (CloudHSM)
  • O key material não pode ser excluído; você deve excluir a Key KMS.
  • Encrypted key material and import token
  • Pode setar a expiração da key - 7 a 30 dias
  • Deleção manual da key material importada
  • Cria-se uma nova CMK e altere o alias para a nova utilizando cli - aws kms update-alias
  • KMS Key --> Key Meta-Data + Key Material
  • Por padrão o Key Material é AWS KMS
  • O CMK também contém o Key Material usado para criptografar e descriptografar dados.
  • Ao importar Key Material, você pode especificar uma data de expiração.
  • Pode excluir sob-demanda

Permissões para importar Key Material

Para criar e gerenciar Keys do KMS com Key Material importado

  • kms:GetParametersForImport
  • kms:ImportKeyMaterial
  • kms:DeleteImportedKeyMaterial

Para **criar Keys do KMS com Key Material importado**

  • kms:CreateKey

Para limitar essa permissão a Key do KMS com Key Material 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"
    }
  }
}
Enter fullscreen mode Exit fullscreen mode
  • kms:GetParametersForImport

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

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

Para reimportar o Key Material importada, a entidade principal precisa das permissões kms:GetParametersForImport e kms:ImportkeyMaterial.

Para excluir o Key Material importada, a entidade principal precisa da permissão kms:DeleteImportedKeyMaterial.

Por exemplo, para permitir que o exemplo KMSAdminRolegerencie todos os aspectos de uma Key do KMS com Material importado, inclua uma declaração de política de Keys como a seguinte na política de Keys 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"
  ]  
}
Enter fullscreen mode Exit fullscreen mode

Comandos para importar Key Material

openssl rand -out PlaintextKeyMaterial.bin 32
Enter fullscreen mode Exit fullscreen mode
openssl pkeyutl -in PlaintextKeyMaterial.bin -out EncryptedKeyMaterial.bin -inkey PublicKey.bin -keyform DER -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256
Enter fullscreen mode Exit fullscreen mode

Key Material Origin

Documentação oficial

AWS_KMS
O AWS KMS cria e gerencia o Key Material para a Key do KMS no AWS KMS. Esse é o valor padrão e o recomendado para a maioria das Key do KMS.

EXTERNAL
A Key do KMS tem Key Material importado. Quando uma Key do KMS é criada com uma origem de Key Material External, ela não tem Key Material.
Mais tarde, você poderá importar Key Material para a Key do KMS. Ao usar material de Key importada, é necessário proteger e gerenciar esse Key Material fora do AWS KMS, incluindo a substituição do Key Material se ele expirar.

AWS_CLOUDHSM
O AWS KMS criou o Key Material para a Key do KMS no cluster do AWS CloudHSM associado ao seu armazenamento personalizado de Key .


Importar Key Material

Documentação oficial

Quando uma Key do KMS é criada com uma origem de Key Material External, ela não tem Key Material.

  • Você pode importar Key Material simétrica de 256 bits de sua infraestrutura de gerenciamento de Key para o AWS KMS e usá-lo como qualquer outra Key do AWS KMS.
  • Agenda a exclusão de 7 a 30 dias, exclua manualmente o key material importado

Como importar novamente o mesmo Key Material

  1. Utilize uma chave do KMS existente em vez de criar uma nova.
  2. Se a chave do KMS importou o Key Material importado, você deve excluir o Key Material importado existente antes de importá-lo novamente.
  3. Ao reimportar o Key Material, você pode alterar o modelo de expiração e data de expiração.

Image description

Referências


Quando uma Master Key (CMK) c/ Key Material está com problemas na importação

Documentação oficial

  • Key Material não é uma Key simétrica de 256bit
  • Demorou mais de 24 horas e o token expirou

Quando uma Master Key (CMK) c/ Key Material importado está prestes a expirar

Documentação oficial

  • Criptografe com o mesmo Key Material e reimporte o Key Material para a mesma CMK
  • A Rotation Key altera apenas o Key Material , que é o segredo criptográfico usado nas operações de criptografia. A Key KMS é o mesmo recurso lógico, independentemente de quantas vezes seu Key Material seja alterado. As propriedades da Key KMS não mudam

Image description


Importar Key Material em Keys do AWS KMS

Documentação oficial

  1. Criar uma chave do KMS de criptografia simétrica sem Key Material: 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 Key Material importado e evita que o AWS KMS gere Key Material para a chave do KMS. Em uma etapa posterior, você importará seu próprio Key Material 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 Key Material para o AWS KMS.

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

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

  5. 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 Keys do KMS em operações de criptografia.

Top comments (0)