【问题标题】:In GCP yaml file is there a way to include credentials instead of GOOGLE_APPLICATION_CREDENTIALS linking a json file?在 GCP yaml 文件中,有没有办法包含凭据而不是 GOOGLE_APPLICATION_CREDENTIALS 链接 json 文件?
【发布时间】:2021-11-16 07:22:40
【问题描述】:

尝试部署到开发站点的应用引擎,并希望在 app.yaml 中简单地包含 GCP 凭据。

是否有可能包含凭据而不是链接到另一个文件?

env_variables:
  ...
  GOOGLE_APPLICATION_CREDENTIALS: './credentials/service-account.dev.json'

我尝试了很多方法,但似乎次佳选择是设置 Secret Manager 以避免这种情况。

【问题讨论】:

  • 1) 您根本不需要指定服务帐户。使用分配给 App Engine 的服务帐号。然后,您的代码可以使用 ADC 从元数据中获取凭据。 cloud.google.com/appengine/docs/standard/python/service-account 2) 从不,我再说一遍,永远不要在 app.yaml 中嵌入凭据 3) Google Cloud SDK 客户端内置了对 ADC 的自动支持。 4)您不需要设置 Secret Manager 来存储服务帐户凭据(鸡和蛋,您需要凭据才能访问 Secret Manager)。一旦您拥有初始凭据,Secret Manager 就是一个很好的机密产品。
  • 嘿约翰,谢谢你,是的,我已经阅读了该页面以及这一页面:cloud.google.com/appengine/docs/standard/python/… 所以我应该专注于更改我的默认 AE 服务的permissions?我找不到这方面的任何说明。
  • 通常,您会考虑角色。角色将权限捆绑在一起。分配给 App Engine 的服务帐户与其他任何服务帐户一样。使用 CLI 或 Google Cloud GUI 编辑角色分配。我提供的链接详细介绍了如何更改服务帐户权限。此链接还通过附加页面解释了默认服务帐户是什么。 cloud.google.com/iam/docs/service-accounts#default

标签: google-app-engine google-cloud-platform yaml google-cloud-storage


【解决方案1】:

以下是如何使用服务帐户作为应用引擎的凭据。

  • service_account Preview — 使用用户管理的服务帐户 特定于版本的部署

    Google 的 Pre-GA 产品条款涵盖此功能 云服务条款。 Pre-GA 功能的支持可能有限,并且 对 pre-GA 功能的更改可能与其他 pre-GA 不兼容 版本。有关详细信息,请参阅启动阶段说明。

  • 可选 - service_account 元素允许您指定用户管理的 服务帐户作为版本的标识。指定
    访问其他 Google Cloud 时将使用服务帐户
    服务和执行任务。

服务帐号必须按以下格式提供:

service_account:
SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com

click here 获取更多文档。

【讨论】:

    【解决方案2】:

    您可能想查看此authentication 文档。

    这里还有另一个thread,你会觉得很有趣。

    【讨论】:

    • 谢谢@Vicente,但是他们都解释说使用“JSON 密钥文件并使用环境变量指向它”或创建服务帐户以获取信用。我确实看到了一条有用的评论:“为 App Engine 服务帐户分配正确的权限。”也许我可以跳过这些环境变量并将它们添加到我的 AE 帐户中。
    猜你喜欢
    • 2017-11-04
    • 1970-01-01
    • 2022-12-22
    • 2010-11-19
    • 2023-03-29
    • 2020-11-30
    • 2018-06-13
    • 2022-10-07
    • 1970-01-01
    相关资源
    最近更新 更多