【问题标题】:Give object-based premissions in GCP IAM在 GCP IAM 中授予基于对象的权限
【发布时间】:2019-08-05 09:40:13
【问题描述】:

用例:

我有一个 GCP 设置:

基本上,我想为用户授予比项目范围更细粒度的权限(即用户A只能访问存储桶B,但可以访问CloudSQL实例C和D)

可能的解决方案:

对于 GCS,这是easy and documented

但是,我找不到其他两个类似的东西。 CloudSQL 文档甚至似乎说它是not possible (All permissions are applied to the project. You cannot apply different permissions based on the instance or other lower-level object.)

探索的解决方法:

  • 我尝试创建custom IAM roles。我希望有某种方法可以过滤应用角色的对象,其方式类似于 AWS IAM allows with its Resource filter。 这显然是不可能的。
  • 对于 GKE,我可以给每个用户Kubernetes Engine Cluster Viewer 角色(基本上只允许列出集群和有关它们的基本信息,以及使用gcloud cli 工具登录),然后使用Kubernetes RBAC引擎提供非常细粒度的权限。这很好用,但不允许用户使用非常方便的 Google 网络界面,尤其是对于 k8s 的初学者。
  • 同样,对于CloudSQL,我可以赋予Cloud SQL Client角色,通过postgres访问控制系统直接管理我的用户。这很好用,但我的用户能够连接到其他实例(当然,他们仍然需要这些实例上的帐户)。此外,不能只在特定实例上进行恢复备份等操作。

那么,我是否遗漏了一些明显的东西,或者有人找到了解决这些限制的方法?

【问题讨论】:

  • 您是通过计算实例还是 appengine 连接到 cloudsql?使用 appengine 可以限制对特定服务角色的实例访问。
  • 我从计算引擎间接使用它(因为k8s节点是计算引擎实例)

标签: google-cloud-platform google-iam


【解决方案1】:

对于 GKE,似乎唯一的选择是使用 RBAC 通过命名空间内的RoleBinding 为用户提供细粒度的权限,或者使用 ClusterRoleBinding 提供集群范围的权限。

关于 CloudSQL,目前不支持基于实例的权限,但您可以在此 link 中跟踪此功能请求的任何更新。

【讨论】:

    猜你喜欢
    • 2021-02-25
    • 2011-05-07
    • 2021-09-14
    • 2023-02-12
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多