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_enabledSnapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run terraform_aws_compliance.control.es_domain_audit_logging_enabled --shareSQL
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_linefrom  terraform_resourcewhere  type = 'aws_elasticsearch_domain';