Com a maior utilização de criptografia em todos os componentes, cresce o desafio de configurar a segurança e acessos entre contas. Especialmente quando é necessário aumentar a resiliência e se fortalecer contra ransonwares. Um dos recursos de proteção mais utilizados é a ‘cópia cofre’ que centraliza backups e snapshots em uma conta dedicada dentro da sua organização. O mecanismo é simples de definir: realizar backup de um componente e copiá-lo para uma conta exclusiva de armazenamento, onde somente pessoas autorizadas podem acessá-los, diminuindo superfície de ataque e evitando o espalhamento de acessos e credenciais.
Quando o componente não possui encriptação (KMS) montar um workflow é relativamente direto. Mas quando há um KMS envolvido – seja em um disco de EC2 encriptado ou um RDS – adicionam-se alguns passos de configuração de segurança que não são triviais e precisam ser executados.
- Se o componente estiver encriptado com o KMS default, o AWS não suporta. Você precisa criar uma chave KMS e encriptar o componente se for fazer a cópia cofre. Se o componente já tiver encriptado com o KMS default será necessário migrá-lo e recriá-lo com a nova chave.
- A conta ‘destino’ precisa ter as seguintes permissões:
"ec2:CopyImage",
"rds:CopyDBSnapshot",
"rds:CopyDBClusterSnapshot"
E a conta ‘origem’:
"ec2:ModifyImageAttribute",
"ec2:ModifySnapshotAttribute",
"rds:ModifyDBSnapshotAttribute",
"rds:ModifyDBClusterSnapshotAttribute"
3. Conta ‘Origem‘: dar permissão na chave KMS que encripta os componentes para a conta destino.
https://us-east-1.console.aws.amazon.com/kms/home
- selecionar KMS em “Customer Managed Keys”
- em “Key Users” adicionar o usuário ou Role desta conta origem que está no Cloud8
- em “Other AWS accounts” adicionar o ID da conta destino
Com esta configuração, a conta “Destino” pode usar este KMS da “Origem” e delegar as permissões aos seus usuários e roles.
4. Na conta “Destino” se certificar que o usuário/role que está cadastrado no Cloud8 pode usar este KMS.
- selecionar KMS em “Customer Managed Keys”
- em “Key Users” adicionar o usuário ou Role desta conta destino que está no Cloud8
- em “Key Users” colocar usuário/role que está no Cloud8
Com esta configuração, a conta “Destino” pode usar o KMS de sua mesma conta “Destino”.
5. Na conta “Destino”, dentro do IAM, criar um Inline Policy e associar ao usuário/role que está configurado no Cloud8.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUseOfTheKey",
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": [
"arn:aws:kms:us-east-1:_____IDORIGEM_____:key/KEYID"
]
},
{
"Sid": "AllowAttachmentOfPersistentResources",
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": [
"arn:aws:kms:us-east-1:____IDORIGEM______:key/KEYID"
],
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": true
}
}
}
]
}
Com esta configuração, a conta destino pode usar a chave “Origem” para descriptografar/criptografar a cópia.