本文档介绍了允许您使用 Data Catalog 搜索和标记 Google Cloud 资源的 Identity and Access Management (IAM) 角色。
如需详细了解 IAM 及其功能,请参阅 IAM 文档。
IAM 术语
- 权限
- 在运行时检查,以允许您执行操作或访问 Google Cloud 资源。您不会被直接授予权限,而是被授予包含权限的角色。
- 角色
- 角色是预定义的权限集合。也允许使用由自定义的权限集合组成的自定义角色。
查看 Data Catalog 角色
在 Google Cloud 控制台中,依次前往 IAM 和管理 > 角色页面。
在过滤条件字段中,选择使用范围,输入
Data Catalog
或Data Lineage
,然后点击 Enter。点击某个角色,即可在右侧窗格中查看该角色的权限。
例如,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 项目。
Data Catalog 数据管家角色
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
角色,您可以创建代码模板。
Data Catalog Search Admin 角色
借助 roles/datacatalog.searchAdmin
角色,您可以通过搜索检索项目或组织中已编入目录的所有 Google Cloud 资源。
Data Catalog Migration Config Admin 角色
借助 roles/datacatalog.migrationConfigAdmin
角色,您可以设置和检索与将资源从 Data Catalog 迁移到 Dataplex Catalog 相关的配置。
预定义的数据传承角色
如需访问任何 Data Catalog 条目的谱系,您需要有权访问 Data Catalog 中的相应条目。如需访问 Data Catalog 条目,您需要对相应的系统资源具有查看者角色,或者对存储 Data Catalog 条目的项目具有 Data Catalog Viewer (roles/datacatalog.viewer
) 角色。本部分介绍了查看谱系所需的角色。
Lineage 查看者角色
借助 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 中时,只有当您对相应的系统资源具有查看者角色,或者对存储 Data Catalog 条目的项目具有 Data Catalog Viewer (roles/datacatalog.viewer
) 角色时,才能查看该元数据。您或许可以通过适当的查看者角色访问谱系图或列表中的素材资源,但无法访问这些素材资源之间的谱系。如果您在记录了沿袭的项目中没有 Data Lineage Viewer 角色 (roles/datalineage.viewer
),就会出现这种情况。在这种情况下,Data Lineage API 和 Google Cloud 控制台不会显示谱系,也不会返回错误,以防止泄露有关谱系存在的信息。因此,资产没有沿袭并不意味着该资产没有沿袭,而是表示您可能无权访问该沿袭。
Data Lineage Events Producer 角色
roles/datalineage.producer
角色可让用户使用 Data Lineage 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 支持身份联合,但存在以下限制:
- Data Catalog API 的 SearchCatalog 和 StarEntry 方法仅支持员工身份联合,不适用于工作负载身份联合
- Dataplex 不支持身份联合用户使用 Google Cloud 控制台
后续步骤
- 了解如何创建自定义 IAM 角色。
- 了解如何授予和管理角色。
- 详细了解 Dataplex IAM 角色。
- 详细了解 BigQuery 访问权限控制。
- 详细了解 Pub/Sub 访问权限控制。
- 详细了解 Dataproc Metastore 访问权限控制。