【问题标题】:Google Cloud Functions authentication to other GCP APIsGoogle Cloud Functions 对其他 GCP API 的身份验证
【发布时间】:2019-07-09 15:09:39
【问题描述】:

我想编写一个可以与 GCP 的 Dataproc 服务交互的 Google Cloud Function,以便以编程方式启动 Dataproc 集群。我们已经拥有久经考验的 Dataproc 基础架构,我们只是希望扩展它们的启动方式。

我们的 Dataproc 集群只能使用已经是相应 IAM 角色成员的相应 IAM 服务帐户启动,因此 Cloud Function 需要使用该服务帐户对 Dataproc 服务进行身份验证。 Cloud Function 使用服务帐户向其他 GCP 服务/API 进行身份验证的最合适方式是什么?

我怀疑的选项包括:
* 作为该服务帐户运行该功能
* 提供 JSON 密钥文件并设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量

是否有公认的方法来实现这一目标?

我看过:
* https://cloud.google.com/docs/authentication/
* https://cloud.google.com/docs/authentication/getting-started
但它们并不特定于 Cloud Functions。

我也看过
* https://cloud.google.com/functions/docs/writing/http
但这似乎更关心函数的调用者如何进行身份验证。

【问题讨论】:

    标签: google-cloud-functions


    【解决方案1】:

    我想这就是你要找的东西:https://cloud.google.com/functions/docs/concepts/iam

    在运行时,Cloud Functions 默认使用 App Engine 默认服务帐号 (PROJECT_ID@appspot.gserviceaccount.com),该帐号在项目中具有编辑者角色。您可以更改此服务帐户的角色以限制或扩展您正在运行的函数的权限。您还可以通过为每个功能提供非默认服务帐户来更改使用的服务帐户。

    tl;博士gcloud functions deploy FUNCTION_NAME --service-account SERVICE_ACCOUNT_EMAIL

    顺便说一句,如果您需要更复杂的调度逻辑,请考虑使用 Cloud Composer(托管 Apache Airflow):https://cloud.google.com/composer/

    【讨论】:

      猜你喜欢
      • 2014-12-20
      • 2018-07-09
      • 2018-07-23
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 2020-03-20
      • 1970-01-01
      相关资源
      最近更新 更多