繁体   English   中英

Google Cloud Functions对其他GCP API的身份验证

[英]Google Cloud Functions authentication to other GCP APIs

我想编写一个Google Cloud Function,它可以与GCP的Dataproc服务交互,以编程方式启动Dataproc集群。 我们已经有一个经过严格实践的Dataproc基础架构,我们只是想扩展它们的发布方式。

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

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

有公认的方法可以做到这一点吗?

我看了一下:
* https://cloud.google.com/docs/authentication/
* https://cloud.google.com/docs/authentication/getting-started
但它们并非特定于云功能。

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

我认为这就是您要寻找的: https : //cloud.google.com/functions/docs/concepts/iam

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

tl; dr gcloud functions deploy FUNCTION_NAME --service-account SERVICE_ACCOUNT_EMAIL

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM