SQS queue should have a dead-letter queue configured
Medium
AWS
General
aws-sqs-queue-sqs-queue-dead-letter-queue
Applies to
AWS::SQS::Queue
What CGPulse checks
A resource passes this rule when deadLetterTargetArn must be set true. Anything else is reported as a finding with the evaluated property value attached as evidence.
How to fix it
Configure a dead-letter queue to capture failed messages after max receive count. In AWS Console: SQS > Queues > select queue > Edit > configure Dead-letter queue. See: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html
Terraform
resource "aws_sqs_queue" "{name}" {
redrive_policy = jsonencode({
deadLetterTargetArn = aws_sqs_queue.dlq.arn
maxReceiveCount = 5
})
}
Compliance frameworks
Is your environment compliant with this rule?
CGPulse checks it — and 621 others — against your Azure and AWS accounts with read-only access.
Related AWS rules
- ACM certificate must be eligible for renewal
- ACM certificate must be in issued status
- Amplify app should have basic auth disabled for production
- API Gateway REST API must have an endpoint configuration
- API Gateway V2 API must be properly configured
- App Runner service must have encryption enabled
- AppSync API must have logging configured
- AppSync API must have X-Ray tracing enabled