【问题标题】:Prevent IAM escalation in GCP防止 GCP 中的 IAM 升级
【发布时间】:2019-12-29 05:26:15
【问题描述】:

我想创建一个 GCP 项目并向团队授予对特定 API 的访问权限/权限。

但我希望他们是自治的:他们应该能够在我允许的范围内创建自己的服务帐户。

问题是,如果我授予他们 IAM 编辑权限,他们可以授予自己项目中的任何其他权限。

Kubernetes 的 RBAC API 就是为此而精心设计的,用户 who is able to modify the roles can't put more permission than the ones he has。

那么是否可以让例如具有 Cloud SQL 管理员角色的用户允许他向服务帐户授予类似的权限,但也可以阻止他授予 Cloud Storage 权限?

【问题讨论】:

    标签: google-cloud-platform google-iam


    【解决方案1】:

    根据这里的文档似乎是可能的:

    https://cloud.google.com/iam/docs/setting-limits-on-granting-roles

    在大型组织中,让团队独立管理其资源的身份和访问管理 (IAM) 政策会很有帮助。但是,让委托人授予或撤销所有 IAM 角色会大大增加您的安全风险。

    给定用例:

    假设您希望让用户 Finn (finn@example.com) 充当您项目的受限 IAM 管理员。您希望 Finn 只能为您的项目授予和撤消计费帐户管理员 (roles/billing.admin) 和计费帐户用户 (roles/billing.user) 角色。

    我正在努力实现同样的目标。我希望 Terraform 服务帐户能够做它需要做的一切,除了允许用户将他们的角色提升到项目范围之外(即没有所有者级别的角色,只有资源级别的角色)。

    【讨论】:

      【解决方案2】:

      遗憾的是没有。无法防止“角色/权限升级”。如果某人是 IAM 管理员,他可以分配她想要的角色,甚至可以分配给他自己和更高级别的人,他们会隐藏当前权限。

      但是,您的政策允许您对项目或组织进行限制:允许的 API、允许的外部帐户、公共 IP...

      【讨论】:

      • 这部分是错误的:“很遗憾没有。无法防止角色升级”。
      • 我改进了细节。
      【解决方案3】:

      我想创建一个 GCP 项目并授予对特定 API 的访问权限 / 团队的权限。

      您可以为服务做到这一点,这也是 Google IAM 存在的原因之一。您不能专门为 API 指定角色 - 您可以通过不授予启用服务的权限来阻止启用任何 API。您可以使用组织策略约束来防止为项目启用某些 API,但不能为个人启用。

      但我希望他们是自主的:他们应该能够创建自己的 在我允许的范围内拥有服务帐户。

      Google Cloud IAM 不支持此功能。如果您有权创建服务帐户 (roles/iam.serviceAccountAdmin),则您也有权将角色分配给该服务帐户。这是一个管理员级别的权限,应该只授予管理员而不是普通用户。仔细管理此角色,因为管理员可以创建具有项目所有者角色的服务帐户。

      那么是否可以让例如 Cloud SQL 管理员的用户 角色,允许他向服务帐户授予类似的权限, 还要阻止他授予 Cloud Storage 权限?

      不支持。要获得将角色分配给服务帐号的权限,您必须是服务帐号管理员。

      【讨论】:

        猜你喜欢
        • 2019-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-02
        • 2021-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多