Criptografar dados armazenados em volumes do Amazon EBS para tarefas do Amazon ECS - Amazon Elastic Container Service

Criptografar dados armazenados em volumes do Amazon EBS para tarefas do Amazon ECS

Você pode usar o AWS Key Management Service (AWS KMS) para criar e gerenciar chaves criptográficas que protegem seus dados. Os volumes do Amazon EBS são criptografados em repouso usando o AWS KMS keys. Os seguintes tipos de dados são criptografados:

  • Dados armazenados em repouso no volume

  • E/S de disco

  • Snapshots criados no volume

  • Novos volumes criados de snapshots criptografados

Os volumes do Amazon EBS associados a tarefas podem ser criptografados usando uma Chave gerenciada pela AWS padrão com o alias alias/aws/ebs ou uma chave simétrica gerenciada pelo cliente especificada na configuração do volume. As Chaves gerenciadas pela AWS padrão são exclusivas para cada Conta da AWS por Região da AWS e são criadas automaticamente. Para criar uma chave simétrica gerenciada pelo cliente, siga as etapas em Creating symmetric encryption KMS keys no Guia do desenvolvedor do AWS KMS.

É possível configurar a criptografia do Amazon EBS por padrão para que todos os novos volumes criados e anexados a uma Região da AWS específica sejam criptografados usando a chave do KMS especificada para a sua conta. Para obter mais informações sobre criptografia do Amazon EBS e criptografia por padrão, consulte Criptografia do Amazon EBS no Guia do usuário do Amazon EBS.

Você também pode configurar a criptografia em nível de cluster do Amazon ECS para armazenamento gerenciado do Amazon ECS ao criar ou atualizar um cluster. A criptografia em nível de cluster pode ser usada para criptografar todos os volumes do Amazon EBS associados a tarefas executadas em um cluster específico usando a chave do KMS especificada no nível do cluster. Para obter mais informações sobre como configurar a criptografia no nível do cluster, consulte ManagedStorageConfiguration na Referência da API do Amazon ECS.

É possível configurar uma combinação qualquer dessas chaves. A ordem de precedência das chaves do KMS é a seguinte:

  1. A chave do KMS especificada na configuração do volume. Quando você especifica uma chave KMS na configuração do volume, ela substitui o padrão do Amazon EBS e qualquer chave do KMS especificada no nível do cluster.

  2. A chave do KMS especificada no nível do cluster. Quando você especifica uma chave do KMS para criptografia no nível de cluster do armazenamento gerenciado do Amazon ECS, ela substitui a criptografia padrão do Amazon EBS, mas não substitui nenhuma chave do KMS especificada na configuração do volume.

  3. Criptografia padrão do Amazon EBS. A criptografia padrão se aplica quando você não especifica uma chave do KMS em nível do cluster ou uma chave na configuração do volume. Se você habilitar a criptografia do Amazon EBS por padrão, o padrão será a chave do KMS que você especifica para criptografia por padrão. Caso contrário, o padrão é o Chave gerenciada pela AWS com o alias alias/aws/ebs.

    nota

    Se você definir encrypted como false na configuração do volume, não especificar nenhuma chave do KMS em nível de cluster e habilitar a criptografia do Amazon EBS por padrão, o volume ainda será criptografado com a chave especificada para a criptografia do Amazon EBS por padrão.

Política de chave do KMS gerenciada pelo cliente

Para criptografar um volume do EBS anexado à tarefa usando uma chave gerenciada pelo cliente, você deve configurar sua política de chave do KMS para garantir que o perfil do IAM usado na configuração do volume tenha as permissões necessárias para usar a chave. A política de chave deve incluir as permissões kms:CreateGrant e kms:GenerateDataKey*. As permissões kms:ReEncryptTo e kms:ReEncryptFrom são necessárias para criptografar volumes criados usando snapshots. Se quiser configurar e criptografar somente volumes novos e vazios para anexação, você pode excluir as permissões kms:ReEncryptTo e kms:ReEncryptFrom.

O trecho JSON a seguir mostra as instruções de política de chave que você pode anexar à sua política de chave do KMS. O uso dessas instruções fornecerá acesso ao Amazon ECS para usar a chave para criptografar o volume do EBS. Para usar os exemplos de instruções de política, substitua os user input placeholders por suas próprias informações. Como sempre, configure apenas as permissões de que você precisa.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ecsInfrastructureRole" }, "Action": "kms:DescribeKey", "Resource":"*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ecsInfrastructureRole" }, "Action": [ "kms:GenerateDataKey*", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource":"*", "Condition": { "StringEquals": { "kms:CallerAccount": "aws_account_id", "kms:ViaService": "ec2.region.amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:ebs:id" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ecsInfrastructureRole" }, "Action": "kms:CreateGrant", "Resource":"*", "Condition": { "StringEquals": { "kms:CallerAccount": "aws_account_id", "kms:ViaService": "ec2.region.amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:ebs:id" }, "Bool": { "kms:GrantIsForAWSResource": true } } }

Para obter mais informações sobre políticas e permissões de chave, consulte Key policies in AWS KMS e AWS KMS permissions no Guia do desenvolvedor do AWS KMS. Para solucionar problemas de anexação de volumes do EBS relacionados às permissões de chave, consulte Solução de problemas de anexações de volumes do Amazon EBS às tarefas do Amazon ECS .