Control: Amazon DocumentDB clusters should be encrypted in transit
Description
This controls checks whether an Amazon DocumentDB cluster requires TLS for connections to the cluster. The control fails if the cluster parameter group associated with the cluster is not in sync, or the TLS cluster parameter is set to disabled or enabled.
Usage
Run the control in your terminal:
powerpipe control run aws_compliance.control.docdb_cluster_encryption_in_transit_enabledSnapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run aws_compliance.control.docdb_cluster_encryption_in_transit_enabled --shareSQL
This control uses a named query:
with docdb_cluster as materialized (  select    db_cluster_parameter_group,    arn,    account_id,    region,    engine,    tags,    title,    _ctx  from    aws_docdb_cluster), docdb_pg_tls_settings as (  select    g.name,    p ->> 'ParameterValue'  from    docdb_cluster as c,    aws_rds_db_cluster_parameter_group as g,    jsonb_array_elements(parameters) as p  where    c.db_cluster_parameter_group = g.name    and g.account_id = c.account_id    and g.region = c.region    and p ->> 'ParameterName' = 'tls'   and p ->> 'ParameterValue' in ('disabled', 'enabled'))select  c.arn as resource,  c.engine,  case    when p.name is not null then 'alarm'    else 'ok'  end as status,  case    when p.name is not null then title || ' encryption in transit disabled.'    else title || ' encryption in transit enabled.'  end as reason    , region, account_idfrom  docdb_cluster as c  left join docdb_pg_tls_settings as p on p.name = c.db_cluster_parameter_group;