通过 IAM 管理访问权限

本文档介绍了如何使用 Identity and Access Management (IAM) 管理 Knowledge Catalog(以前称为 Dataplex Universal Catalog)资源的访问权限控制。IAM 在 Google Cloud 资源级层控制对 Knowledge Catalog 资源的访问权限。借助该功能,您可以使用 Google Cloud 控制台、Google Cloud CLI、客户端库或 API 控制哪些主账号可以管理特定资源,例如条目群组和条目。

如需详细了解 IAM,请参阅 IAM 文档。

IAM 概览

当您创建新的 Google Cloud 项目时,系统会向原始项目创建者授予 Owner (roles/owner) 角色。当您启用 API 来执行特定任务时,可能会存在或创建其他 Google 代管式服务账号。不过,其他任何个人用户都无权访问该项目及其资源,包括 Knowledge Catalog 资源。只有在您明确将用户添加为项目成员或向其授予特定资源的访问权限时,他们才会获得此访问权限。

借助 IAM,您可以授予对特定 Google Cloud资源的精细访问权限,并防止对其他资源进行不必要的访问。IAM 允许您采用最小权限原则,仅授予对资源的必要访问权限。

IAM 允许您控制谁(主账号)对哪些资源具有什么访问权限(角色)。

主账号

主账号可以是 Google 账号(针对最终用户)、服务账号(针对应用和虚拟机)、Google 群组或 Google Workspace 或 Cloud Identity 网域。这些主账号可以访问资源。授予角色时,您可以使用标识符来标识主账号,如政策绑定参考文档中所述。

如需了解详情,请参阅 IAM 概览:主账号。

服务代理

Knowledge Catalog 使用 Google Cloud 托管式服务账号(服务代理)来访问您的资源。服务代理是由 Google 管理的服务账号,可允许 Google Cloud 服务访问您项目中的资源。这与用户代管式服务账号不同,后者由您创建并用于代表您的应用或工作负载。

启用 Dataplex API 时,系统会创建服务代理。您可以通过服务代理的邮箱 ID 来识别服务代理:

service-CUSTOMER_PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com

其中,CUSTOMER_PROJECT_NUMBER 是您已在其中启用 Dataplex API 的项目的项目编号。

服务代理需要对项目拥有 Dataplex Service Agent (roles/dataplex.serviceAgent) 角色,才能管理 Knowledge Catalog 资源。当您启用该 API 时,系统会自动授予此角色。如果您撤消此角色,Knowledge Catalog 可能无法正常运行。

如果 Knowledge Catalog 需要访问其他项目中的资源(例如,您要作为资产附加或扫描以获取数据分析的 Cloud Storage 存储桶或 BigQuery 数据集),您必须在包含这些资源的项目中向此服务代理授予所需权限。

如需详细了解如何向服务代理授予附加资产的权限,请参阅管理数据资产。

如需详细了解如何向服务代理授予数据分析权限,请参阅创建和使用数据分析扫描。

数据扫描的执行身份

默认情况下,Knowledge Catalog 会使用服务代理来运行数据质量和数据分析扫描。不过,您可以选择替换此行为,并使用自定义服务账号或您自己的最终用户凭据 (EUC) 执行扫描。

如果您为扫描的执行身份指定了自定义服务账号,则服务代理需要对目标服务账号拥有 Service Account Token Creator (roles/iam.serviceAccountTokenCreator) 角色(或 iam.serviceAccounts.getAccessToken 权限),才能模拟该账号并运行作业。如需了解详情,请参阅数据质量和数据分析的执行身份文档。

资源

您可以在 Knowledge Catalog 中授予访问权限的资源包括项目、条目组、条目、条目链接、切面类型、条目类型和条目链接类型。

某些 API 方法需要多个资源的权限。例如,将切面附加到条目需要对条目和切面类型都拥有权限。

角色

角色是一组权限,用于确定主账号可以对资源执行哪些操作。如果您向某个主账号授予了某个角色,此主账号便拥有了该角色包含的所有权限。

您可以向主账号授予一个或多个角色。

与其他 Google Cloud 产品类似,Knowledge Catalog 支持三种类型的角色:

  • 基本角色:在引入 IAM 之前就已存在的高度宽松角色(Owner、Editor、Viewer)。如需详细了解基本角色,请参阅基本角色。

  • 预定义角色:提供对特定 Google Cloud资源的精细访问权限。如需详细了解预定义角色,请参阅预定义角色。Knowledge Catalog IAM 角色文档详细介绍了 Knowledge Catalog 预定义角色。

  • 自定义角色:仅授予所需的特定权限,帮助您实施最小权限原则。如需详细了解自定义角色,请参阅自定义角色。

例如,Dataplex Viewer (roles/dataplex.viewer) 预定义角色提供对 Knowledge Catalog 资源的只读权限。具有此角色的主账号可以查看条目组、条目、条目链接、切面类型、条目类型和条目链接类型,但无法创建、更新或删除它们。 相反,Dataplex Administrator (roles/dataplex.admin) 角色会授予管理 Knowledge Catalog 资源的广泛访问权限。

如需详细了解如何分配角色,请参阅授予、更改和撤销访问权限。

如需确定执行特定任务所需的权限,请参阅 Knowledge Catalog 角色和 Knowledge Catalog 权限参考页面。

例如,对于项目资源,您可以为 Google 账号分配 Dataplex Administrator (roles/dataplex.admin) 角色。此后,该账号便可管理项目中的 Knowledge Catalog 资源,但无法管理其他资源。您还可以使用 IAM 来管理向项目团队成员授予的基本角色。

资源的 IAM 政策

通过 IAM 政策,您可以管理资源的 IAM 角色,用于取代或补充在项目级层管理角色。这可让您灵活应用最小权限原则,例如,仅授予协作者完成其工作所需的特定资源的权限。

资源会继承其父级资源的政策。如果在项目级层设置政策,则项目的所有子资源都会沿用该政策。资源的有效政策是为该资源设置的政策及其从层次结构中更高层级沿用而来的政策的集合。如需了解详情,请参阅 IAM 政策层次结构。

您可以使用 Google Cloud 控制台、Identity and Access Management API 或 gcloud CLI 来获取和设置 IAM 政策。

后续步骤