For AI agents: A markdown version of this page is available at https://docs.datadoghq.com/security/code_security/iac_security/iac_rules/cloudformation-aws-amazon-mq-broker-encryption-disabled.md.
A documentation index is available at /llms.txt.
Amazon MQ brokers must have encryption options defined so message data, broker storage, and snapshots are encrypted at rest and protected from unauthorized access if storage media or backups are compromised. In CloudFormation, the AWS::AmazonMQ::Broker resource must include the EncryptionOptions property configured to enable AWS KMS encryption. For example, set KmsKeyId to a customer-managed KMS key or setting UseAwsOwnedKey to true to rely on an AWS-owned key. Resources missing the EncryptionOptions property will be flagged. Use a customer-managed KMS key (KmsKeyId) when you need full control over key rotation and access policies.
Secure configuration example (CloudFormation YAML):
AWSTemplateFormatVersion:"2010-09-09"Description:"Create a basic ActiveMQ broker"Resources:BasicBroker:Type:"AWS::AmazonMQ::Broker"Properties:AutoMinorVersionUpgrade:"false"BrokerName:MyBasicBrokerDeploymentMode:SINGLE_INSTANCEEncryptionOptions:UseAwsOwnedKey:trueEngineType:ActiveMQEngineVersion:"5.15.0"HostInstanceType:mq.t2.microPubliclyAccessible:"true"Users:-ConsoleAccess:"true"Groups:- MyGroupPassword:Ref:"BrokerPassword"Username:Ref:"BrokerUsername"
{"AWSTemplateFormatVersion":"2010-09-09","Description":"Create a basic ActiveMQ broker","Resources":{"BasicBroker":{"Type":"AWS::AmazonMQ::Broker","Properties":{"BrokerName":"MyBasicBroker","DeploymentMode":"SINGLE_INSTANCE","EncryptionOptions":{"UseAwsOwnedKey":true},"EngineType":"ActiveMQ","EngineVersion":"5.15.0","HostInstanceType":"mq.t2.micro","Users":[{"ConsoleAccess":"true","Groups":["MyGroup"],"Password":{"Ref":"BrokerPassword"},"Username":{"Ref":"BrokerUsername"}}],"AutoMinorVersionUpgrade":"false","PubliclyAccessible":"true"}}}}
Non-Compliant Code Examples
AWSTemplateFormatVersion:"2010-09-09"Description:"Create a basic ActiveMQ broker"Resources:BasicBroker:Type:"AWS::AmazonMQ::Broker"Properties:AutoMinorVersionUpgrade:"false"BrokerName:MyBasicBrokerDeploymentMode:SINGLE_INSTANCEEngineType:ActiveMQEngineVersion:"5.15.0"HostInstanceType:mq.t2.microPubliclyAccessible:"true"Users:-ConsoleAccess:"true"Groups:- MyGroupPassword:Ref:"BrokerPassword"Username:Ref:"BrokerUsername"
{"AWSTemplateFormatVersion":"2010-09-09","Description":"Create a basic ActiveMQ broker","Resources":{"BasicBroker":{"Type":"AWS::AmazonMQ::Broker","Properties":{"HostInstanceType":"mq.t2.micro","PubliclyAccessible":"true","Users":[{"ConsoleAccess":"true","Groups":["MyGroup"],"Password":{"Ref":"BrokerPassword"},"Username":{"Ref":"BrokerUsername"}}],"AutoMinorVersionUpgrade":"false","BrokerName":"MyBasicBroker","DeploymentMode":"SINGLE_INSTANCE","EngineType":"ActiveMQ","EngineVersion":"5.15.0"}}}}
1
2
rulesets:- CloudFormation / AWS # Rules to enforce / AWS.
Request a personalized demo
Get Started with Datadog
Ask AI
AI-generated responses may be inaccurate. Verify important info.