说我有这种情况
我创建了一个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
它。
问题是
几种Google Cloud服务(例如Cloud Dataflow)需要两组权限。
你编写的程序使用服务帐户。你授予该服务帐户IAM角色访问需要程序授权的资源。例如,从Cloud Storage读取数据或向BigQuery发出查询。
服务代理适用于服务的运行时。例如,当你在Cloud Dataflow上启动作业时,Cloud Dataflow需要启动VM才能在其上运行程序。你的程序未启动VM,服务已启动。因此,该服务需要其自己的一组权限。这就是服务代理的目的。
通过使用两个不同的服务帐户,可以实现特权分离。
这是一个很好的解释。正是我想要的!谢谢!