Data encryption at rest

One of the most important parts of any architecture is data protection and encryption, when used correctly, can provide an additional layer of protection. Following recommendations from security pillar of Well Architected Framework, we have to encrypt storage types by way of rendering it unintelligible to unauthorized access
For this, AWS KMS helps you to manage encryption keys and integrates with many AWS services, like S3 or EBS. For this cases, you can apply server-side encryption in two ways
By console:
Go to EC2 console -» EBS Encryption

And go to Manage

On S3, select the bucket and go to Properties

Select Edit to modify encryption configuration and enable Server-Side Encryption

At this point, you can choose to use an AWS managed key or create another KMS key. Also you can enable bucket key to reduce calls to KMS as well as to reduce KMS costs
If you want to apply it with IaC (with terraform in this case):
resource "aws_s3_bucket" "MyBucket" {
bucket = "my-bucket-name"
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "aws:kms"
kms_master_key_id = aws_kms_key.MyKMSKey.arn
}
}
}
}
resource "aws_ebs_encryption_by_default" "MyVolume" {
enabled = true
} If you find it interesting and want to go deeper into the subject, you can read Ken Beer (General Manager AWS KMS) about the importance of encryption in this blog

Ezequiel Domenech DevOps Engineer Teracloud
If you are interested in learning more about our #TeraTips or our blog's content, we invite you to see all the content entries that we have created for you and your needs.