turbot/steampipe-mod-aws-compliance

Control: Elasticsearch domain should send logs to CloudWatch

Description

Ensure that AWS OpenSearch Service (OpenSearch Service) domains are configured to send logs to AWS CloudWatch Logs. The rule is compliant if a log is enabled for an OpenSearch Service domain. This rule is non-compliant if logging is not configured.

Usage

Run the control in your terminal:

powerpipe control run aws_compliance.control.es_domain_logs_to_cloudwatch

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run aws_compliance.control.es_domain_logs_to_cloudwatch --share

SQL

This control uses a named query:

select
arn as resource,
case
when
( log_publishing_options -> 'ES_APPLICATION_LOGS' -> 'Enabled' = 'true'
and log_publishing_options -> 'ES_APPLICATION_LOGS' -> 'CloudWatchLogsLogGroupArn' is not null
)
and
( log_publishing_options -> 'SEARCH_SLOW_LOGS' -> 'Enabled' = 'true'
and log_publishing_options -> 'SEARCH_SLOW_LOGS' -> 'CloudWatchLogsLogGroupArn' is not null
)
and
( log_publishing_options -> 'INDEX_SLOW_LOGS' -> 'Enabled' = 'true'
and log_publishing_options -> 'INDEX_SLOW_LOGS' -> 'CloudWatchLogsLogGroupArn' is not null
)
then 'ok'
else 'alarm'
end as status,
case
when
( log_publishing_options -> 'ES_APPLICATION_LOGS' -> 'Enabled' = 'true'
and log_publishing_options -> 'ES_APPLICATION_LOGS' -> 'CloudWatchLogsLogGroupArn' is not null
)
and
( log_publishing_options -> 'SEARCH_SLOW_LOGS' -> 'Enabled' = 'true'
and log_publishing_options -> 'SEARCH_SLOW_LOGS' -> 'CloudWatchLogsLogGroupArn' is not null
)
and
( log_publishing_options -> 'INDEX_SLOW_LOGS' -> 'Enabled' = 'true'
and log_publishing_options -> 'INDEX_SLOW_LOGS' -> 'CloudWatchLogsLogGroupArn' is not null
) then title || ' logging enabled for search , index and error.'
else title || ' logging not enabled for all search, index and error.'
end as reason
, region, account_id
from
aws_elasticsearch_domain;

Tags