借助 Identity and Access Management (IAM) 权限,您可以控制对 Knowledge Catalog(以前称为 Dataplex Universal Catalog)资源的精细访问权限,这些资源涵盖元数据管理、数据扫描、数据湖、区域、资产、任务和环境。由于您无法直接向主账号授予权限,因此您可以为常见用例分配预定义角色,或将特定权限捆绑到自定义角色中,以强制执行最小权限原则。
本文档列出了在 Knowledge Catalog 中运行特定操作和 API 方法所需的 IAM 权限。如需详细了解预定义角色,请参阅 Knowledge Catalog IAM 角色。如需详细了解 IAM,请参阅 IAM 概览。
IAM 政策设置和获取权限
下表列出了获取和设置 IAM 权限所需的权限:
| 资源 | API 方法 | IAM 权限 |
|---|---|---|
| 切面类型 | GetIamPolicy |
dataplex.aspectTypes.getIamPolicy |
| 切面类型 | SetIamPolicy |
dataplex.aspectTypes.setIamPolicy |
| 条目组 | GetIamPolicy |
dataplex.entryGroups.getIamPolicy |
| 条目组 | SetIamPolicy |
dataplex.entryGroups.setIamPolicy |
| 条目类型 | GetIamPolicy |
dataplex.entryTypes.getIamPolicy |
| 条目类型 | SetIamPolicy |
dataplex.entryTypes.setIamPolicy |
| 湖 | GetIamPolicy |
dataplex.lakes.getIamPolicy |
| 湖 | SetIamPolicy |
dataplex.lakes.setIamPolicy |
元数据管理权限
对条目类型、条目链接类型、切面类型、条目组、条目和条目链接执行操作所需的权限集取决于资源是系统资源还是自定义资源。系统资源由 Knowledge Catalog 定义,自定义资源由您或您的组织定义。
如需使用其他信息丰富条目和条目链接,您可以附加切面。
如需执行与多个资源相关的操作(例如,创建特定条目类型的条目,或向条目或条目链接添加特定切面类型的切面),您可能需要拥有与这些资源关联的多种权限。
条目类型
如需创建和管理条目类型,您必须至少获得标准 create、get、list、update 和 delete 权限。
创建条目类型时,您必须获得使用您希望针对该条目类型将其标记为必需的每个切面类型的权限。
如需使用条目类型(例如,创建条目类型的条目),您必须获得该条目类型的 use 权限。
下表列出了对条目类型执行操作所需的权限:
| 操作 | IAM 权限 |
|---|---|
Create entry types |
|
Delete entry types |
|
Get entry types |
dataplex.entryTypes.get |
List entry types |
dataplex.entryTypes.list |
Update entry types |
|
|
使用条目类型 (创建条目、更新顶级条目字段和必需的切面类型值时) |
|
切面类型
如需创建和管理切面类型,您必须获得标准 create、get、list、update 和 delete 权限。
如需使用切面类型(例如,将其作为可选切面附加到条目上,或更新条目链接上的必需切面),您必须获得该切面类型的 use 权限。
切面类型分为系统切面类型和自定义切面类型。系统切面类型由 Knowledge Catalog 创建,自定义切面类型由您或您的组织创建。系统切面类型进一步分为可用和只读。如需了解详情,请参阅切面类型的类别。
下表列出了对自定义和系统切面类型执行操作所需的权限:
| 操作 | 自定义切面类型所需的权限 | 可用系统切面类型所需的权限 | 只读系统切面类型所需的权限 |
|---|---|---|---|
Create aspect types |
dataplex.aspectTypes.create |
不适用 | 不适用 |
Delete aspect types |
dataplex.aspectTypes.delete |
不适用 | 不适用 |
Get aspect types |
dataplex.aspectTypes.get |
授予 allUsers |
授予 allUsers |
List aspect types |
dataplex.aspectTypes.list |
不适用 | 不适用 |
| 在创建或更新条目时设置可选的切面类型值 |
|
|
不适用 |
| 在创建或更新条目时设置必需的切面类型值 |
|
|
不适用 |
Update aspect types |
dataplex.aspectTypes.update |
不适用 | 不适用 |
| 在创建或更新条目链接时设置必需的切面类型值 | 不适用 |
|
不适用 |
条目组
如需创建和管理条目群组,您必须获得标准 create、get、list、update 和 delete 权限。
条目组分为系统条目组(由 Knowledge Catalog 创建)和自定义条目组(由您或您的组织创建)。如需了解详情,请参阅条目组类别。
下表列出了对条目组执行操作所需的权限:
| 操作 | 自定义条目组所需的权限 | 系统条目组(以 @ 开头)所需的权限 |
|---|---|---|
Create entry groups |
dataplex.entryGroups.create |
不适用 |
Delete entry groups |
dataplex.entryGroups.delete |
不适用 |
Get entry groups |
dataplex.entryGroups.get |
dataplex.entryGroups.get |
List entry groups |
dataplex.entryGroups.list |
dataplex.entryGroups.list |
Update entry groups |
dataplex.entryGroups.update |
不适用 |
条目数
如需创建和管理条目,您必须获得标准 create、get、list、update 和 delete 权限。
请注意以下几点:
- 对于查找 (
<code>LookupEntry</code>) 和搜索 (<code>SearchEntries</code>) 方法,必须从原始来源系统获得条目的权限。例如,如果数据源是 BigQuery 表,您需要拥有bigquery.tables.get权限才能查看元数据,以及拥有bigquery.tables.getData权限才能查看数据切面。 - 如果没有查看数据切面的权限,条目仍会显示,但数据切面的内容会被隐藏。
- 创建条目或更新条目的顶级字段时,您必须获得该条目类型的
use权限。 - 创建或更新必需的切面时,您必须获得对条目的条目类型以及底层切面类型的
use权限。这是因为必需的切面由条目类型强制执行。 - 创建、更新或删除可选切面时,您必须获得切面的切面类型的
use权限。 - 更新或插入条目(
<code>allow_missing = True</code>的<code>UpdateEntry</code>)时,您必须获得create权限。
如需详细了解条目所基于的条目类型,请参阅条目类型的类别。
下表列出了对条目执行操作所需的权限:
| 操作 | 基于自定义条目类型的条目 | 基于可用系统条目类型的条目 | 基于只读系统条目类型的条目 |
|---|---|---|---|
Create entries |
|
|
不适用 |
Get entries |
如需查看数据切面,还需要 |
如需查看数据切面,还需要 |
如需查看数据切面,还需要 |
List entries |
dataplex.entries.list |
dataplex.entries.list |
dataplex.entries.list |
Lookup entries |
需要源系统的元数据读取权限。您需要拥有从源系统读取数据的权限,才能查看数据切面。 对于自定义条目,Knowledge Catalog 被视为来源系统,这些权限分别为 |
需要源系统的元数据读取权限。您需要拥有从源系统读取数据的权限,才能查看数据切面。 对于自定义条目,Knowledge Catalog 被视为来源系统,这些权限分别为 |
需要源系统的元数据读取权限。您需要拥有从源系统读取数据的权限,才能查看数据切面。 对于自定义条目,Knowledge Catalog 被视为来源系统,这些权限分别为 |
Search entries |
原始源系统的读取权限。 对于自定义条目,此权限为 |
原始源系统的读取权限。 对于自定义条目,此权限为 |
原始源系统的读取权限。 对于自定义条目,此权限为 |
Update entries |
|
|
无法修改顶级字段和必需的切面。 |
条目链接
如需创建和管理条目链接,您必须获得 dataplex.entryLinks 的 create、get、list 和 delete 权限。
请注意以下几点:
- 创建条目链接 (
CreateEntryLink) 还需要对条目链接类型的权限以及对链接特定条目的权限。 - 创建具有必需切面的条目链接时,您需要具有使用切面类型的权限。
- 更新或插入条目链接(
allow_missing = True的UpdateEntryLink)时,您还必须拥有CreateEntryLink所需的相同权限。
下表列出了对条目链接执行操作所需的权限:
| 操作 | IAM 权限 |
|---|---|
| 创建条目链接 |
根据条目链接类型所需的权限:
使用条目链接类型的权限:
条目链接类型指定的任何必需切面的权限:
|
| 删除条目链接 | dataplex.entryLinks.delete(针对条目群组) |
| 获取条目链接 |
|
| 查找条目链接 |
需要对要查找条目链接的条目拥有源系统的元数据读取权限。 对于关联的自定义条目(其中 Knowledge Catalog 被视为来源系统),权限为 对于关联的系统条目,权限是关联条目的源系统的读取权限。 |
| 更新条目链接 |
使用条目链接类型的权限:
条目链接类型指定的任何必需切面的权限:
如果 |
条目链接上的切面的限制
以下限制适用于将切面与条目链接搭配使用。
上下文集
上下文集是目标数据资产和元数据的有界容器,用于在专有业务逻辑中建立 AI 模型。虽然上下文集可以包含特定于数据库的信息,例如 SQL 查询模板或 QueryData 等文本到 SQL 工具的值搜索查询,但 Knowledge Studio 也会使用上下文集来存储术语表、结构化表概览和企业数据映射。
如需详细了解如何在 Google Cloud中使用上下文集,请参阅 Knowledge Studio、AlloyDB for PostgreSQL、Bigtable、Cloud SQL for MySQL、Cloud SQL for PostgreSQL、Firestore with MongoDB compatibility 或 Spanner 的上下文集概览。
如需查看、创建和管理 QueryData 的数据库上下文集(dataplex.contextSetGroups.*、dataplex.contextSets.* 和 dataplex.context.*),请授予以下 IAM 角色:
- Dataplex Catalog Viewer (
roles/dataplex.catalogViewer):拥有只读权限,可查看和列出数据库上下文集、上下文集组、上下文和位置,以及下载上下文集和上下文。 - Dataplex Catalog Editor (
roles/dataplex.catalogEditor):有权创建、查看、列出、更新和删除数据库上下文集和上下文集组;上传和下载上下文集;查看、列出、更新、删除和下载上下文;以及查看和列出位置。 - Dataplex Catalog Admin (
roles/dataplex.catalogAdmin):对数据库上下文集、上下文集组和上下文拥有完整的管理员权限,以及查看和列出位置的权限。
如需创建和管理 Knowledge Studio 条目组上下文集(dataplex.entryGroups.*ContextSet、dataplex.entryGroups.requestContextChanges 和 dataplex.entries.*Context),请授予以下 IAM 角色:
- Dataplex 内容创作者 (
roles/dataplex.contentCreator):有权在项目中创建和列出上下文集(dataplex.entryGroups.createContextSet、dataplex.entryGroups.list)。创建上下文集不需要dataplex.entryGroups.setIamPolicy。 - Dataplex Content Viewer (
roles/dataplex.contentViewer):对发现上下文集容器 (dataplex.entryGroups.getContextSet) 的只读权限。 - Dataplex Content User (
roles/dataplex.contentUser):有权查看上下文集、读取和列出上下文条目,以及请求更改上下文。 - Dataplex Content Editor (
roles/dataplex.contentEditor):有权查看和更新上下文集、请求上下文更改,以及创建、读取、列出、更新和删除上下文条目。 - Dataplex Content Admin (
roles/dataplex.contentAdmin):对现有上下文集的完整管理员权限,包括所有 Dataplex Content Editor (roles/dataplex.contentEditor) 权限、删除上下文集 (dataplex.entryGroups.deleteContextSet) 以及管理上下文集上的 IAM 政策 (dataplex.entryGroups.setIamPolicy)。此角色不授予dataplex.entryGroups.createContextSet;如需在项目中创建新的上下文集,请授予 Dataplex Content Creator (roles/dataplex.contentCreator)。
下表列出了对上下文集执行操作所需的 IAM 权限:
| 操作 | IAM 权限 |
|---|---|
| 创建上下文集 (Knowledge Studio) | dataplex.entryGroups.createContextSet |
| 删除上下文集 (Knowledge Studio) | dataplex.entryGroups.deleteContextSet |
| 读取上下文集 (Knowledge Studio) | dataplex.entryGroups.getContextSet |
| 更新上下文集 (Knowledge Studio) | dataplex.entryGroups.updateContextSet |
| 请求上下文更改 (Knowledge Studio) | dataplex.entryGroups.requestContextChanges |
| 创建上下文条目 (Knowledge Studio) | dataplex.entries.createContext |
| 删除上下文条目 (Knowledge Studio) | dataplex.entries.deleteContext |
| 读取上下文条目 (Knowledge Studio) | dataplex.entries.getContext |
| 列出上下文条目 (Knowledge Studio) | dataplex.entries.listContext |
| 更新上下文条目 (Knowledge Studio) | dataplex.entries.updateContext |
| 创建上下文集组 (QueryData) | dataplex.contextSetGroups.create |
| 删除上下文集组 (QueryData) | dataplex.contextSetGroups.delete |
| 读取上下文集组 (QueryData) | dataplex.contextSetGroups.get |
| 列出上下文集组 (QueryData) | dataplex.contextSetGroups.list |
| 更新上下文集组 (QueryData) | dataplex.contextSetGroups.update |
| 创建上下文集 (QueryData) | dataplex.contextSets.create |
| 删除上下文集 (QueryData) | dataplex.contextSets.delete |
| 从上下文集 (QueryData) 下载上下文 | dataplex.contextSets.download |
| 读取上下文集 (QueryData) | dataplex.contextSets.get |
| 列出上下文集 (QueryData) | dataplex.contextSets.list |
| 更新上下文集 (QueryData) | dataplex.contextSets.update |
| 将上下文上传到上下文集 (QueryData) | dataplex.contextSets.upload |
| 删除上下文 (QueryData) | dataplex.context.delete |
| 下载上下文 (QueryData) | dataplex.context.download |
| 读取上下文 (QueryData) | dataplex.context.get |
| 列出上下文 (QueryData) | dataplex.context.list |
| 更新上下文 (QueryData) | dataplex.context.update |
如需了解详情,请参阅 Knowledge Catalog IAM 角色。
元数据作业权限
| 操作 | IAM 权限 |
|---|---|
| 访问从元数据导出作业导出的结果 |
|
Cancel metadata jobs |
|
Create metadata export jobs |
|
Create metadata import jobs |
|
Get metadata jobs |
|
List metadata jobs |
|
系统切面类型、条目类型和条目链接类型
每个系统定义的切面类型、系统定义的条目类型和系统定义的条目链接类型都有自己的 IAM 权限。这些权限采用 dataplex.entryGroups.useASPECT_TYPE、dataplex.entryGroups.useENTRY_TYPE 或 dataplex.entryGroups.useENTRY_LINK_TYPE 等格式。例如,overview 系统切面类型的权限为 dataplex.entryGroups.useOverviewAspect。
下表列出了适用于系统定义的切面类型、条目类型和条目链接类型的权限。
| 资源 | IAM 权限 |
|---|---|
contacts(系统切面类型) |
dataplex.entryGroups.useContactsAspect |
data-profile(系统切面类型) |
dataplex.entryGroups.useDataProfileAspect |
data-quality-rule-template(系统切面类型) |
dataplex.entryGroups.useDataQualityRuleTemplateAspect |
data-quality-scorecard(系统切面类型) |
dataplex.entryGroups.useDataQualityScorecardAspect |
data-rules(系统切面类型) |
dataplex.entryGroups.useDataRulesAspect |
generic(系统切面类型) |
dataplex.entryGroups.useGenericAspect |
guidelines(系统切面类型) |
dataplex.entryGroups.useGuidelinesAspect |
overview(系统切面类型) |
dataplex.entryGroups.useOverviewAspect |
schema(系统切面类型) |
dataplex.entryGroups.useSchemaAspect |
schema-join(系统切面类型) |
dataplex.entryGroups.useSchemaJoinAspect |
generic(系统条目类型) |
dataplex.entryGroups.useGenericEntry |
definition(系统条目链接类型) |
dataplex.entryGroups.useDefinitionEntryLink |
related(系统条目链接类型) |
dataplex.entryGroups.useRelatedEntryLink |
synonym(系统条目链接类型) |
dataplex.entryGroups.useSynonymEntryLink |
schema-join(系统条目链接类型) |
dataplex.entryGroups.useSchemaJoinEntryLink |
数据湖、区域和资产权限
下表列出了对数据湖、区域和资产执行操作所需的权限:
| API 方法 | IAM 权限 |
|---|---|
CreateAsset |
dataplex.assets.create |
CreateLake |
dataplex.lakes.create |
CreateZone |
dataplex.zones.create |
DeleteAsset |
dataplex.assets.delete |
DeleteLake |
dataplex.lakes.delete |
DeleteZone |
dataplex.zones.delete |
GetAsset |
dataplex.assets.get |
GetLake |
dataplex.lakes.get |
GetZone |
dataplex.zones.get |
ListAssetActions |
dataplex.assetActions.list |
ListAssets |
dataplex.assets.list |
ListLakeActions |
dataplex.lakeActions.list |
ListLakes |
dataplex.lakes.list |
ListZoneActions |
dataplex.zoneActions.list |
ListZones |
dataplex.zones.list |
UpdateAsset |
dataplex.assets.update |
UpdateLake |
dataplex.lakes.update |
UpdateZone |
dataplex.zones.update |
任务权限
下表列出了对任务执行操作所需的权限:
| API 方法 | IAM 权限 |
|---|---|
CancelJob |
dataplex.tasks.cancel |
CreateTask |
dataplex.tasks.create |
DeleteTask |
dataplex.tasks.delete |
GetJob |
dataplex.tasks.get |
GetTask |
dataplex.tasks.get |
ListJobs |
dataplex.tasks.get |
ListTasks |
dataplex.tasks.list |
UpdateTask |
dataplex.tasks.update |
元数据权限
下表列出了对实体和分区执行操作所需的权限:
| API 方法 | IAM 权限 |
|---|---|
CreateEntity |
dataplex.entities.create |
CreatePartition |
dataplex.partitions.create |
DeleteEntity |
dataplex.entities.delete |
DeletePartition |
dataplex.partitions.delete |
GetEntity |
dataplex.entities.get |
GetPartition |
dataplex.partitions.get |
ListEntities |
dataplex.entities.list |
ListPartitions |
dataplex.partitions.list |
数据扫描权限
下表列出了对数据扫描执行操作所需的权限:
| API 方法 | IAM 权限 |
|---|---|
CancelDataScanJob |
dataplex.datascans.cancel |
CreateDataScan |
dataplex.datascans.create |
DeleteDataScan |
dataplex.datascans.delete |
GetDataScan(基本视图) |
dataplex.datascans.get |
GetDataScan(完整视图) |
dataplex.datascans.getData |
GetDataScanJob(基本视图) |
dataplex.datascans.get |
GetDataScanJob(完整视图) |
dataplex.datascans.getData |
ListDataScanJobs |
dataplex.datascans.get |
ListDataScans |
dataplex.datascans.list |
RunDataScan |
dataplex.datascans.run |
UpdateDataScan |
dataplex.datascans.update |
Knowledge Studio 丰富化任务
创建和管理 Knowledge Studio 丰富化任务需要以下权限:
| 操作 | IAM 权限 |
|---|---|
| 创建数据丰富化任务 | dataplex.agentTasks.create |
| 删除丰富化任务 | dataplex.agentTasks.delete |
| 读取丰富化任务详情 | dataplex.agentTasks.get |
| 读取和提取底层数据结果 | dataplex.agentTasks.getData |
| 列出丰富化任务 | dataplex.agentTasks.list |
| 更新丰富化任务 | dataplex.agentTasks.update |
| 运行丰富化任务 | dataplex.agentTasks.run |
| 请求更改条目组或上下文集(提案) | dataplex.entryGroups.requestContextChanges(上下文集)或 dataplex.entryGroups.requestChanges(条目组) |
| 批准元数据更改请求 | dataplex.changeRequests.use |
第三方身份验证提供方权限
配置外部连接器时,您需要拥有以下代理身份权限才能管理身份验证提供方:
| 操作 | IAM 权限 |
|---|---|
| 创建身份验证提供方 | agentidentity.authProviders.create |
| 查看身份验证提供方详情 | agentidentity.authProviders.get |
| 删除身份验证提供方 | agentidentity.authProviders.delete |
| 更新身份验证提供方 | agentidentity.authProviders.update |
| 为身份验证提供方设置 IAM 政策 | agentidentity.authProviders.setIamPolicy |
BigQuery 分析权限
如需允许富化代理对 BigQuery 表数据进行采样并运行验证检查,请向富化任务的客户管理的 IAM 服务账号授予以下角色:
- 针对目标数据集和表以及任何代理分析跟踪表的 BigQuery Data Viewer (
roles/bigquery.dataViewer) 角色。 - 任务项目(以及跟踪记录表项目,如果不同)的 BigQuery Job User (
roles/bigquery.jobUser) 角色。
如需同时允许代理分析 BigQuery 表查询历史记录,请向客户代管式服务账号授予包含查询历史记录的项目上的 BigQuery Resource Viewer (roles/bigquery.resourceViewer) 角色。