Remediation
Initialize the pgAudit flag
From Google Cloud Console
- Go to https://console.cloud.google.com/sql/instances.
- Select the instance to open its
Overviewpage. - Click
Edit. - Scroll down and expand
Flags. - To set a flag that has not been set on the instance before, click
Add item. - Enter
cloudsql.enable_pgauditfor the flag name and set the flag toon. - Click
Done. - Click
Saveto update the configuration. - Confirm your changes under
Flagson theOverviewpage.
From Google Cloud CLI
Run the following command by providing {{instance-name}} to enable the cloudsql.enable_pgaudit flag.
gcloud sql instances patch {{instance-name}} \
--database-flags cloudsql.enable_pgaudit=on
Note: RESTART is required to get this configuration in effect.
Creating the extension
-
Connect to the server running PostgreSQL or use a SQL client of your choice.
-
If you are using SSH, open the PostgreSQL shell by typing
psql. -
Run the following command as a superuser:
CREATE EXTENSION pgaudit;
Update the pgaudit.log flag for your logging needs
From Google Cloud Console
Note: There are multiple options here. This command will enable logging for all databases on a server. See the customizing database audit logging reference for more flag options.
- Go to https://console.cloud.google.com/sql/instances.
- Select the instance to open its
Overviewpage. - Click
Edit. - Scroll down and expand
Flags. - To set a flag that has not been set on the instance before, click
Add item. - Enter
pgaudit.logfor the flag name and set the value toall. - Click
Done. - Click
Saveto update the configuration. - Confirm your changes under
Flagson theOverviewpage.
From Google Cloud CLI
Run the command:
gcloud sql instances patch {{instance-name}} \
--database-flags cloudsql.enable_pgaudit=on,pgaudit.log=all
Determine if logs are being sent to Logs Explorer.
-
From the Google Console home page, open the hamburger menu in the top left.
-
In the menu that pops open, scroll down to Logs Explorer under Operations.
-
In the query box, paste the following and search:
resource.type="cloudsql_database" logName="projects/{{project-id}}/logs/cloudaudit.googleapis.com%2Fdata_access" protoPayload.request.@type="type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"If it returns any log sources, they are correctly set up.