Data Catalog IAM

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

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 提供了 roles/datacatalog.viewer 角色,并提供对所有已编目 Google Cloud 资源的元数据读取权限。

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

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

Data Catalog TagTemplate Creator 角色

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

DataCatalog Search Admin 角色

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

DataCatalog Migration Config Admin 角色

roles/datacatalog.migrationConfigAdmin 角色可让用户设置和检索与将资源从 Data Catalog 迁移到 Dataplex Catalog 相关的配置。

预定义的数据沿袭角色

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

Lineage Viewer 角色

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

您需要不同的角色,才能在图表中查看资产的沿袭以及查看图表中资产的元数据。对于前者,您需要 Data Lineage Viewer (roles/datalineage.viewer)。对于后者,您需要与访问 Data Catalog 中元数据条目相同的角色。以下两个子部分将提供更详细的信息。

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

如需在沿袭图中查看资产之间的沿袭,用户需要对以下项目拥有 Data Lineage Viewer (roles/datalineage.viewer):

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

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

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

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

如果图上资产的元数据存储在 Data Catalog 中,则用户只有在相应系统资源的 Viewer 角色或存储 Data Catalog 条目的项目的 Data Catalog Viewer (roles/datacatalog.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 中修改迁移配置的角色

用户需要以下角色才能设置和检索与从 Data Catalog 迁移到 Dataplex 相关的配置:

资源 权限 角色
Google Cloud 项目和组织 datacatalog.migrationConfig.set
datacatalog.migrationConfig.get
roles/datacatalog.migrationConfigAdmin

Data Catalog 中的身份联合

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

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

了解详情