将对Google Cloud Platform服务帐户的访问权限限制为特定的Gmail帐户

时间:2020-01-10 02:38:47

标签: google-cloud-platform authorization service-accounts organizational-unit

我最近制作了一个程序,用于侦听与Gmail帐户关联的PUB / SUB主题。我一切正常。当推送通知到达时,它将根据消息内容执行不同的任务。

问题是我使用服务帐户连接到我需要的Google Cloud Platform上的所有API。服务帐户允许访问我们组织中的所有Gmail帐户。我需要以某种方式限制对特定Gmail帐户的访问。

与这个问题最接近的是这个问题Impersonating list of users with Google Service Account。但是,那里提供的唯一解决方案是将我的项目变成我不想做的市场应用程序。

我试图建立一个组织单位,并试图以某种方式将范围限制为该单位,但是似乎有(我能找到的)方法。我确实尝试过与Google Cloud Platform帮助交谈,但他们不知道答案,因为该回答并不完全属于他们的专业知识范围,因此将我转介给另一个帮助小组,但是我不符合他们的条件,因为我不支付支持费用。

编辑:看来我想做的事实际上没有出现。我将回到OAuth2身份验证方法。

1 个答案:

答案 0 :(得分:0)

isValid: boolean解释了可能性:

服务帐户既可以看作是资源,又可以看作是身份。

  • 将服务帐户视为身份时,可以为服务帐户授予角色,以允许其访问资源(例如项目)。

  • 将服务帐户视为资源时,可以将角色授予其他用户以访问或管理该服务帐户。

现在尝试在其中适应这种不切实际的意图...

如果您需要将服务帐户的访问权限限制为特定于用户的资源,则只能在应用程序级别(而不是系统级别)上进行-因为服务帐户只能模拟任何用户身份;例如。为了不弄乱所有权,在代表用户上传文件时。如果您希望1个用户身份访问1个特定于用户的资源,为什么还要使用服务帐户?在使用服务帐户时,为什么不仅仅假扮成正确的身份呢?如果只有1个用户身份,则甚至可以进行硬编码。但是,尽管如此,它只能在应用程序级别完成-不能为服务帐户本身进行配置。