我有一个运行MySQL的Google Cloud SQL服务器,技术知识不足的用户使用它将csv导入MySQL数据库。它们使用 GC SQL 中内置的导入函数。但是,有几个数据库,我想限制每个用户对数据库的访问。
这是我提到的菜单:https://i.stack.imgur.com/V4Ftq.png
我已经尝试分配一个访问权限较少的 IAM 角色,但除了 SQL 管理员之外,所有内容都会使导入选项变灰。SQL 管理员提供完全访问权限,甚至可以删除实例,因此它绝对不是一个选项。
任何帮助将不胜感激。
你不能。实际上,IAM 角色允许您控制对 GCP 组件的访问。在这里,您的要求是管理访问特定数据库模式的用户,这是 DBA 的角色。
唯一的解决方案是在Google API之上构建一些东西来限制/控制访问。
我意识到这是一个老问题,但您可以通过以下方式限制访问。针对特定资源名称(甚至更好的是使用标签(的 IAM 条件。这样,您可以授予仅适用于特定资源的特定权限。您可能需要创建一个仅具有这些权限(例如更新、连接等(的自定义角色,因为默认的 Cloud SQL 权限有点宽泛。
遗憾的是,这并不能完全解决预配资源的问题,因为您需要更广泛的权限来创建资源,但是一旦应用了标记,您就可以以更精细的方式管理它。
另一种选择是拥有一个非常精细的 GCP 层次结构并在不同的项目/组级别应用权限,但显然这变成了一场维护噩梦。