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 loginpowerpipe 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_linefrom terraform_resourcewhere type = 'aws_launch_configuration';