turbot/steampipe-mod-terraform-aws-compliance

Control: Elasticsearch domains should have audit logging enabled

Description

This control checks whether Elasticsearch domains have audit logging enabled. This control fails if an Elasticsearch domain does not have audit logging enabled.

Usage

Run the control in your terminal:

powerpipe control run terraform_aws_compliance.control.es_domain_audit_logging_enabled

Snapshot and share results via Turbot Pipes:

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

SQL

This control uses a named query:

select
address as resource,
case
when ((attributes_std -> 'log_publishing_options' ->> 'cloudwatch_log_group_arn') is not null
and (attributes_std -> 'log_publishing_options' ->> 'log_type')::text = 'AUDIT_LOGS')
or
((attributes_std -> 'log_publishing_options') @> '[{"log_type": "AUDIT_LOGS"}]') then 'ok'
else 'alarm'
end status,
split_part(address, '.', 2) || case
when ((attributes_std -> 'log_publishing_options' ->> 'cloudwatch_log_group_arn') is not null and (attributes_std -> 'log_publishing_options' ->> 'log_type')::text = 'AUDIT_LOGS')
or
((attributes_std -> 'log_publishing_options') @> '[{"log_type": "AUDIT_LOGS"}]') then ' audit logging enabled'
else ' audit logging disabled'
end || '.' reason
, path || ':' || start_line
from
terraform_resource
where
type = 'aws_elasticsearch_domain';

Tags