【问题标题】:Audit Log not generating DML statement logs for Cloud-SQL审核日志未为 Cloud-SQL 生成 DML 语句日志
【发布时间】:2021-07-11 16:58:41
【问题描述】:

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

我连接到 Cloud-SQL 中的 mysqlpostgres 数据库,当我连接时,这些审核日志会显示在控制台中。

  request: {
   @type: "type.googleapis.com/google.cloud.sql.v1beta4.SqlInstancesGetRequest"    
   instance: "testpostgres" 

但在此之后,如果我在该特定数据库中执行任何操作,如 SELECTINSERTDELETE,则没有审计日志 ( data-access) 为 mysqlpostgres 生成。在 mysql 实例中,我设置了以下数据库标志:

audit_log ON (this is in beta version)

对于 mysql,如果我再添加 1 个标志 **general_log** 我能够获得这些 DML 语句,但它们属于不同的日志 **cloudsql.googleapis.com%2Fmysql-general.log** 并且不属于 审计-日志

类似地,对于 postgres,这些语句位于不同的日志下:

**cloudsql.googleapis.com%2Fpostgres.log**

我是这个 Cloud-SQL 的新手,所以不知道那里实现的日志记录。为什么在对该 Cloud-SQL 实例中的特定数据库执行任何 DML 时不生成审核日志,我应该为此设置任何其他标志吗?

【问题讨论】:

    标签: mysql google-cloud-platform google-cloud-sql google-cloud-stackdriver google-cloud-logging


    【解决方案1】:

    默认情况下,DML 不会记录在 Cloud SQL 上的审核日志中。要在 Logging 中查看 DML 日志,您需要使用 pgAudit on your PostgreSQL。顺便说一句,pgAudit 仅在 PostgreSQL 实例中可用。

    启用 pgaudit 的步骤:

    1. 使用 gcloud 命令启用 pgaudit

      gcloud sql instances patch [INSTANCE_NAME] --database-flags \ cloudsql.enable_pgaudit=on,pgaudit.log=all

    2. 在您的 postgres 数据库中创建 pgaudit 扩展

      CREATE EXTENSION pgaudit;

    3. 在你的 postgres 数据库上运行一个简单的 select 语句

    在 Logging 中查询 DML 语句日志:

    1. 打开日志记录 -> 日志资源管理器

    2. 在查询构建器中应用此过滤器:

      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"

    我使用quickstart for PostgresSQL 进行测试。

    查询postgre数据库:

    使用上面的过滤器过滤日志:

    【讨论】:

    • 太好了,我们可以在同一个审核日志中显示持续时间吗,因为我要再添加 1 个标志 log_statement_min_duration,2)您的答案如上所述,适用于 postgres,是否有任何类似的功能可用mysql还是mssql?
    • @user1403505 1.) 是的,您可以添加另一个标志,如果标志返回特定信息,则应显示在日志中。 2.) mysql 没有由 google 管理的类似功能。我建议您发布另一个特定于 mysql 的问题,这样社区可能会回答您的问题。
    • 日志标志给出了持续时间,但我希望它显示在上面显示的相同审计日志中。它目前仅显示在 postgres 日志中。谢谢
    • pgaudit 日志工作正常,但它没有在日志中提供 IAM 用户的身份? Authentication Info 对象没有显示在这里?如何得到那个对象?谢谢
    • @user1403505 IAM 相关信息不包含在 pgaudit 字段中。 pgaudit 的唯一可用字段列在here。最好发布一个关于此的新问题,以便社区可以分享他们的见解。
    猜你喜欢
    • 2018-11-23
    • 1970-01-01
    • 2020-06-17
    • 2021-10-10
    • 1970-01-01
    • 2014-12-09
    • 2018-10-27
    • 1970-01-01
    • 2013-11-23
    相关资源
    最近更新 更多