【发布时间】:2017-11-01 21:23:05
【问题描述】:
我的目标是运行一个谷歌应用引擎应用程序,并以最少的资源访问它所需的资源。在我的情况下,应用程序将访问项目中的数据存储(这是使用来自https://github.com/GoogleCloudPlatform/appengine-guestbook-go.git 的源代码 git checkout origin/part4-usingdatastore 的 golang 示例教程)
我做了以下
- 创建一个新项目,foobarproject3
- 在项目中创建了一个新应用(使用 golang)
- 在项目 IAM/IAM 注意到 foobarproject3@appspot.gserviceaccount.com,假设这是服务帐户,因此将其角色更改为 BigQuery 用户。请注意,未配置任何数据存储角色(UI 强制我提供对某些内容的访问权限,因此我选择了 BQ)
- 按照使用数据存储区 golang 应用程序(留言簿应用程序)的教程说明并部署该应用程序。
- 打开了我的应用程序的链接:https://foobarproject3.appspot.com/ 它失败了(这很好,这是我所期望的,因为服务帐户没有授予应用程序读取/写入数据存储的权限)
- 刷新https://foobarproject3.appspot.com/,它开始工作了
关于应用引擎中的服务帐户,我有一些基本的东西我不了解。应用引擎不是使用这些服务帐号访问项目资源吗?当服务帐户没有允许访问数据存储的策略时,为什么应用可以访问数据存储?
【问题讨论】: