turbot/steampipe-mod-terraform-gcp-compliance

Control: Ensure that the 'log_connections' database flag for Cloud SQL PostgreSQL instance is set to 'on'

Description

Enabling the log_connections setting causes each attempted connection to the server to be logged, along with successful completion of client authentication. This parameter cannot be changed after the session starts.

Usage

Run the control in your terminal:

powerpipe control run terraform_gcp_compliance.control.sql_instance_postgresql_log_connections_database_flag_on

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run terraform_gcp_compliance.control.sql_instance_postgresql_log_connections_database_flag_on --share

SQL

This control uses a named query:

select
address as resource,
case
when coalesce(trim((attributes_std ->> 'database_version')), '') = '' then 'alarm'
when (attributes_std ->> 'database_version') not like 'POSTGRES%' then 'skip'
when (attributes_std -> 'settings' -> 'database_flags' ->> 'name') = 'log_connections' and
(attributes_std -> 'settings' -> 'database_flags' ->> 'value') = 'on'
then 'ok'
else 'alarm'
end as status,
split_part(address, '.', 2) || case
when coalesce(trim((attributes_std ->> 'database_version')), '') = ''
then ' ''database_version'' is not defined'
when (attributes_std ->> 'database_version') not like 'POSTGRES%'
then ' not a PostgreSQL database'
when (attributes_std -> 'settings') is null then ' ''settings'' is not defined'
when (attributes_std -> 'settings' -> 'database_flags') is null then ' ''settings.database_flags'' is not defined'
when coalesce(trim((attributes_std -> 'settings' -> 'database_flags' ->> 'name')), '') = ''
then ' ''settings.database_flags.name'' is not defined'
when coalesce(trim((attributes_std -> 'settings' -> 'database_flags' ->> 'value')), '') = ''
then ' ''settings.database_flags.value'' is not defined'
when (attributes_std -> 'settings' -> 'database_flags' ->> 'name') <> 'log_connections'
then ' ''log_connections'' database flag not set'
when (attributes_std -> 'settings' -> 'database_flags' ->> 'name') = 'log_connections' and
(attributes_std -> 'settings' -> 'database_flags' ->> 'value') = 'on'
then ' ''log_connections'' database flag set to ''on'''
else ' ''log_connections'' database flag set to ''off'''
end || '.' reason
, path || ':' || start_line
from
terraform_resource
where
type = 'google_sql_database_instance';

Tags