8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

PostgreSQL 中具有预定义角色的 IAM 用户不起作用

Sasha 2月前

20 0

在为如何授予 IAM 服务账户对我的 AlloyDB 主实例的读/写权限而苦恼之后,Jack Wotherspoon 回复了我在 GitHub 问题上的询问。我意识到我可以……

在为如何授予 IAM 服务账户对我的 AlloyDB 主实例的读/写权限而苦恼之后,Jack Wotherspoon 回复了我在 GitHub 问题上的询问。我意识到我可以使用 Terraform 授予 IAM 服务账户来自 PostgreSQL 的预定义角色。https: https://github.com/GoogleCloudPlatform/alloydb-python-connector/issues/266

完成这一步后,我现在面临另一个问题。我想授予 IAM 服务帐户 CREATE DB 和 CREATE ROLE 权限,应用程序团队将使用这些权限来创建他们的对象(我来自架构团队)。我测试了不同的角色,有两个符合我的要求:alloydbagent 和loydbimportexport。

alloydb predefined roles

我尝试使用 Terraform 授予 Alloydbagent 角色,但遇到错误。

Error: Error updating User "projects/sbx-200827-data/locations/us-east1/clusters/sbx-200827-data-dave-cluster/users/[email protected]": googleapi: Error 400: invalid roles: role alloydbagent is forbidden
Details:
[
  {
    "@type": "type.googleapis.com/google.rpc.RequestInfo",
    "requestId": "7f620fb22bf11fb7"
  }
]

  with module.gcp_alloydb.google_alloydb_user.iac_sa_user,
  on ..\..\..\main.tf line 345, in resource "google_alloydb_user" "iac_sa_user":
 345: resource "google_alloydb_user" "iac_sa_user" {

然后我测试了loydbimportexport角色,它成功了。但是,当我使用psql或pgAdmin连接IAM用户并尝试创建数据库或角色时,我收到了一条关于缺少权限的错误消息。

create db no permission

我发现创建数据库的唯一解决方法是在 CREATE DATABASE 语句之前使用 SET ROLE 命令。如果我这样做,它工作正常:

create db after set role

虽然这种方法有效,但我对数据库所有者作为loydbimportexport角色并不满意。

enter image description here

我的问题是:有没有办法直接使用 IAM 用户连接到 PostgreSQL 并运行 CREATE DATABASE 或 CREATE ROLE 命令,而无需使用 SET ROLE 命令?有什么建议或想法吗?

帖子版权声明 1、本帖标题:PostgreSQL 中具有预定义角色的 IAM 用户不起作用
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Sasha在本站《postgresql》版块原创发布, 转载请注明出处!
最新回复 (0)
返回
作者最近主题: