Google 会使用 AI 技术将内容翻译成您偏好的语言。AI 翻译可能包含错误。
发送反馈
使用场景:对另一个项目中的 Managed Service for Apache Spark 集群进行访问权限控制
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本页介绍了在另一个 Google Cloud 项目中部署和运行使用 Managed Service for Apache Spark 集群的流水线时,如何管理访问权限控制。
场景
默认情况下,当在Google Cloud 项目中启动 Cloud Data Fusion 实例时,该实例会使用同一项目中的 Managed Service for Apache Spark 集群部署和运行流水线。不过,您的组织可能要求您使用其他项目中的集群。对于此使用情形,您必须管理项目之间的访问权限。以下页面介绍了如何更改基准 (默认)配置并应用适当的访问权限控制。
准备工作
如需了解此使用情形中的解决方案,您需要了解以下背景信息:
假设和范围
此用例具有以下要求:
注意 : 此用例未展示源和接收器位于其他 VPC 中的网络场景。
解决方案
此解决方案比较了基准架构和特定用例的架构与配置。
架构
以下图表比较了在同一项目(基准)和通过租户项目 VPC 在不同项目中创建 Cloud Data Fusion 实例并运行流水线的项目架构。
基准架构
此图显示了项目的基准架构:
对于基准配置,您将创建一个私有 Cloud Data Fusion 实例并运行一个没有额外自定义设置的流水线:
您使用的是内置计算配置文件之一
来源和接收器与实例位于同一项目中
未向任何服务账号授予其他角色
如需详细了解租户项目和客户项目,请参阅网络 。
用例架构
此图显示了在其他项目中使用集群时的项目架构:
配置
以下各部分将比较基准配置与使用默认租户项目 VPC 在不同项目中通过托管式 Apache Spark 集群使用托管式 Apache Spark 集群的用例特定配置。
在以下使用情形说明中,客户项目 是 Cloud Data Fusion 实例的运行位置,Managed Service for Apache Spark 项目 是 Managed Service for Apache Spark 集群的启动位置。
注意 : 使用情形配置假定您在 Managed Service for Apache Spark 项目中使用默认 Compute Engine 服务账号来运行 Managed Service for Apache Spark 作业。
租户项目 VPC 和实例
基准
使用场景
在上述基准架构图中,租户项目包含以下组件:
自动创建的默认 VPC。
Cloud Data Fusion 实例的实际部署。
此使用情形无需进行额外配置。
客户项目
基准
使用场景
Google Cloud 项目是您部署和运行流水线的地方。
默认情况下,当您运行流水线时,系统会在相应项目中启动 Managed Service for Apache Spark 集群。
在此使用情形中,您管理着两个项目。在此页面上,客户项目 是指 Cloud Data Fusion 实例的运行位置。 Managed Service for Apache Spark 项目 是指 Managed Service for Apache Spark 集群启动的位置。
客户 VPC
基准
使用场景
从客户的角度来看,客户 VPC 是 Cloud Data Fusion 在逻辑上所处的位置。
要点 : 您可以在项目的 VPC 网络页面中找到客户 VPC 的详细信息。
前往“VPC 网络”页面
此使用情形无需进行额外配置。
Cloud Data Fusion 子网
基准
使用场景
从您(客户)的角度来看,此子网是 Cloud Data Fusion 在逻辑上所处的子网。
要点 : 此子网的区域与租户项目中的 Cloud Data Fusion 实例的位置相同。
此使用情形无需进行额外配置。
Managed Service for Apache Spark 子网
基准
使用场景
运行流水线时启动 Managed Service for Apache Spark 集群的子网。
重点小结 :
对于此基准配置,Managed Service for Apache Spark 与 Cloud Data Fusion 实例在同一子网中运行。
Cloud Data Fusion 会在与 Cloud Data Fusion 实例和子网相同的区域中查找子网。如果此区域中只有一个子网,则这两个子网相同。
Managed Service for Apache Spark 子网必须具有专用 Google 访问通道。
这是在运行流水线时启动 Managed Service for Apache Spark 集群的新子网。
重点小结 :
对于此新子网,请将专用 Google 访问通道设置为开启 。
Managed Service for Apache Spark 子网无需与 Cloud Data Fusion 实例位于同一位置。
来源和接收器
基准
使用场景
提取数据的来源和加载数据的接收器,例如 BigQuery 来源和接收器。
要点总结 :
提取和加载数据的作业必须在与数据集相同的位置进行处理,否则会出错。
本页上的具体用例访问权限控制配置适用于 BigQuery 源和接收器。
Cloud Storage
基准
使用场景
客户项目中的存储桶,用于在 Cloud Data Fusion 和 Managed Service for Apache Spark 之间传输文件。
重点小结 :
您可以通过 Cloud Data Fusion Web 界面在临时集群的计算配置文件 设置中指定此存储桶。
对于批处理和实时流水线或复制作业:如果您未在计算配置文件中指定存储桶,Cloud Data Fusion 会在与实例相同的项目中创建一个存储桶以用于此目的。
即使对于静态的 Managed Service for Apache Spark 集群,在此基准配置中,存储桶也是由 Cloud Data Fusion 创建的,并且与 Managed Service for Apache Spark 的临时存储桶和临时存储桶不同。
Cloud Data Fusion API 服务代理 具有内置权限,可在包含 Cloud Data Fusion 实例的项目中创建此存储桶。
此使用情形无需进行额外配置。
来源和接收器使用的临时存储分区
基准
使用场景
插件为来源和接收器创建的临时存储分区,例如由 BigQuery 接收器插件启动的加载作业。
重点小结 :
您可以在配置源和接收器插件属性时定义这些存储分区。
如果您未定义存储桶,系统会在运行 Managed Service for Apache Spark 的同一项目中创建一个存储桶。
如果数据集是多区域的,则存储桶会在同一范围内创建。
如果您在插件配置中定义了存储桶,则该存储桶的区域必须与数据集的区域一致。
如果您未在插件配置中定义存储桶,则系统为您创建的存储桶会在流水线完成后被删除。
对于此使用情形,可以在任何项目中创建存储桶。
插件的数据源或数据接收器存储分区
基准
使用场景
客户存储分区,您可以在插件(例如 Cloud Storage 插件和 FTP 到 Cloud Storage 插件)的配置中指定这些存储分区。
此使用情形无需进行额外配置。
IAM:Cloud Data Fusion API Service Agent
基准
使用场景
启用 Cloud Data Fusion API 后,系统会自动向
Cloud Data Fusion 服务账号 (即主要服务代理)授予 Cloud Data Fusion API Service Agent 角色 (roles/datafusion.serviceAgent)。
重点小结 :
该角色包含与实例位于同一项目中的服务的权限,例如 BigQuery 和 Managed Service for Apache Spark。如需了解所有受支持的服务,请参阅角色详情 。
Cloud Data Fusion 服务账号执行以下操作:
数据平面(流水线设计和执行)与其他服务(例如,在设计时与 Cloud Storage、BigQuery 和 Datastream 通信)的通信。
预配 Managed Service for Apache Spark 集群。
如果您要从 Oracle 源复制数据,则还必须在作业所在的项目中为该服务账号授予 Datastream Admin 和 Storage Admin 角色。本页面未介绍复制用例。
对于此使用情形,请向 Managed Service for Apache Spark 项目中的服务账号授予 Cloud Data Fusion API Service Agent 角色。然后,在该项目中授予以下角色:
Compute Network User 角色
Dataproc Editor 角色
IAM:Managed Service for Apache Spark 服务账号
基准
使用场景
用于在 Managed Service for Apache Spark 集群中以作业形式运行流水线的服务账号。默认情况下,它是 Compute Engine 服务账号。
可选:在基准配置中,您可以将默认服务账号更改为同一项目中的其他服务账号。向新服务账号授予以下 IAM 角色:
Cloud Data Fusion Runner 角色。此角色可让 Managed Service for Apache Spark 与 Cloud Data Fusion API 通信。
Dataproc Worker 角色。此角色允许作业在适用于 Apache Spark 集群的托管式服务上运行。
重点小结 :
必须向新服务的 API 代理服务账号授予受管服务(适用于 Apache Spark)服务账号的“服务账号用户”角色,以便服务 API 代理可以使用该服务账号启动受管服务(适用于 Apache Spark)集群。
此使用情形示例假设您使用 Managed Service for Apache Spark 项目的默认 Compute Engine 服务账号 (PROJECT_NUMBER -compute@developer.gserviceaccount.com)。
向 Managed Service for Apache Spark 项目中的默认 Compute Engine 服务账号授予以下角色。
注意 :如需使用其他服务账号来运行 Cloud Data Fusion 流水线,请在 Managed Service for Apache Spark 项目中授予该服务账号中的角色。
Dataproc Worker 角色
Storage Admin 角色(或至少是 `storage.buckets.create` 权限),以便 Managed Service for Apache Spark 为 BigQuery 创建临时存储分区。
BigQuery Job User 角色。此角色允许 Managed Service for Apache Spark 创建加载作业。默认情况下,作业是在 Managed Service for Apache Spark 项目中创建的。
BigQuery Dataset Editor 角色。此角色允许 Managed Service for Apache Spark 在加载数据时创建数据集。
向 Managed Service for Apache Spark 项目的默认 Compute Engine 服务账号上的 Cloud Data Fusion 服务账号授予 Service Account User 角色。此操作必须在 Managed Service for Apache Spark 项目中执行。
将受管服务(适用于 Apache Spark)项目的默认 Compute Engine 服务账号添加到 Cloud Data Fusion 项目。
另请授予以下角色:
Storage Object Viewer 角色,用于从 Cloud Data Fusion Consumer 存储桶检索流水线作业相关工件。
Cloud Data Fusion Runner 角色,以便 Managed Service for Apache Spark 集群在运行时可以与 Cloud Data Fusion 通信。
API
基准
使用场景
启用 Cloud Data Fusion API 时,系统还会启用以下 API。如需详细了解这些 API,请前往项目中的“API 和服务”页面。
前往“API 和服务”
Cloud Autoscaling API
Dataproc API
Cloud Dataproc Control API
Cloud DNS API
Cloud OS Login API
Pub/Sub API
Compute Engine API
容器文件系统 API
Container Registry API
Service Account Credentials API
Identity and Access Management API
Kubernetes Engine API
注意 :您需要在项目中手动启用 Cloud Resource Manager API。
启用 Cloud Data Fusion API 后,系统会自动将以下服务账号添加到您的项目中:
Google API 服务代理
Compute Engine Service Agent
Kubernetes Engine Service Agent
Google Container Registry Service Agent
Google Cloud Dataproc Service Agent
Cloud KMS Service Agent
Cloud Pub/Sub Service Account
对于此使用情形,请在包含 Managed Service for Apache Spark 项目的项目中启用以下 API:
Compute Engine API
Dataproc API(很可能已在此项目中启用)。启用 Dataproc API 时,系统会自动启用 Dataproc Control API。
Resource Manager API。
加密密钥
基准
使用场景
在基准配置中,加密密钥可以是 Google 管理的,也可以是 CMEK
重点小结 :
如果您使用 CMEK,则基准配置需要满足以下条件:
密钥必须是区域级密钥,且创建在与 Cloud Data Fusion 实例相同的区域中。
在创建密钥的项目中,向以下服务账号授予密钥级 Cloud KMS CryptoKey Encrypter/Decrypter 角色(不在 Google Cloud 控制台的 IAM 页面中):
Cloud Data Fusion API 服务账号
Managed Service for Apache Spark 服务账号,默认情况下为 Compute Engine 服务代理 (service-PROJECT_NUMBER @compute-system.iam.gserviceaccount.com)
Google Cloud Dataproc Service Agent
(service-PROJECT_NUMBER @dataproc-accounts.iam.gserviceaccount.com)
Cloud Storage Service Agent
(service-PROJECT_NUMBER @gs-project-accounts.iam.gserviceaccount.com)
根据流水线中使用的服务(例如 BigQuery 或 Cloud Storage),还必须向服务账号授予 Cloud KMS CryptoKey Encrypter/Decrypter 角色:
BigQuery 服务账号 (bq-PROJECT_NUMBER @bigquery-encryption.iam.gserviceaccount.com)
Pub/Sub 服务账号 (service-PROJECT_NUMBER @gcp-sa-pubsub.iam.gserviceaccount.com)
Spanner 服务账号 (service-PROJECT_NUMBER @gcp-sa-spanner.iam.gserviceaccount.com)
如果您不使用 CMEK,则无需针对此使用情形进行任何额外更改。
如果您使用 CMEK,则必须在创建密钥的项目中,在密钥级层向以下服务账号提供 Cloud KMS CryptoKey Encrypter/Decrypter 角色:
Cloud Storage Service Agent
(service-PROJECT_NUMBER @gs-project-accounts.iam.gserviceaccount.com)
根据流水线中使用的服务(例如 BigQuery 或 Cloud Storage),还必须在密钥级层向其他服务账号授予 Cloud KMS CryptoKey Encrypter/Decrypter 角色。例如:
BigQuery 服务账号 (bq-PROJECT_NUMBER @bigquery-encryption.iam.gserviceaccount.com)
Pub/Sub 服务账号 (service-PROJECT_NUMBER @gcp-sa-pubsub.iam.gserviceaccount.com)
Spanner 服务账号 (service-PROJECT_NUMBER @gcp-sa-spanner.iam.gserviceaccount.com)
完成这些特定于用例的配置后,您的数据流水线就可以开始在另一个项目中的集群上运行了。
后续步骤
发送反馈
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可 获得了许可,并且代码示例已根据 Apache 2.0 许可 获得了许可。有关详情,请参阅 Google 开发者网站政策 。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2026-07-13。
需要向我们提供更多信息?
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2026-07-13。"],[],[]]