繁体   English   中英

GCP 中的服务帐户和服务代理有什么区别

[英]What is the difference between service account and service agent in GCP

说我有这种情况

  • 我必须用数据流运行一些测试
  • 在此数据流作业中,我需要访问一个 gcs 存储桶并将我的 output 保存在那里。
  • 我将需要使用我自己的 SA 而不是默认 SA 来运行数据流作业。

我创建了一个 Google 服务帐户来运行我的数据流作业。 但是在我启用数据流 API 之后。我最终在我面前有 2 个 SA。

  • 服务帐户代理 --> 123456789@dataflow.gserviceaccount.com
  • 数据流作业运行器服务帐户 --> dataflow-job-runner@MY-PROJECT-ID.iam.gserviceaccount.com

官方文档说的我真是一头雾水

某些 Google Cloud 服务具有 Google 管理的服务帐户,允许这些服务访问您的资源。 这些服务帐户有时称为服务代理。

如果我创建一个数据流作业以使用dataflow-job-runner@MY-PROJECT-ID.iam.gserviceaccount.com SA 运行,我想我需要为其授予roles/storage.objectAdmin

问题是

  • 我是否需要向服务帐户代理授予任何权限?
  • 服务帐户代理实际上做了什么,它必须做什么才能访问任何资源?

Cloud Dataflow 等多项 Google Cloud 服务需要两组权限。

您编写的程序使用服务帐户。 您授予此服务帐户 IAM 角色以访问需要您的程序所需授权的资源。 例如,从 Cloud Storage 读取数据或向 BigQuery 发出查询。

服务代理适用于服务的运行时。 例如,当您在 Cloud Dataflow 上启动作业时,Cloud Dataflow 需要启动 VM 来运行您的程序。 您的程序没有启动虚拟机,而是服务。 因此,该服务需要自己的一组权限。 这就是服务代理的用途。

通过使用两个不同的服务帐户,实现了权限分离

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM