turbot/steampipe-mod-terraform-aws-compliance

Control: EC2 launch configuration EBS encryption should be enabled

Description

This control checks whether EC2 launch configurations have EBS encryption enabled.

Usage

Run the control in your terminal:

powerpipe control run terraform_aws_compliance.control.ec2_launch_configuration_ebs_encryption_check

Snapshot and share results via Turbot Pipes:

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

SQL

This control uses a named query:

select
address as resource,
case
when (attributes_std -> 'root_block_device') is not null
and (
(
attributes_std -> 'root_block_device' ->> 'encrypted'
) = 'true'
or (
attributes_std -> 'root_block_device' ->> 'snapshot_id'
) is not null
)
and (
(
(attributes_std -> 'ebs_block_device') is not null
and (
(attributes_std -> 'ebs_block_device' ->> 'encrypted') = 'true'
or (
attributes_std -> 'ebs_block_device' ->> 'snapshot_id'
) is not null
)
)
or ((attributes_std -> 'ebs_block_device') is null)
) then 'ok'
else 'alarm'
end as status,
split_part(address, '.', 2) || case
when (attributes_std -> 'root_block_device') is not null
and (
(
attributes_std -> 'root_block_device' ->> 'encrypted'
) = 'true'
or (
attributes_std -> 'root_block_device' ->> 'snapshot_id'
) is not null
)
and (
(
(attributes_std -> 'ebs_block_device') is not null
and (
(attributes_std -> 'ebs_block_device' ->> 'encrypted') = 'true'
or (
attributes_std -> 'ebs_block_device' ->> 'snapshot_id'
) is not null
)
)
or ((attributes_std -> 'ebs_block_device') is null)
) then ' is securely encrypted'
else ' is not securely encrypted'
end || '.' as reason,
path || ':' || start_line
from
terraform_resource
where
type = 'aws_launch_configuration';

Tags