Data Catalog IAM

本文档介绍允许用户使用 Data Catalog 搜索和标记 Google Cloud 资源的 Identity and Access Management (IAM) 角色。

IAM 术语

权限
在运行时进行检查,以允许用户执行操作或访问 Google Cloud 资源。用户不会被直接授予权限,而是被授予包含权限的角色
角色
角色是预定义的权限集合。也可以使用由一组自定义权限构成的自定义角色。

查看 Data Catalog 角色

在 Google Cloud 控制台中,执行以下步骤:

  1. 转到 IAM 和管理 > 角色页面。

    打开“角色”

  2. 过滤条件字段中,选择使用范围,输入 Data CatalogData Lineage,然后点击 Enter 键。

  3. 点击一个角色即可在右侧窗格中查看该角色的权限。

    例如,Data Catalog Admin 角色拥有对所有 Data Catalog 资源的完整访问权限。

预定义的 Data Catalog 角色

一些预定义的 Data Catalog 角色包括 Data Catalog Admin、Data Catalog Viewer 和 Data Catalog TagTemplate Creator。后续部分将介绍其中一些角色。

如需查看 Data Catalog 预定义角色以及与每个角色关联的权限的列表和说明,请参阅 Data Catalog 角色

Data Catalog Admin 角色

roles/datacatalog.admin 角色可以访问所有 Data Catalog 资源。Data Catalog 管理员可以向 Data Catalog 项目添加不同类型的用户。

DataCatalog Data Steward 角色

roles/datacatalog.dataSteward 角色可让您添加、修改或删除数据条目(如 BigQuery 表的数据管理员和富文本概览。

Data Catalog Viewer 角色

为了简化获取 Google Cloud 资源的访问权限,Data Catalog 为所有编目 Google Cloud 资源提供了 roles/datacatalog.viewer 角色和元数据读取权限。

此角色还授予查看 Data Catalog 标记模板和标记的权限。

向项目授予 Data Catalog Viewer 角色,以允许用户在 Data Catalog 中查看 Google Cloud 资源。

Data Catalog TagTemplate Creator 角色

roles/datacatalog.tagTemplateCreator 角色可让用户创建标记模板。

DataCatalog Search Admin 角色

roles/datacatalog.searchAdmin 角色可让用户通过搜索检索项目或组织内所有已编目 Google Cloud 资源。

预定义的数据沿袭角色

如需访问任何 Data Catalog 条目的沿袭图,用户需要有权访问 Data Catalog 中的条目。如需访问 Data Catalog 条目,用户需要具有相应系统资源的 Viewer 角色或存储 Data Catalog 条目的项目中的 Data Catalog Viewer (roles/datacatalog.viewer)。本部分介绍查看和操控沿袭图所需的角色。

Lineage Viewer 角色

Data Lineage Viewer (roles/datalineage.viewer) 角色允许用户在 Google Cloud 控制台中查看 Dataplex 沿袭图,并使用 Data Lineage API 读取沿袭信息。给定进程的运行和事件均存储在与该进程相同的项目中。对于自动沿袭,进程、运行和事件存储在生成沿袭的作业运行所在的项目中。例如,这可能是运行 BigQuery 作业的项目。

您需要不同的角色才能在图表中查看资产之间的沿袭以及在图表上查看资产的元数据。对于前者,您需要 Data Lineage Viewer (roles/datalineage.viewer)。对于后者,您需要的角色与访问 Data Catalog 中元数据条目的角色相同。以下两个小节提供了更多详情。

查看两项资产之间沿袭的角色

如需在沿袭图上查看资产之间的沿袭,用户需要拥有以下项目数据沿袭查看器 (roles/datalineage.viewer):

  • 用户查看沿袭的项目(称为活跃项目),即 Google Cloud 控制台顶部下拉菜单中的项目或发起 API 调用的项目。这通常是 Data Catalog 资源项目
  • 记录沿袭的项目(称为计算项目)。沿袭存储在执行相应进程的项目中(如上所述)。此项目可以与存储用户查看其沿袭的资产的项目不同。

如需详细了解如何授予角色,请参阅管理访问权限。您还可以通过自定义角色或其他预定义角色获取所需的权限。

根据用例,您可能必须在文件夹或组织级别授予 Data lineage Viewer (roles/datalineage.viewer),以确保保证用户可以访问整个沿袭图(请参阅授予或撤消单个角色)。数据沿袭所需的角色只能通过 Google Cloud CLI 授予。

用于在沿袭图上查看资产元数据的角色

当图表上的资产的元数据存储在 Data Catalog 中时,用户只有在相应的系统资源或存储 Data Catalog 条目的项目中的 Data Catalog Viewer (roles/datacatalog.viewer) 拥有 Viewer 角色时,才能查看这些元数据。对图表上资产元数据的访问权限与对沿袭的访问无关。用户可能通过适当的 Viewer 角色有权访问图表中的资源,但无法访问它们之间的沿袭。如果用户对记录沿袭的项目没有 Data lineage Viewer (roles/datalineage.viewer),就会出现这种情况。在这种情况下,Data Lineage API 和界面不会显示沿袭,也不会返回任何错误,以防止泄露有关沿袭存在的信息。因此,一项资产没有沿袭并不意味着该资产没有沿袭。用户可能无权访问该沿袭。

Data Lineage Events Producer 角色

roles/datalineage.producer 角色可让用户使用数据沿袭 API 手动记录沿袭信息。

Data Lineage Editor 角色

roles/datalineage.editor 角色可让用户使用数据沿袭 API 手动修改沿袭信息。

Data Lineage Administrator 角色

roles/datalineage.admin 角色可让用户执行本部分列出的所有沿袭操作。

查看公开标记和不公开标记的角色

您可以使用简单搜索来搜索公开标记。您可以查看数据条目(包括其公开标记),前提是您拥有查看数据条目所需的权限。无需针对代码模板的其他权限。如需了解查看数据条目所需的权限,请参阅本部分中的表。

不过,我们建议同时向预计会搜索这些公开标签的用户授予 datacatalog.tagTemplates.get 权限。此权限允许用户使用搜索谓词 tag: 或使用 Data Catalog 搜索页面中的标记模板搜索分面。

对于不公开标记,您需要拥有标记模板和数据条目的查看权限,才能搜索该标记并在条目详情页面中查看该标记。用户必须使用 tag: 搜索谓词或标记模板搜索分面来查找标记;不支持简单搜索私有标记。

备注:

  • 私有标记模板所需的查看权限是 datacatalog.tagTemplates.getTag

  • 下表中包含了对公开标记和不公开标记的数据条目的查看权限。

资源 权限 角色
BigQuery 数据集、表、模型、日常安排和连接 bigquery.datasets.get
bigquery.tables.get
bigquery.models.getMetadata
bigquery.routines.get
bigquery.connections.get
roles/datacatalog.tagTemplateViewer
roles/bigquery.metadataViewer
roles/bigquery.connectionUser
Pub/Sub 主题 pubsub.topics.get roles/datacatalog.tagTemplateViewer
roles/pubsub.viewer
Spanner 实例、数据库、表和视图 Instance: spanner.instances.get
Database:spanner.databases.get
Table: spanner.databases.get
Views: spanner.databases.get
datacatalog.tagTemplates.getTag
没有可用的预定义角色。
Bigtable 实例和表 bigtable.instances.get
bigtable.tables.get
datacatalog.tagTemplates.getTag
roles/datacatalog.tagTemplateViewer
roles/bigtable.viewer
Dataproc Metastore 服务、数据库和表 metastore.tables.get
metastore.databases.get
metastore.services.get
roles/datacatalog.tagTemplateViewer
roles/metastore.metadataViewer
自定义条目 datacatalog.entries.get 没有可用的预定义角色。

用于搜索 Google Cloud 资源的角色

在搜索、发现或显示 Google Cloud 资源之前,Data Catalog 会检查用户是否被授予了访问资源所需的 IAM 角色,这些角色应包含 BigQuery、Pub/Sub、Dataproc Metastore 或其他源系统所需的元数据读取权限。

示例:Data Catalog 在显示 BigQuery 表元数据之前会检查用户是否已被授予具有 bigquery.tables.get permission 的角色。

下表列出了用户使用 Data Catalog 搜索列出的 Google Cloud 资源所需的权限和关联角色。

资源 权限 角色
BigQuery 数据集、表、模型、日常安排和连接 bigquery.datasets.get
bigquery.tables.get
bigquery.models.getMetadata
bigquery.routines.get
bigquery.connections.get
roles/bigquery.metadataViewer
roles/bigquery.connectionUser
另请参阅 Data Catalog Viewer 角色
Pub/Sub 主题 pubsub.topics.get roles/pubsub.viewer
另请参阅 Data Catalog Viewer 角色
Spanner 数据库和表 实例:spanner.instances.get
数据库:spanner.databases.get
视图:spanner.databases.get
没有可用的预定义角色。
Bigtable 实例和表 bigtable.instances.get
bigtable.tables.get
roles/bigtable.viewer
另请参阅 Data Catalog Viewer 角色
Dataplex 数据湖、可用区、表和文件集 dataplex.lakes.get
dataplex.zones.get
dataplex.entities.get
dataplex.entities.get
没有可用的预定义角色。
Dataproc Metastore 服务、数据库和表 metastore.tables.get
metastore.databases.get
metastore.services.get
roles/metastore.metadataViewer

用于将标记附加到 Google Cloud 资源的角色

如需将公共标记和私有标记附加到 Google Cloud 资源,需要相同的权限。

借助 Data Catalog,用户可以通过附加标记来扩展 Google Cloud 资源上的元数据。标记模板中定义了可附加到资源的一个或多个标记。

当用户尝试使用标记模板将标记附加到 Google Cloud 资源时,Data Catalog 会检查用户是否具有使用标记模板和更新资源元数据所需的权限。如下表所示,通过 IAM 角色授予权限。

下表列出了用户使用 Data Catalog 将公共和私有标记附加到列出的 Google Cloud 资源所需的权限和关联角色。

下表中的每一行都列出了标记资源所需的权限。相应的角色还可以授予其他权限。 点击各个角色即可查看与其关联的所有权限。

备注:

  • 默认情况下,数据条目的所有者拥有 datacatalog.entries.updateTag 权限。所有其他用户必须被授予 datacatalog.tagEditor 角色。

  • 表中列出的所有资源也需要 datacatalog.tagTemplates.use 权限。

资源 权限 角色
BigQuery 数据集、表、
模型、例程和
连接
bigquery.datasets.updateTag
bigquery.tables.updateTag
bigquery.models.updateTag
bigquery.routines.updateTag
bigquery.connections.updateTag
roles/datacatalog.tagTemplateUser
roles/datacatalog.tagEditor
roles/bigquery.dataEditor
Pub/Sub 主题 pubsub.topics.updateTag roles/datacatalog.tagTemplateUser
roles/datacatalog.tagEditor
roles/pubsub.editor
Spanner 数据库和表。 实例:spanner.instances.UpdateTag
数据库:spanner.databases.UpdateTag
表:spanner.databases.UpdateTag
视图:spanner.databases.UpdateTag
没有可用的预定义角色。
Bigtable 实例和表 bigtable.instances.update
bigtable.tables.update
roles/datacatalog.tagTemplateUser
roles/datacatalog.tagEditor
roles/bigtable.admin
Dataplex 数据湖、可用区、表和文件集 dataplex.lakes.update
dataplex.zones.update
dataplex.entities.update
dataplex.entities.update
没有可用的预定义角色。
Dataproc Metastore 服务、数据库和表 metastore.tables.update
metastore.databases.update
metastore.services.update
roles/datacatalog.tagTemplateUser
roles/datacatalog.tagEditor
roles/metastore.editor
roles/metastore.metadataEditor

适用于 Google Cloud 资源的自定义角色

其他 Google Cloud 系统中的数据条目的预定义 Editor 角色可能会提供比需求更广泛的写入权限。使用自定义角色可指定对 Google Cloud 资源的 *.updateTag 权限。

用于修改 Data Catalog 中的富文本概览和数据管理员的角色

用户需要以下角色才能附加富文本概览,并为 Data Catalog 中的条目分配数据管理员:

资源 权限 角色
Google Cloud 项目 datacatalog.entries.updateOverview
datacatalog.entries.updateContacts
roles/datacatalog.dataSteward

Data Catalog 中的身份联合

借助身份联合,您可以使用外部身份提供方 (IdP) 通过 IAM 对用户进行身份验证并授权其使用 Google Cloud 服务。

Data Catalog 支持身份联合,但存在以下限制:

如需深入了解