本文档介绍了如何使用 Google Cloud CLI 配置日志记录的默认设置。默认设置可应用于组织或文件夹,可确定以下内容:
- 是否需要为新的日志存储分区使用客户管理的加密密钥 (CMEK)。
- 新的
_Default
和_Required
存储分区以及在日志浏览器或 Log Analytics 页面中运行的查询的存储位置。
_Default
接收器是处于启用状态还是停用状态。应用于新资源的
_Default
接收器的过滤条件。
概览
组织资源位于 Google Cloud 资源层次结构的最高级别。组织资源是以下子资源的父级:Google Cloud 项目、文件夹、结算账号,以及日志记录方面的日志分桶。
您可以配置日志记录,以便为 Google Cloud 组织和文件夹使用默认设置。创建新资源时,这些资源会继承其父级的默认设置。
Cloud Logging 支持以下默认设置:
是否要使用客户管理的密钥对资源中的新日志存储分区进行加密,如果要加密,则要使用的默认 Cloud KMS 密钥。
子资源创建的新
_Default
和_Required
日志存储分区以及 Logs Explorer 或 Log Analytics 页面保存的查询的存储位置。通过设置存储位置,您可以控制日志的存储位置。如果您为资源设置了默认存储位置,但未为该资源配置 CMEK,则该资源中的新日志存储分区不需要 CMEK。
为资源中的新项目启用还是停用
_Default
日志接收器。应用于子资源中的所有新
_Default
接收器的包含过滤条件或排除过滤条件。
配置示例:
- 您为组织配置默认存储位置。对于组织中的新项目,系统会在指定位置创建
_Default
和_Required
日志存储分区。此外,日志浏览器或 Log Analytics 页面保存的查询也会存储在指定位置。这些查询包括在运行后自动保存的近期查询,以及 Google Cloud 项目成员保存的查询。
您可以为组织配置默认存储位置,也可以为该组织中的每个文件夹配置默认存储位置。对于位于文件夹中的新项目,系统会在文件夹设置中指定的位置创建
_Default
和_Required
存储分区。对于不在文件夹中的项目,其_Default
和_Required
存储分区会在组织设置中指定的位置创建。您为组织配置 CMEK,并为名为
Non-CMEK
的文件夹仅设置默认存储位置。如果您创建的项目不在名为Non-CMEK
的文件夹中,则_Default
和_Required
存储分区将与 Cloud Key Management Service 密钥在同一位置创建,并且这些日志存储分区会被该密钥加密。不过,如果您在名为Non-CMEK
的文件夹中创建新项目,则其日志存储分区会在该文件夹设置指定的位置创建,并且这些日志存储分区不会由 CMEK 加密。您可以配置一个排除项过滤条件,以在组织级别应用于新的
_Default
接收器。该过滤条件会阻止在所有子资源中将数据访问审核日志路由到_Default
接收器,从而防止数据访问审核日志存储在_Default
存储桶中。
准备工作
本文档不包含有关如何将 CMEK 配置为 Logging 的默认设置的信息。如需了解该主题,请参阅为日志记录配置 CMEK。
如需开始配置 Logging 的默认设置,请执行以下操作:
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
确保您在要配置默认设置的组织或文件夹中的 Identity and Access Management 角色包含以下 Cloud Logging 权限:
logging.settings.get
logging.settings.update
指定要存储日志和查询的位置。如需查看支持的存储位置列表,请参阅支持的区域。
查看“日志记录”的默认设置
如需查看日志记录的默认设置(包括默认存储位置),请使用 gcloud logging settings describe
命令:
文件夹
gcloud logging settings describe --folder=FOLDER_ID
在运行上一个命令之前,请先进行以下替换:
- FOLDER_ID:文件夹的唯一数字标识符。如需了解如何使用文件夹,请参阅创建和管理文件夹。
单位
gcloud logging settings describe --organization=ORGANIZATION_ID
在运行上一个命令之前,请先进行以下替换:
- ORGANIZATION_ID:组织的唯一数字标识符。如需了解如何获取此标识符,请参阅获取组织 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-12345
或 service-12345@...
格式。如果您无法使用 Google Cloud CLI,请运行 Cloud Logging API 方法 getSettings
。
设置默认存储位置
日志存储分区是 Google Cloud 项目、结算账号、文件夹和组织中用于存储和整理日志数据的容器。对于每个 Google Cloud 项目、结算账号、文件夹和组织,Logging 都会自动创建两个日志存储分区:_Required
和 _Default
,这两个存储分区会自动存储在 global
位置。
为组织或文件夹设置默认存储位置时,您需要指定系统在哪里创建新的 _Required
和 _Default
日志存储分区,以及在哪里存储您在日志浏览器和日志分析页面中运行的查询。设置默认存储位置不会影响现有日志存储分区的位置。同样,对于已保存的查询,其存储位置也不会更改。
为组织或文件夹配置默认存储位置后,会发生以下情况:
- 对于在组织或文件夹中创建的新子资源,其
_Required
和_Default
存储分区会继承默认存储位置。
- 您在 Logs Explorer 或 Log Analytics 页面中运行的新查询会保存在默认存储位置。此位置也适用于自动保存的近期查询。
Cloud Logging 的默认存储位置不适用于用户定义的日志存储分区,也不适用于使用 Logging API 保存的查询。
配置组织政策
日志记录支持组织政策,可限制数据的存储位置。如果贵组织存在此类政策,则您只能在政策允许的位置创建日志存储分区。
如果存在指定位置限制条件的组织政策,则该限制条件的政策值必须包含“日志记录”的默认设置中指定的位置。此外,如果您打算修改默认设置,请先查看组织政策,并根据需要更新这些政策,然后再更新默认设置。
如需查看或更新组织政策,请执行以下操作:
-
在 Google Cloud 控制台中,前往组织政策页面:
如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。
选择您的组织。
查看 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
在运行上一个命令之前,请先进行以下替换:
- FOLDER_ID:文件夹的唯一数字标识符。如需了解如何使用文件夹,请参阅创建和管理文件夹。
单位
gcloud logging settings update --organization=ORGANIZATION_ID --disable-default-sink
在运行上一个命令之前,请先进行以下替换:
- ORGANIZATION_ID:组织的唯一数字标识符。如需了解如何获取此标识符,请参阅获取组织 ID。
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
存储桶。您可以发送 Cloud Logging API 命令,以替换 _Default
接收器中的内置包含过滤条件或附加过滤条件。_Default
接收器的内置排除过滤条件为空。不过,您还可以使用 API 命令添加排除项过滤条件。
如需指定要应用于组织或文件夹中新资源的所有 _Default
接收器的包含过滤条件或排除过滤条件,请运行 Cloud Logging API 方法 updateSettings
并指定 defaultSinkConfig
对象。
您可以使用方法参考页面上的 API 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
接收器的内置包含过滤条件包含语句 AND NOT LOG_ID("externalaudit.googleapis.com/activity")
,该语句可防止将管理员活动审核日志路由到 _Default
日志存储桶。在前面的示例中,包含过滤条件已更改,以便将管理员活动审核日志路由到 _Default
日志存储桶。该示例还添加了一个排除过滤条件,以防止将数据访问审核日志路由到 _Default
存储桶。在前面的示例中,排除过滤条件的名称为 exclude-data-access
。
排查配置错误
如需了解问题排查信息,请参阅排查 CMEK 和默认设置错误。