我们有一个Postgres数据库,用于Google Cloud SQL中的一项服务。它目前使用的是使用用户名和密码的内置身份验证。我想添加IAM身份验证,所以我打开了cloudsql.iam_authentication
标志。
现在,我正在尝试使用GCP控制台添加我们作为IAM用户的IAM组。因此,如果IAM组是group@iam.example.com
,而我的GCP帐户是属于IAM组的user@example.com
,则我添加了group@iam.example.com
作为IAM用户。它要求获得我明确授予该组的云SQL实例用户权限(它已经拥有项目所有者权限(。现在,当我尝试使用以下命令使用psql
登录时
PGPASSWORD=$(gcloud auth print-access-token) psql --host=127.0.0.1 --username=user@example.com --dbname=<DB_NAME>
我得到以下错误-
psql: error: FATAL: password authentication failed for user "user@example.com"
当我使用IAM组电子邮件作为用户名时,我会收到这个-
psql: error: FATAL: Cloud SQL IAM user authentication failed for user "group@iam.example.com"
当我将自己的电子邮件添加为IAM用户时,即使我没有任何与组不同的个人权限,并且云控制台抱怨缺少实例用户权限,我也可以使用自己的电子邮件作为用户名登录psql。
是否有任何方法可以让我只将一个IAM组作为用户,并避免将所有组成员添加为云SQL中的IAM用户?
不确定它是否仍然有帮助,但您需要将用户(而不是组(添加到Google Cloud SQL实例用户中,并在那里选择cloud IAM authentication
方法,就像这里所说的那样,它是Google文档。你不能在那里添加组。该组的唯一用途是通过将Cloud SQL Instance User
角色赋予该组并在那里添加用户,而不是单独赋予用户角色,从而更容易将角色赋予用户。