Control: Elasticsearch domains should have at least three data nodes
Description
This control checks whether Elasticsearch domains are configured with at least three data nodes and zoneAwarenessEnabled is set to true.
Usage
Run the control in your terminal:
powerpipe control run terraform_aws_compliance.control.es_domain_data_nodes_min_3Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run terraform_aws_compliance.control.es_domain_data_nodes_min_3 --shareSQL
This control uses a named query:
select  address as resource,  case    when (attributes_std -> 'cluster_config' -> 'zone_awareness_enabled')::bool = false then 'alarm'    when (attributes_std -> 'cluster_config' -> 'zone_awareness_enabled')::bool and (attributes_std -> 'cluster_config' ->> 'instance_count')::int >= 3 then 'ok'    else 'alarm'  end status,  split_part(address, '.', 2) || case    when (attributes_std -> 'cluster_config' -> 'zone_awareness_enabled')::bool = false then ' zone awareness disabled'    else ' has ' || (attributes_std -> 'cluster_config' ->> 'instance_count') || ' data node(s)'  end || '.' reason    , path || ':' || start_linefrom  terraform_resourcewhere  type = 'aws_elasticsearch_domain';