【发布时间】:2019-01-01 10:54:16
【问题描述】:
我开发了以下代码,用于自动执行我的一些实例的启动/停止任务,这些实例不需要一直运行,而是在特定范围内运行。
这是我的代码:https://github.com/maartinpii/gcp-shst
我按照谷歌云平台指南创建了一个服务帐户(参考:https://cloud.google.com/iam/docs/understanding-service-accountshttps://cloud.google.com/iam/docs/service-accounts#service_account_permissions),所以我在项目 A 中创建了一个服务 SC-Auto,然后在其他项目的 IAM 选项卡中创建它们并带来它是“项目所有者”角色。
注意:在我运行它的地方,我还执行了 gcloud auth service-account ... 如提到的Cross project management using service account
但是,当我执行我的代码时,我遇到了以下情况:
执行它时,调用我创建服务帐户的项目时效果很好。
-
当执行它调用我设置了项目所有者角色的任何其他项目时,它总是会检索到这个错误
Traceback(最近一次调用最后一次): 文件“gcp-shst.py”,第 45 行,在 响应 = request.execute() 文件“/usr/lib/python2.7/site-packages/googleapiclient/_helpers.py”,第 130 行,位于 positional_wrapper 返回包装(*args,**kwargs) 文件“/usr/lib/python2.7/site-packages/googleapiclient/http.py”,第 842 行,在执行中 引发 HttpError(resp, content, uri=self.uri) googleapiclient.errors.HttpError: https://www.googleapis.com/compute/v1/projects//zones/southamerica-east1-a/instances//start?alt=json 返回“必需的‘compute.instances.start’权限对于 'projects//zones/southamerica-east1-a/instances/'">
所以现在我想知道是否可以使用相同的服务帐户在我提供它的所有项目中执行功能并赋予它正确的权限,或者我是否需要为每个项目创建不同的服务帐户,或者如果我做错了什么……
提前感谢您的帮助!
【问题讨论】:
标签: python google-cloud-platform google-compute-engine service-accounts