Amazon SQS queues should be encrypted at rest
Checks that the SQS queue is encrypted at rest with SQS-managed keys (SSE-SQS) or an AWS KMS key (SSE-KMS), which protects message bodies stored on disk from unauthorized access. Only messages sent after encryption is turned on are encrypted; a backlog already in the queue stays unencrypted.
- service
- SQS
- severity
- Medium
- scope
- evaluated in every region
How to fix it
- Can break clients: Once the queue is encrypted, it refuses anonymous requests and any request not made over HTTPS with Signature Version 4.
In the console
Simple Queue Service → Queues → the queue → Edit → Encryption
- Server-side encryption
- Enabled, with Amazon SQS key (SSE-SQS) or AWS Key Management Service key (SSE-KMS)
- KMS key
- For SNS, S3 or EventBridge senders, a customer managed key granting them kms:GenerateDataKey and kms:Decrypt
With the AWS CLI
aws sqs set-queue-attributes --queue-url <queue-url> --attributes SqsManagedSseEnabled=true --region <region>With Terraform
resource "aws_sqs_queue" "this" {
name = var.queue_name
sqs_managed_sse_enabled = true
}
See which of your accounts this check is failing on.
Book a live scan