首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该为安全灵活的应用程序引擎->云功能通信设置哪些服务帐户权限

我应该为安全灵活的应用程序引擎->云功能通信设置哪些服务帐户权限
EN

Stack Overflow用户
提问于 2019-07-22 12:03:06
回答 2查看 243关注 0票数 1

我在确定我需要给哪个服务帐户指定某些角色时遇到了问题。

我有一个NodeJS应用程序运行在我灵活的应用程序引擎环境中。我有一个hello-world python3.7 HTTP云函数。

我想做一个从我的应用引擎到我的云功能的GET请求。

当allUser成员在hello-world云函数上被赋予云函数调用者角色时,一切都很好。

但是现在我想保护我的云功能端点,这样只有我灵活的应用程序引擎才能到达它。

我删除了allUser成员,就像预期的那样,当应用引擎试图调用时,我得到了一个403。

现在,我将@gae-api-prod.google.com.iam.gserviceaccount.com和@appspot.gserviceaccount.com成员添加到hello-world云函数中,并赋予它们云函数调用者角色。

我希望灵活的应用程序引擎现在能够调用hello-world云功能,因为我赋予它云函数调用者的角色。

但我一直有403个错误。

应用程序引擎可以灵活地使用哪个服务帐户来执行对云函数API的调用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-06 11:32:34

约翰·汉利是对的

当使用GCP库执行操作时(例如,),执行函数将使用底层服务帐户权限来执行这些操作。

当对云函数URL执行手动HTTP请求时,必须从元数据服务器获取令牌,以正确验证请求。

代码语言:javascript
运行
复制
def generate_token() -> str:
    """Generate a Google-signed OAuth ID token"""
    token_request_url: str = f'http://metadata/computeMetadata/v1/instance/service- 
    accounts/default/identity?audience={TARGET_URL}'
    token_request_headers: dict = {'Metadata-Flavor': 'Google'}

    token_response = requests.get(token_request_url, headers=token_request_headers)
    return token_response.content.decode("utf-8")

def do_request():
    token: str = generate_token()

    headers: dict = {
        'Content-type': 'application/json',
        'Accept': 'application/json',
        'Authorization': f'Bearer {token}'
    }

    requests.post(url=TARGET_URL, json=data, headers=headers)
票数 0
EN

Stack Overflow用户

发布于 2019-07-24 00:04:45

这些设置是为了通过服务帐户连接云功能而设置的:

  • 启用所需的API
  • 启用服务帐户
  • 充当用户服务帐户

默认的服务帐户创建一个云函数,有时并不拥有所有的特权。

您可以在这里找到更多信息:

https://cloud.google.com/functions/docs/securing/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57145654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档