更改应用程序引擎服务帐户角色不会影响访问



我的目标是运行一个谷歌应用程序引擎应用程序,只需最少的资源访问权限。在我的情况下,应用程序将访问项目中的数据存储(这是golang示例教程,使用源代码gitcheckout-origina/part4 using datastore fromhttps://github.com/GoogleCloudPlatform/appengine-guestbook-go.git)

我做了以下

  • 创建一个新项目foobarproject3
  • 在项目中创建了一个新应用程序(使用golang)
  • 在项目中,IAM/IAM注意到foobarproject3@appspot.gserviceaccount.com,假设这是服务帐户,所以将其角色更改为仅BigQuery用户。请注意,没有配置数据存储角色(UI强制我提供对某些内容的访问权限,所以我选择了BQ)
  • 按照教程中关于使用数据存储golang应用程序(留言簿应用程序)的说明进行操作,并部署了该应用程序
  • 已打开指向我的应用程序的链接:https://foobarproject3.appspot.com/它失败了(这很好,这正是我所期望的,因为服务帐户没有授予应用程序读/写数据存储的权限)
  • 已刷新https://foobarproject3.appspot.com/它开始工作了

关于应用程序引擎中的服务帐户,我有一些基本的不了解。应用程序引擎不是在使用这些服务帐户访问项目资源吗?当服务帐户没有允许访问数据存储的策略时,为什么应用程序可以访问数据存储?

"我的目标是运行一个谷歌应用程序引擎应用程序,只需最少的资源访问权限。">

在没有更多上下文的情况下打开包装是很危险的。除了应用程序引擎的默认行为之外,你还试图实现什么?

我的经验是,如果一个人在不了解基本情况的情况下开始改变角色,事情就会发生变化(或者南方,或者西方,或者梨形,取决于你在哪里)。所以我怀疑你第三枪射中了自己的脚。

当您从浏览器访问应用程序时,您使用的是您自己的用户凭据,而不是应用程序的服务帐户。如果您使用这些凭据创建应用程序,则您的用户凭据可能正是应用程序所有者/管理员凭据。例如,看到app.yaml处理程序登录:admin选项在标准env-python GAE应用程序上无效吗?

请确保您从该应用程序注销,或尝试从匿名浏览器窗口访问该应用程序,或使用dumb(er)实用程序来防止意外/不希望的凭据泄漏。

应用程序的服务帐户用于您的应用程序在与其他服务/应用程序交互时识别自己。从理解服务帐户:

服务帐户是一种特殊类型的谷歌帐户,属于您的应用程序或虚拟机(VM),而不是个人最终用户。您的应用程序假定服务帐户调用Google API,这样用户就不会直接参与。服务帐户可以有零对或多对服务帐户密钥,用于向谷歌进行身份验证。

最新更新