当前位置: 首页 > 知识库问答 >
问题:

GCP服务帐户角色

茅鸿宝
2023-03-14

开发了以下代码,用于自动执行我的一些实例的启动/停止任务,这些实例不需要一直运行,而是在特定范围内运行。

这是我的代码:https://github.com/maartinpii/gcp-shst

我按照谷歌云平台指南(参考:https://cloud.google.com/iam/docs/understanding-service-accounts https://cloud.google.com/iam/docs/service-accounts#service_account_permissions),所以我在项目a中创建了一个服务SC Auto,然后在其他项目的IAM选项卡中创建了它们,并将其设置为“项目所有者”角色。

注意:从我运行它的地方,我也执行了gCloud auth服务帐户...

然而,当我执行我的代码时,我有以下场景:

>

  • 在执行它时,调用我创建服务帐户的项目,效果非常好。

    当执行它从我设置项目所有者角色的地方调用任何其他项目时,它总是检索这个错误

    Traceback(最近的调用最后):文件"gcp-shst.py",第45行,在响应=request.execute()文件"/usr/lib/python2.7/site-包/googleapiclient/_helpers.py",第130行,positional_wrapper返回包装(*args,**kwargs)File"/usr/lib/python2.7/site-pack/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项目//区域/南美-东方1-a/实例/的许可"

    所以现在我想知道是否有可能使用相同的服务号来执行所有项目中的功能,我提供了它并赋予了它正确的权限,或者如果我需要为每个项目创建不同的服务号,或者如果我正在做一些事情错误的...

    提前感谢您的帮助!

  • 共有1个答案

    师腾
    2023-03-14

    经过调试和分析,我发现我无法使用服务帐户操作的项目的名称与其ID不同(参考:https://cloud.google.com/resource-manager/docs/creating-managing-projects#Identifying(项目)

    因此,当我用ID替换项目名称时,它工作正常。

     类似资料:
    • 我已经从GCP控制台创建了和一个自定义角色。 但是,当试图关联它们时,它会失败,如下所示: 知道为什么吗?

    • 在google cloud gui控制台中,我转到“iam&admin”>“service accounts”,并创建了一个名为“my-service-account”的服务帐户,该帐户具有查看器角色。 然后运行以下命令: 并看到以下输出: 根据文档,这意味着该服务帐户没有与其相关联的策略。所以我给它分配了一个“角色”,而这个角色并不包含在它的“政策”中。 如何列出与服务帐户关联的角色? 编辑:感

    • 如何为默认的Google App Engine(GAE)服务帐户赋予其他角色: 具体地说,我希望将“Cloud SQL Client”角色赋予默认的app engine服务帐户。当我试图修改角色时,我得到以下消息:

    • 我在GCP中有一个服务帐户,我将其密钥保存在一个秘密管理器中。 是否有办法为该保密服务帐户密钥设置计划的秘密轮换,以便发布/订阅将是GCP密钥,而不是由我管理?GCP是否提供此类托管发布/订阅服务?

    • 我目前正在使用KubernetesPodoperator在库伯内特斯集群上运行Pod。我收到以下错误: 库伯内特斯。客户RestApiException:(403)原因:禁止 HTTP响应标头:HTTPHeaderDict({'Auding-Id': '', 'Cache-Control':'no-cache, Private','Content-Type':'Application/json',

    • 我在一个GCP项目中构建了一个Google Kubernetes引擎(GKE)集群。 根据集群上运行的应用程序的不同用例,我将应用程序与不同的服务帐户和不同的授予权限相关联。为此,我将Google服务帐户(GSA)与库伯内特斯集群服务帐户(KSA)绑定如下: 参考:https://cloud.google.com/kubernetes-engine/docs/how-to/workload-ide