turbot/steampipe-mod-terraform-aws-compliance

Control: MQ Broker should use correct engine version for their engine type

Description

This control checks whether the MQ Broker uses the correct engine version for their engine type.

Usage

Run the control in your terminal:

powerpipe control run terraform_aws_compliance.control.mq_broker_currect_broker_version

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run terraform_aws_compliance.control.mq_broker_currect_broker_version --share

SQL

This control uses a named query:

select
address as resource,
case
when ((attributes_std ->> 'engine_type') = 'ActiveMQ' and (regexp_split_to_array(attributes_std ->> 'engine_version', '\.')::int[] >= regexp_split_to_array('5.16', '\.')::int[])) then 'ok'
when ((attributes_std ->> 'engine_type') = 'RabbitMQ' and (regexp_split_to_array(attributes_std ->> 'engine_version', '\.')::int[] >= regexp_split_to_array('3.8', '\.')::int[])) then 'ok'
else 'alarm'
end as status,
split_part(address, '.', 2) || case
when ((attributes_std ->> 'engine_type') = 'ActiveMQ' and (regexp_split_to_array(attributes_std ->> 'engine_version', '\.')::int[] >= regexp_split_to_array('5.16', '\.')::int[])) then ' uses current broker version'
when ((attributes_std ->> 'engine_type') = 'RabbitMQ' and (regexp_split_to_array(attributes_std ->> 'engine_version', '\.')::int[] >= regexp_split_to_array('3.8', '\.')::int[])) then ' uses current broker version'
else ' does not use current broker version'
end || '.' as reason
, path || ':' || start_line
from
terraform_resource
where
type = 'aws_mq_broker';

Tags