本文档将介绍如何使用 Identity and Access Management (IAM) 角色和权限, 控制对 Cloud Storage 中日志数据的访问权限, Logging API, Logs Explorer 和 Google Cloud CLI。
概览
IAM 权限和角色决定了您能否在 Logging API、Logs Explorer 和 Google Cloud CLI 中访问日志数据。
角色是一组权限的集合。您不能直接向主账号授予权限,而是需要向主账号授予角色。为主账号授予一个角色就是授予该角色包含的所有权限。您可以为同一位主账号授予多个角色。
如需在 Google Cloud 资源(例如 Google Cloud 项目、文件夹、存储桶或组织,则主账号必须具有 包含相应权限的 IAM 角色。
预定义角色
IAM 提供预定义角色,授予 并防止对其他云资源的 资源。Google Cloud 创建和维护这些角色,并根据需要自动更新其权限,例如 Logging 添加新功能时。
下表列出了 Logging 的预定义角色。对于 该表会显示角色标题、说明 权限以及可授予角色的最低级别的资源类型。 您可以在 Google Cloud 项目级别授予预定义角色,或者在大多数情况下,在资源层次结构中的任何更高级别授予此类角色。如需将 Logs View Accessor 角色限制为存储桶上的日志视图,请使用 IAM Conditions 的资源特性。
如需获取角色中包含的所有各个权限的列表,请参阅获取角色元数据。
Role | Permissions |
---|---|
Logging Admin( Provides all permissions necessary to use all features of Cloud Logging. Lowest-level resources where you can grant this role:
|
|
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
|
Logs Configuration Writer( Provides permissions to read and write the configurations of logs-based metrics and sinks for exporting logs. Lowest-level resources where you can grant this role:
|
|
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
|
Log Link Accessor( Ability to see links for a bucket. |
|
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
|
Private Logs Viewer( Provides permissions of the Logs Viewer role and in addition, provides read-only access to log entries in private logs. Lowest-level resources where you can grant this role:
|
|
SQL Alert Writer Beta( Ability to write SQL Alerts. |
|
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
|
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
|
以下部分提供了更多信息来帮助您决定 哪些角色适用于您的主账号用例。
Logging 角色
如需允许用户在 Logging 中执行所有操作,请授予 Logging Admin (
roles/logging.admin
) 角色。如需允许用户创建和修改日志记录配置,请授予 Logs Configuration Writer (
roles/logging.configWriter
) 角色。此角色可让您创建或修改以下任一项内容:此角色不足以创建[基于日志的指标][log-overview-lbm] 或[基于日志的提醒政策][log-overview-lba]。有关 这些任务所需的全部角色,请参阅 基于日志的指标的权限和 基于日志的提醒政策的权限。
允许用户读取
_Required
存储分区和_Default
存储分区中的日志 或使用 Logs Explorer 和 Log Analytics 页面, 授予以下角色之一:- 如需访问
_Required
存储桶中的所有日志,以及访问_Default
存储桶上的_Default
视图,请授予 Logs Viewer (roles/logging.viewer
) 角色。 - 如需访问
_Required
和_Default
存储分区中的所有日志,请执行以下操作: 包括数据访问日志 授予 Private Logs Viewer (roles/logging.privateLogViewer
) 角色。
- 如需访问
如需允许用户读取项目内所有日志视图中的日志,请授予该用户 项目的
roles/logging.viewAccessor
的 IAM 角色。如需让用户仅在特定日志视图中读取日志,您有两种方法可选:
为日志视图创建 IAM 政策,然后添加 IAM 与政策的绑定,该政策授予主账号 访问日志视图。
向主账号授予以下 IAM 角色: 针对包含日志视图的项目的
roles/logging.viewAccessor
权限, 但需要在 IAM 条件 将授权范围限制为特定日志视图。
如需了解如何创建日志视图和授予访问权限,请参阅在日志存储桶上配置日志视图。
- 如需向用户授予对给定日志存储桶中受限
LogEntry
字段(如果有)的访问权限,请授予 Logs Field Accessor (roles/logging.fieldAccessor
) 角色。如需了解详情,请参阅 配置字段级访问权限。
如需允许用户使用 Logging API 写入日志,请授予 Logs Writer (
roles/logging.logWriter
) 角色。此角色不授予查看权限。要让接收器的服务账号将日志路由到 其他 Google Cloud 项目,则向该服务账号授予 Logs Bucket Writer (
roles/logging.bucketWriter
) 角色。 如需了解如何向服务账号授予权限,请参阅设置目标位置权限。
项目级角色
如需授予对大多数 Google Cloud 服务的查看权限, 授予 Viewer (
roles/viewer
) 角色。此角色包含 Logs Viewer (
roles/logging.viewer
) 角色授予的所有权限。如需向编辑者授予对大多数 Google Cloud 服务的访问权限,请授予“编辑者”(
roles/editor
) 角色。此角色包含由 Logs Viewer (
roles/logging.viewer
) 角色以及以下权限: 写入日志条目、删除日志以及创建基于日志的指标。不过, 此角色不允许用户创建 接收器,读取_Default
存储桶中的数据访问审核日志, 或读取用户定义的日志存储分区中的日志。如需向用户授予对大多数 Google Cloud 服务的完整访问权限,请授予 Owner (
roles/owner
) 角色。
正在授予角色
如需了解如何向主账号授予角色,请参阅授予、更改和撤消访问权限。
您可以为同一位用户授予多个角色。如需获取角色中包含的权限的列表,请参阅获取角色元数据。
如果您尝试访问某个 Google Cloud 资源但缺少必要的权限,请与列为相应资源的 Owner 的主账号联系。
自定义角色
要创建具备 Logging 权限的自定义角色,请执行以下操作:
如需详细了解自定义角色,请参阅 了解 IAM 自定义角色。
Cloud Logging 权限
下表列出了 Cloud Logging 的特定功能所需的部分权限。此表可帮助您确定 您需要使用 日志浏览器。
在下表中,a.b.[x,y]
表示 a.b.x
和 a.b.y
。
控制台活动 | 所需权限 |
---|---|
最小只读权限 | logging.logEntries.list |
查看数据访问审核日志 | logging.privateLogEntries.list |
查看基于日志的指标 | logging.logMetrics.[list, get] |
视图接收器 | logging.sinks.[list, get] |
查看日志使用情况 | logging.usage.get |
排除日志 | logging.exclusions.[list, create, get, update, delete]
创建拥有以下权限的自定义角色时
管理排除项过滤器、添加 |
创建和使用接收器 | logging.sinks.[list, create, get, update, delete]
创建接收器时,您还必须向服务账号授予 拥有允许将日志条目写入 目标。如需了解详情,请参阅 设置目标位置权限。 日志条目被路由到受支持的目标位置后,对日志条目的访问权限完全由目标位置的 IAM 权限和角色控制。 |
创建基于日志的提醒 | 请参阅创建 使用基于日志的提醒政策。 |
创建基于日志的指标 | logging.logMetrics.[list, create, get, update, delete]
如需了解创建和使用基于日志的指标所需的其他 IAM 角色,请参阅创建和使用基于日志的指标所需的角色。 |
保存并使用不公开的查询 | logging.queries.usePrivate logging.queries.[listShared,getShared] |
保存和使用共享查询 | logging.queries.[share, getShared, updateShared, deleteShared,
listShared] |
使用近期查询 | logging.queries.[create, list] |
命令行权限
gcloud logging
命令由 IAM 权限控制。
如需使用任何 gcloud logging
命令,主体必须拥有 serviceusage.services.use
权限。
主体还必须具有与日志的资源和使用场景相对应的 IAM 角色。如需了解详情,请参阅命令行界面权限。
创建和使用基于日志的指标所需的角色
下面简要介绍了主账号访问基于日志的指标所需的常见角色和权限:
Logs Configuration Writer (
roles/logging.configWriter
) 角色可让主账号列出、创建、获取 更新和删除基于日志的指标Logs Viewer (
roles/logging.viewer
) 角色 包含查看现有指标的权限。具体来说,主账号 需要logging.logMetrics.get
和logging.logMetrics.list
权限 查看现有指标Monitoring Viewer (
roles/monitoring.viewer
) 角色包含读取 TimeSeries 数据的权限。具体而言,主账号需要monitoring.timeSeries.list
权限才能读取时间序列数据。Logging Admin (
roles/logging.admin
)、Project Editor (roles/editor
) 和 Project Owner (roles/owner
) 角色包含用于创建基于日志的指标的权限。具体而言, 主账号需要logging.logMetrics.create
权限才能创建 基于日志的指标。
创建和使用基于日志的提醒政策所需的角色
如需创建和管理基于日志的提醒政策,主体需要具有以下 Logging 和 Monitoring 角色和权限:
-
如需获取在 Monitoring 中创建基于日志的提醒政策以及创建关联的 Logging 通知规则所需的权限, 请让管理员授予您 项目的以下 IAM 角色:
-
Monitoring AlertPolicy Editor (
roles/monitoring.alertPolicyEditor
) -
Logs Configuration Writer (
roles/logging.configWriter
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含 拥有在 Monitoring 中创建基于日志的提醒政策以及创建关联的 Logging 通知规则所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需在 Monitoring 中创建基于日志的提醒政策,并创建关联的 Logging 通知规则,您需要拥有以下权限:
-
monitoring.alertPolicies.create
-
logging.notificationRules.create
-
Monitoring AlertPolicy Editor (
如果您在 Google Cloud CLI 中创建提醒政策,则以下内容 角色或权限:
-
如需获得使用 Google Cloud CLI 创建提醒政策所需的权限,请让管理员向您授予项目的 Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer
) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色包含
serviceusage.services.use
权限,该权限是使用 Google Cloud CLI 创建提醒政策所必需的。
如果您的 Google Cloud 项目已有通知渠道,您可以 配置提醒政策,以使用没有任何规则的现有渠道 额外角色或权限 不过,如果您需要为基于日志的提醒政策创建通知渠道,则需要具有以下角色或权限:
-
如需获得为基于日志的提醒政策创建通知渠道所需的权限,请让您的管理员为您授予项目的 Monitoring NotificationChannel Editor (
roles/monitoring.notificationChannelEditor
) IAM 角色。此预定义角色包含
monitoring.notificationChannels.create
权限 需要 为基于日志的提醒政策创建通知渠道。
基于 SQL 的提醒政策的权限
基于 SQL 的提醒政策会评估针对一组日志条目中的数据运行的 SQL 查询的结果。如需了解创建和管理基于 SQL 的提醒政策所需的角色,请参阅使用提醒政策监控 SQL 查询结果中的开始前须知部分。
Logging 访问权限范围
访问权限范围是为 Compute Engine 虚拟机实例上的服务账号指定权限的旧版方法。
以下访问权限范围适用于 Logging API:
访问权限范围 | 授予的权限 |
---|---|
https://www.googleapis.com/auth/logging.read | roles/logging.viewer |
https://www.googleapis.com/auth/logging.write | roles/logging.logWriter |
https://www.googleapis.com/auth/logging.admin | 对 Logging API 的完整访问权限。 |
https://www.googleapis.com/auth/cloud-platform | 对 Logging API 和其他所有已启用的 Google Cloud API 的完整访问权限。 |
如需了解如何使用此旧版方法设置服务账号的访问权限级别,请参阅服务账号权限。