【问题标题】:Limiting the access to Google Cloud Platform Service Account to specific Gmail Accounts将 Google Cloud Platform 服务帐户的访问权限限制为特定的 Gmail 帐户
【发布时间】:2020-04-27 16:48:07
【问题描述】:

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

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

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

我曾尝试建立一个组织单位并试图以某种方式将范围限制在此范围内,但似乎有已知的方法(我能找到)来做。我确实尝试与 Google Cloud Platform 帮助交谈,但他们不知道答案,因为它不完全属于他们的专业领域,并将我转介到另一个帮助小组,但我没有资格获得他们的帮助,因为我没有'无需支付支持费用。

编辑:实际上我想做的事情似乎并不可能。我将回到 OAuth2 身份验证方法。

【问题讨论】:

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


    【解决方案1】:

    Understanding service accounts 解释了可能性:

    可以将服务帐户视为资源和身份。

    • 当将服务帐号视为身份时,您可以将角色授予服务帐号,使其能够访问资源(例如项目)。

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

    现在尝试将那个不切实际的意图融入其中......

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

    【讨论】:

    • 我确实有一个方法是通过 OAuth2 登录帐户,但服务帐户似乎更容易实现,这就是我最初选择它的原因。正确的身份是硬编码的,但团队中的其他人对拥有这么大权力的账户感到担忧。鉴于反馈,我想我会回到 OAuth2 方法。干杯。
    猜你喜欢
    • 2021-10-30
    • 1970-01-01
    • 2021-04-19
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多