Authentication 启用对非公共Google云功能的令牌访问
我想在没有公共访问的情况下部署Google云功能。服务帐户应该能够以最少的权限调用函数,以供外部服务器使用 我创建了一个服务帐户,添加了绑定并下载了密钥:Authentication 启用对非公共Google云功能的令牌访问,authentication,google-cloud-platform,oauth-2.0,google-cloud-functions,gcloud,Authentication,Google Cloud Platform,Oauth 2.0,Google Cloud Functions,Gcloud,我想在没有公共访问的情况下部署Google云功能。服务帐户应该能够以最少的权限调用函数,以供外部服务器使用 我创建了一个服务帐户,添加了绑定并下载了密钥: gcloud iam服务帐户创建--项目--说明 gcloud beta函数添加iam策略绑定--欧洲-西部地区1--成员服务帐户:--角色/cloudfunctions.invoker gcloud iam服务帐户密钥创建--iam帐户 当我使用调用者角色调用函数时,此操作失败: gcloud身份验证激活服务帐户--密钥文件 gcloud
gcloud iam服务帐户创建--项目--说明
gcloud beta函数添加iam策略绑定--欧洲-西部地区1--成员服务帐户:--角色/cloudfunctions.invoker
gcloud iam服务帐户密钥创建--iam帐户
当我使用调用者角色调用函数时,此操作失败:
gcloud身份验证激活服务帐户--密钥文件
gcloud beta函数调用--region=europe-west1--数据{}
错误:(gcloud.beta.functions.call)ResponseError:status=[403],code=[禁止],message=[调用方没有权限]
但是,当我切换到我的用户时,添加角色/cloudfunctions.developer
角色,切换回服务帐户,上面的工作如下:
gcloud配置设置帐户
gcloud beta函数添加iam策略绑定--欧洲-西部地区1--成员服务帐户:--角色/cloudfunctions.developer
gcloud身份验证激活服务帐户--密钥文件
gcloud beta函数调用--region=europe-west1--数据{}
成功!
echo$(GOOGLE\u APPLICATION\u CREDENTIALS=gcloud auth APPLICATION default print access token)>
curl-H“授权:持票人美元(类别)”
→ 401未经授权的HTML页面
最好的办法是,BorisGoogle Cloud建议将此类请求视为最终用户请求,即在使用调用者角色访问云函数时,通过传递授权头(带有承载令牌)来使用OAuth2.0。详细信息如下 尝试通过执行以下操作传递承载令牌
gcloud auth activate-service-account <service account> <key file>
gcloud auth print-identity-token <service account>
curl https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME \
-H "Authorization: bearer $(gcloud auth print-identity-token)"
gcloud身份验证激活服务帐户
gcloud auth打印标识令牌
卷曲https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME \
-H“授权:持票人$(gcloud auth打印身份令牌)”
FWIW…我重新创建了您的真实故事,也不理解调用程序不够用的原因。如下所示,gcloud beta函数调用…
似乎需要额外的权限。太好了,可以了!它还回答了问题#1:使用gcloud beta函数调用函数需要开发人员角色。
,但调用程序对于您的版本已经足够了。谢谢!