google-cloud-platform - 在 GCP IAM 中授予基于对象的权限
问题描述
用例:
我有一个 GCP 设置:
- 多个Google Kubernetes Engine集群
- 多个CloudSQL实例
- 多个GCS 存储桶
基本上,我想以比项目范围更细的粒度授予用户权限(即用户A只能访问存储桶B,但可以访问CloudSQL实例C和D)
可能的解决方案 :
对于 GCS,这很容易并且有文档记录。
但是,我找不到其他两个类似的东西。CloudSQL 文档甚至似乎说这是不可能的( All permissions are applied to the project. You cannot apply different permissions based on the instance or other lower-level object.
)
探索的解决方法:
- 我尝试创建自定义 IAM 角色。我希望有某种方法可以过滤角色应用到的对象,其方式类似于 AWS IAM允许的
Resource
过滤器。这显然是不可能的。 - 对于 GKE,我可以给每个用户一个
Kubernetes Engine Cluster Viewer
角色(基本上只允许列出集群和关于它们的基本信息,以及使用gcloud
cli 工具登录),然后使用Kubernetes RBAC引擎提供非常细粒度的权限。这很好用,但不允许用户使用 Google Web 界面,这非常方便,特别是对于 k8s 的初学者。 Cloud SQL Client
同样,对于 CloudSQL,我可以直接通过 postgres 访问控制系统赋予角色,并管理我的用户。这很好用,但我的用户能够连接到其他实例(当然,他们仍然需要这些实例上的帐户)。此外,不能仅在特定实例上允许诸如恢复备份之类的操作。
那么,我是否遗漏了一些明显的东西,或者有人找到了解决这些限制的方法?
解决方案
对于 GKE,似乎唯一的选择是使用 RBAC 通过命名空间内的RoleBinding或 ClusterRoleBinding 为集群范围内的权限授予用户细粒度的权限。
关于 CloudSQL,目前不支持基于实例的权限,但您可以在此链接中跟踪此功能请求的任何更新。
推荐阅读
- python - Celery SQS 任务失败后不会执行
- php - 由于奇怪的版本错误,无法在 macOS Catalina 上安装 PHP 7.3
- html - 通过 p 标签中的 xslt i 标签将 xml 转换为 html
- python - 无法使用 openpyxl 写入输出 excel 文件
- elasticsearch - 如何从 ElasticSearch 中检索脚本字段以及其他字段
- java - 如何通过路径在 LibGDX 中绘制自定义形状?
- c - 尝试拆分字符串并将它们放入数组时收到错误消息
- java - 如何通过 Android 应用程序发出 HTTP 请求
- token - Instagram 令牌在一些请求后被阻止
- java - Querydsl 本机 jpa 查询返回实体而不是对象数组