PostgreSQL instances should have the 'log_hostname' database flag set to 'on'
Description
PostgreSQL only logs the IP address of the connecting hosts. The log_hostname
flag
controls the logging of hostnames, in addition to the IP addresses logged. The performance
hit depends on the configuration of the environment and the host name resolution
setup. This parameter can only be set in the postgresql.conf
file or on the server’s
command line.
Rationale
Logging hostnames allows for the association of a hostname with the IP address at the time of
connection. This information helps with incident response efforts, particularly in an
environment that utilizes dynamic IP addresses. Logging hostnames may incur overhead
on server performance because DNS resolution will be required to
convert the IP address to hostname. Depending on the setup, the overhead may be non-negligible.
Enabling the log_hostname flag on PostgreSQL databases is recommended.
Impact
Using the command line to set custom flags on certain instances will cause all omitted flags to be
reset to defaults. This may cause you to lose custom flags and could result in unforeseen
complications or instance restarts. Because of this, it is recommended that you apply these flag
changes during a period of low usage.
From the console
- Go to the Cloud SQL Instances page in the Google Cloud console.
- Select the PostgreSQL instance for which you want to enable the database flag.
- Click Edit.
- Scroll down to the Flags section.
- Click Add item to set a flag that has not been set on the instance before. Choose the
flag
log_hostname
from the drop-down menu and select the value On. - Click Save.
- Confirm your changes under the Flags section on the Overview page.
From the command line
- Configure the
log_hostname
database flag for every Cloud SQL PosgreSQL database
instance using the below command.
gcloud sql instances patch <INSTANCE_NAME> --database-flags log_hostname=on
Note: This command will overwrite all database flags previously set. To keep
flags previously set and add new ones, include the values for all flags you want set on the
instance; any flag not specifically included is set to its default value. For
flags that do not take a value, specify the flag name followed by an equals
sign (=).
Default value
By default log_hostname
is off.
References
- https://cloud.google.com/sql/docs/postgres/flags
- https://www.postgresql.org/docs/current/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHAT
WARNING: This patch modifies database flag values, which may require your
instance to be restarted. Check the list of supported flags to see if your instance
will be restarted when this patch is submitted.
Note: Some database flag settings can affect instance availability or
stability and remove the instance from the Cloud SQL SLA. For information
about these flags, see Operational Guidelines.
Note: Configuring the above flag does not require restarting the Cloud SQL
instance.
CIS controls
Version 8, 8.5 - Collect Detailed Audit Logs
- Configure detailed audit logging for enterprise assets containing sensitive data.
Include event source, date, username, timestamp, source addresses, destination
addresses, and other useful elements that could assist in a forensic investigation.