配置组织和文件夹的默认设置

本文档介绍如何使用 Google Cloud CLI 配置 Logging 的默认资源设置。默认资源设置可以应用于组织或文件夹,用于确定以下内容:

  • 新的日志存储分区是否需要 CMEK。

  • 存储位置,该位置决定了以下方面:

    • 其中存储了 _Default_Required 日志存储分区。

    • 日志浏览器日志分析页面中查询的存储位置,具体来说就是近期查询和 Google Cloud 项目成员保存的查询。

  • _Default 接收器是处于启用状态还是已停用。

  • 应用于新资源的 _Default 接收器的过滤条件。

概览

组织资源位于 Google Cloud 资源层次结构的最高层级。组织资源是以下子资源的父级:Google Cloud 项目、文件夹、结算帐号以及(就 Logging 而言)存储分区

您可以将 Logging 配置为使用 Google Cloud 组织和文件夹的默认资源设置。当您创建新资源时,这些资源会继承其父级的默认资源设置。

Cloud Logging 支持以下默认资源设置:

  • 是否使用客户管理的密钥加密资源中的新日志存储分区;如果要加密,则为用于加密的默认 Cloud KMS 密钥。

    如果您为资源配置 CMEK,则还必须为子资源创建的新 _Default_Required 存储分区设置默认存储位置。

  • 新的 _Default_Required 存储分区的存储位置,以及日志浏览器日志分析页面中的查询。此存储位置可让您控制日志的存储位置

    如果您为某项资源设置了默认存储位置,但没有为该资源配置 CMEK,则该资源中的新日志存储分区不需要 CMEK。

  • 是为资源中的新项目启用或停用 _Default 日志接收器

  • 应用于子资源中所有新 _Default 接收器的包含过滤器或排除过滤器。

配置示例:

  • 您可以为组织配置默认存储位置。对于组织中的新项目,系统会在指定位置创建 _Default_Required 存储分区。

  • 您可以为组织配置默认存储位置,并为该组织中的每个文件夹配置默认存储位置。对于文件夹中的新项目,系统会在文件夹设置指定的位置创建 _Default_Required 存储分区。对于不在文件夹中的项目,系统会在组织设置指定的位置创建其 _Default_Required 存储分区。

  • 您可以配置一个默认存储位置,用于存储日志浏览器中的所有查询。这包括在运行后自动保存的最新查询,以及 Google Cloud 项目成员保存的查询。

  • 您为组织配置了 CMEK,并且仅为名为 Non-CMEK 的文件夹设置默认存储位置。如果您创建的项目不在名为 Non-CMEK 的文件夹中,则系统会在 Cloud Key Management Service 密钥所在的位置创建 _Default_Required 存储分区,并且这些日志存储分区由该密钥加密。但是,如果您在名为 Non-CMEK 的文件夹中创建了新项目,则系统会在该文件夹的设置指定的位置创建其日志存储分区,并且这些日志存储分区不会由 CMEK 加密。

  • 您在组织级别配置一个应用于新 _Default 接收器的排除项过滤器。该过滤器会排除数据访问审核日志,使其无法通过所有子资源中的 _Default 接收器路由,从而阻止数据访问审核日志存储在 _Default 存储桶中。

准备工作

本文档不包含如何将 CMEK 配置为 Logging 的默认资源设置的信息。如需了解该主题,请参阅为 Logging 配置 CMEK

如需开始为 Logging 配置默认资源设置,请执行以下操作:

  1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

    gcloud init

  2. 确保您对组织拥有以下 Cloud Logging 权限:

    • logging.settings.get
    • logging.settings.update
  3. 了解 LogBucket 格式设置要求,包括支持您的日志的存储位置。如需查看日志存储分区支持的存储位置列表,请参阅数据区域性:支持的区域

  4. 找到要为其配置默认资源设置的组织或文件夹的标识符:

    • ORGANIZATION_ID 是 Google Cloud 组织的唯一数字标识符。如果您只计划为文件夹配置默认资源设置,则无需使用此值。 如需了解如何获取此标识符,请参阅获取组织 ID
    • FOLDER_ID 是 Google Cloud 文件夹的唯一数字标识符。如果您只计划为组织配置默认资源设置,则无需使用此值。如需了解如何使用文件夹,请参阅创建和管理文件夹
    • LOCATION 是您要存储日志数据的位置。

查看 Logging 的默认资源设置

如需查看 Logging 的默认资源设置(包括默认存储位置),请使用 gcloud logging settings describe 命令:

文件夹

 gcloud logging settings describe --folder=FOLDER_ID

单位

gcloud logging settings describe --organization=ORGANIZATION_ID

上一条命令会返回默认资源设置的相关信息。 例如,下面显示了特定组织的默认资源设置:

name: organizations/ORGANIZATION_ID/settings
kmsKeyName: KMS_KEY_NAME
kmsServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
storageLocation: europe-west1
disableDefaultSink: false

SERVICE_ACCT_NAME 的值可能采用 cmek-12345service-12345@... 格式。如果您无法使用 Google Cloud CLI,请运行 Cloud Logging API 方法 getSettings

设置默认存储位置

日志存储分区是 Google Cloud 项目、结算帐号、文件夹和组织中用于存储和整理日志数据的容器。对于每个 Google Cloud 项目、结算帐号、文件夹和组织,Logging 都会自动创建两个日志存储分区:_Required_Default,它们自动存储在未指定的 global 位置。

您可以通过修改 Logging 的默认资源设置,为组织或文件夹中包含的 _Required_Default 存储分区指定存储位置。此存储位置还决定了日志浏览器日志分析页面中查询的存储位置。这些查询包括在运行后自动保存的最新查询,以及由 Google Cloud 项目成员保存的查询。

如需查看支持的存储位置的列表,请参阅支持的区域

为组织配置默认存储位置后,会发生以下情况:

  • 该组织或文件夹中的现有 _Required_Default 存储分区会保留在创建时分配给它们的存储位置。

  • 对于配置默认存储位置后在组织或文件夹中创建的子资源,其 _Required_Default 存储分区会继承默认存储位置。

  • 现有的 Logs ExplorerLog Analytics 查询会保留其当前的存储位置。

  • 您在配置默认存储位置后保存的新 Logs ExplorerLog Analytics 查询会使用默认存储位置。此位置也适用于自动保存的近期查询。

Cloud Logging 的默认存储位置仅适用于 _Default_Required 日志存储分区,以及日志浏览器日志分析页面中的查询。这些查询包括运行后自动保存的查询,以及 Google Cloud 项目成员保存的查询。而不适用于用户定义的日志存储分区或使用 Logging API 保存的查询,因为必须在请求中指定位置。

配置组织政策

Logging 支持可限制数据的存储位置的组织政策。如果您的组织存在此类政策,则您只能在该政策允许的位置创建日志存储分区。

如果存在指定位置限制条件的组织政策,则该限制条件的政策值必须包含 Logging 的默认资源设置中指定的位置。此外,如果您计划修改默认资源设置,请在更新默认资源设置之前,查看并在必要时更新组织政策。

如需查看或更新组织政策,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到组织政策页面:

    前往组织政策

    如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。

  2. 选择您的组织。

  3. 查看并在必要时使用 ID constraints/gcp.resourceLocations 更新限制条件。如果未配置此限制条件,则无需更新。

    如需了解如何查看特定限制条件以及如何修改这些限制,请参阅创建和修改政策

配置 Logging 的默认存储位置

如需为 Cloud Logging 配置默认存储位置,请运行 gcloud logging settings update 命令并添加 --storage-location 标志:

文件夹

gcloud logging settings update --folder=FOLDER_ID--storage-location=LOCATION

单位

gcloud logging settings update --organization=ORGANIZATION_ID --storage-location=LOCATION

如果您无法使用 Google Cloud CLI,请运行 Cloud Logging API 方法 updateSettings

如需了解如何解决更新默认存储位置时出现的错误,请参阅对设置默认资源位置进行问题排查

配置 _Default 接收器

Logging 会为每个 Google Cloud 项目、结算帐号、文件夹和组织资源提供预定义的 _Default 接收器。在资源中生成与包含项过滤条件匹配且未排除的任何日志都会路由到资源预定义(相应名称为 _Default)存储桶。

您可以使用以下选项为组织和文件夹配置 _Default 接收器的默认资源设置:

  • 您可以为所有子资源停用 _Default 接收器。

  • 您可以配置一个或多个排除过滤器,以应用于新项目的 _Default 接收器。

停用“_Default”接收器

您可以为组织或文件夹中的所有新资源禁止创建 _Default 接收器;停用 _Default 接收器会阻止日志存储在资源的 _Default 存储桶中。如果您停止在某项资源的 _Default 存储桶中存储日志,则本应路由到该存储桶的日志会从 Logging 的存储空间中排除,除非这些日志明确包含在该资源的另一个用户定义的接收器中。

如需为某项资源及其任何子资源停用 _Default 接收器,请运行以下 gcloud logging settings update 命令:

文件夹

gcloud logging settings update --folder=FOLDER_ID--disable-default-sink

单位

gcloud logging settings update --organization=ORGANIZATION_ID --disable-default-sink

disable-default-sink 标志仅适用于将日志路由到 _Default 存储桶的 _Default 接收器。

您可以通过运行以下 gcloud logging settings update 命令重新启用 _Default 接收器:

文件夹

gcloud logging settings update --folder=FOLDER_ID--no-disable-default-sink

单位

gcloud logging settings update --organization=ORGANIZATION_ID --no-disable-default-sink

配置 _Default 个接收器的默认过滤条件

预定义的 _Default 接收器将匹配接收器条件的所有日志路由到相应的 _Default 存储桶。您可以使用包含过滤器排除项过滤器来配置为组织或文件夹中的新 _Default 接收器包含和排除哪些日志。

包含过滤器可以替换或附加到 _Default 接收器过滤器,并且排除过滤器会被附加,因为 _Default 接收器默认没有排除项过滤器。

如需指定应用于组织或文件夹中新资源的所有 _Default 接收器的包含项过滤条件或排除过滤条件,请使用 defaultSinkConfig 对象运行 Cloud Logging API 方法 updateSettings。您只能使用 Logging API 设置 _Default 接收器的默认过滤条件。

您可以使用方法参考页面上的 APIs Explorer 微件来执行 updateSettings 方法。以下示例展示了示例参数:

  • 名称(网址):organizations/ORGANIZATION_ID/settings
  • updateMask"default_sink_config"
  • 请求正文,其中包含一个 Settings 实例:

    "defaultSinkConfig": {
      {
      "filter": "NOT LOG_ID(\"externalaudit.googleapis.com/activity\") "
      "AND NOT LOG_ID(\"cloudaudit.googleapis.com/system_event\") "
      "AND NOT LOG_ID(\"externalaudit.googleapis.com/system_event\") "
      "AND NOT LOG_ID(\"cloudaudit.googleapis.com/access_transparency\") "
      "AND NOT LOG_ID(\"externalaudit.googleapis.com/access_transparency\") ",
      "exclusions": [
         {
            "name": "exclude-data-access",
            "description": "Prevents Data Access audit logs from being routed",
            "filter": "log_id(\"cloudaudit.googleapis.com/data_access\")",
         }
      ],
      "mode": OVERWRITE
      }
    }
    

上面的示例执行以下操作:

  • 覆盖 _Default 接收器的包含过滤器以包含默认排除的管理员活动审核日志。

  • 附加了一个排除项过滤条件,以防止数据访问审核日志被路由到 _Default 存储桶。

排查配置错误

如需了解问题排查信息,请参阅排查 CMEK 和默认设置错误