我试图在堆栈驱动程序控制台中显示Cloud的审计日志。我已经在IAM中为Cloud启用了审计日志。

我连接到Cloud中的、mysql、或postgres数据库,并在连接时将这些审计日志显示在控制台中。

request: {
@type: "type.googleapis.com/google.cloud.sql.v1beta4.SqlInstancesGetRequest"
instance: "testpostgres" 但在此之后,如果我在该特定数据库中执行任何操作,如SELECT或INSERT或DELETE,则不会为mysql和postgresE 216生成审计日志(数据访问)。在mysql实例中,我设置了以下数据库标志:
audit_log ON (this is in beta version)对于mysql,如果我再添加一个标志**general_log**,我可以获得那些DML语句,但是它们属于不同的日志**cloudsql.googleapis.com%2Fmysql-general.log**,并且不属于审核日志。
同样,对于postgres,这些语句位于不同的日志中:
**cloudsql.googleapis.com%2Fpostgres.log**我是这个Cloud的新手,所以不知道在那里实现的日志记录。当对Cloud实例中的特定数据库执行任何DML时,为什么不生成审计日志?为此,我应该设置任何其他标志吗?
发布于 2021-04-19 03:19:39
默认情况下,Cloud上的DML不会记录在审计日志上。要查看日志记录中的DML日志,需要使用pgAudit在您的PostgreSQL上。顺便说一下,pgAudit只在PostgreSQL实例中可用。
启用pgaudit的步骤:
gcloud sql instances patch [INSTANCE_NAME] --database-flags \ cloudsql.enable_pgaudit=on,pgaudit.log=allCREATE EXTENSION pgaudit;日志记录中的查询DML语句日志:
resource.type="cloudsql_database" logName="projects/<your-project-name>/logs/cloudaudit.googleapis.com%2Fdata_access" protoPayload.request.@type="type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"我使用PostgresSQL的快速启动进行测试。
查询postgre数据库:

使用上面的过滤器进行过滤日志记录:


https://stackoverflow.com/questions/67129081
复制相似问题