GCP IAM:将角色绑定到服务账号失败

4

我已在GCP控制台上创建了一个ServiceAccount和一个自定义角色。

但是,在尝试将它们关联时,出现以下错误:

gcloud projects add-iam-policy-binding my-project \
  --member serviceAccount:cloudrun-poc@my-project.iam.gserviceaccount.com \
  --role roles/MyCustomRole
ERROR: Policy modification failed. For a binding with condition, run "gcloud alpha iam policies lint-condition" to identify issues in condition.
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: Role roles/ClusterUpscaler is not supported for this resource.

任何想法为什么?
2个回答

6
您可能需要在尝试分配之前创建角色MyCustomRole。不清楚它抱怨角色ClusterUpscaler的原因,但该项目中可能不存在集群...此外,自定义角色通常具有类似于projects/{project-id}/roles/{role-name}的名称。它们也可以被列出:
gcloud iam list-grantable-roles //cloudresourcemanager.googleapis.com/projects/PROJECT_ID

ClusterUpscaler 是一个自定义角色,只有这个权限:container.clusters.update。我正在尝试创建一个 CloudRun 服务,该服务应该能够调用 gcloud container clusters update 命令。欢迎提出任何其他建议。 - pkaramol
顺便说一下,当我使用您上面发布的命令时,该角色已列出。 - pkaramol
2
@pkaramol 自定义角色始终是针对项目的,您可能需要使用完全限定名称来分配它(与预定义角色相反,预定义角色在全局范围内可用)。 - Martin Zeitler
哇!就是这样!只需要fq角色名称!这样一个误导性的错误信息...无论如何,我建议您相应地更新您的答案,以便我接受它。 - pkaramol

0

您可以像输出建议的那样运行gcloud alpha iam policies lint-condition。对我来说,缺少了一个gcloud命令“Alpha”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接