管理日志存储分区中的日志视图

借助日志视图,您可以控制有权访问您的日志存储分区中的日志的人员。 使用日志路由器管理日志存储分区,您可以根据需要集中或细分日志存储空间。自定义日志视图为您提供了一种高级和精细的方法来控制对这些日志存储分区中日志的访问权限。

例如,考虑这样一个场景,您在一个中央项目中存储组织的所有日志。由于日志存储分区可以包含来自多个项目的日志,因此您可能需要控制不同用户可以查看哪些项目的日志。通过自定义日志视图,您可以仅向某个用户授予单个项目的日志的访问权限,同时向另一个用户授予所有项目的日志的访问权限。

Cloud Logging 会自动为每个存储分区创建 _AllLogs 视图,该视图显示所有日志。Cloud Logging 还会为 _Default 存储分区创建一个名为 _Default 的视图。_Default 存储分区的 _Default 视图显示除数据访问审核日志以外的所有日志。_AllLogs_Default 视图不可修改。

以下说明介绍如何创建、查看、更新和删除日志视图。管理日志视图涉及执行以下操作:

  1. 使用 gcloud 命令行工具或 API 创建视图。
  2. 通过 Google Cloud Console 或 gcloud 命令行工具设置 Identity and Access Management (IAM) 权限。

准备工作

在创建日志视图之前,请完成以下步骤:

创建日志视图时,请注意以下条件:

  • 日志视图的过滤条件可包含以下内容:

  • 日志视图的过滤条件不能包含 OR 运算符。

  • 对于每个日志存储分区,您最多可为其创建 10 个日志视图。

创建日志视图

要创建日志视图,请运行以下命令,并将粗体部分替换为您自己的信息:

gcloud logging views create VIEW_ID \
  --log-filter="resource.type=gce_instance" --bucket=BUCKET_NAME \
  --location=LOCATION --description="Log view for the central log bucket for Compute Engine instance"

列出存储分区的视图以确认视图已创建:

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

向日志视图添加用户

要将用户添加到视图以允许用户访问日志,请完成以下步骤。

gcloud

  1. 获取项目的 IAM 政策,并将其写入 JSON 格式的本地文件:

    gcloud projects get-iam-policy PROJECT_ID --format json > output.json
    
  2. 添加一个 IAM 条件,允许用户从您创建的存储分区读取数据。例如:

    {
      "bindings": [
        {
          "members": [
            "username@gmail.com"
          ],
          "role": "roles/logging.viewAccessor",
          "condition": {
              "title": "Bucket reader condition example",
              "description": "Grants logging.viewAccessor role to user username@gmail.com for the [VIEW_ID] log view.",
              "expression":
                "resource.name == \"projects/[PROJECT_ID]/locations/[LOCATION]/buckets/[BUCKET_NAME]/views/[VIEW_ID]\""
          }
        }
      ],
      "etag": "BwWd_6eERR4=",
      "version": 3
    }
  3. 更新 IAM 政策:

    gcloud projects set-iam-policy PROJECT_ID output.json
    

控制台

  1. 在创建存储分区的项目的 Cloud Console 中,转到 IAM 页面。

    转到 IAM 页面

  2. 点击 添加

  3. 新成员字段中,添加用户的电子邮件帐号。

  4. 选择角色下拉菜单中,选择 Logs Views Accessor

    此角色为用户提供所有视图的读取权限。如需限制用户对特定视图的访问权限,请根据资源名称添加条件。

    1. 点击添加条件

    2. 输入条件的标题说明

    3. 条件类型下拉菜单中,选择资源 > 名称

    4. 运算符下拉菜单中,选择

    5. 字段中,输入日志视图的 ID,包括视图的完整路径。

      例如:

      projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
    6. 点击保存以添加该条件。

  5. 点击保存以设置权限。

如需了解详情,请参阅 IAM 条件概览

更新日志视图

要更新日志视图,请运行以下命令,并将粗体部分替换为您自己的信息:

gcloud logging views update VIEW_ID \
  --log-filter="resource.type=gce_instance" --bucket=NEW_BUCKET_NAME \
  --location=LOCATION --description="New description for the log view"

列出存储分区的视图以确认视图已更新:

gcloud logging views list --bucket=NEW_BUCKET_NAME --location=LOCATION

您无法更新 _Default_AllLogs 视图。

删除日志视图

要删除日志视图,请运行以下命令,并将粗体部分替换为您自己的信息:

gcloud logging views delete VIEW_ID \
  --bucket=BUCKET_NAME --location=LOCATION

列出存储分区的视图以确认视图已删除:

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

查看有关日志视图的信息

要描述日志视图,请运行以下命令,并将粗体部分替换为您自己的信息:

gcloud logging views describe VIEW_ID \
  --bucket=BUCKET_NAME --location=LOCATION

查看与日志视图关联的日志

如需在日志视图中查看日志,请确保您拥有日志视图的 roles/logging.viewAccessor 角色。

转到日志浏览器

转到日志浏览器

点击优化范围以显示优化范围面板。在这里,您可以选择用于查看日志的日志存储分区和日志视图。

“优化范围”面板

如需了解详情,请参阅日志浏览器文档。

后续步骤

转到日志浏览器,验证创建的视图是否提供了正确日志的访问权限。

转到日志浏览器