如何将 GCP 角色添加到可授予列表?

How to add GCP role to the grantable list?

我正在尝试在 GCP 中设置一个服务帐户,以便我可以使用

docker拉

来自我的个人 shell 以及来自 Google 云 Shell,它自动运行。

我试过这个:

gcloud projects add-iam-policy-binding myProject --member=serviceAccount:dockerdude --role=roles/container.admin

但是我得到了这个不是很有帮助的错误:

错误:策略修改失败。对于条件绑定,运行“gcloud alpha iam policies lint-condition”用于识别条件中的问题。 错误:(gcloud.projects.add-iam-policy-binding)INVALID_ARGUMENT:无效的服务帐户(dockerdude)。

我发现了问题:这个角色不可授予 ...我使用了命令

gcloud iam list-grantable-roles 
         //cloudresourcemanager.googleapis.com/projects/myProject

... 实际上角色 container.admin 不在列表中。

我的问题:如何让这个角色可授予?或者是否有其他方法来获得我正在寻找的东西(docker 从用户 shells 以及 Google Cloud 获得 许可Shell)?

非常感谢您对这个问题的任何见解!

您可以使用此参考以交互方式编写您的命令,Granting a Single Role:

Note: If you want to identify a service account just after it is created, use the numeric ID rather than the email address to ensure that it is reliably identified.

gcloud iam service-accounts add-iam-policy-binding ServiceAccount_ID \
    --member=PRINCIPAL --role=ROLE_ID \
    --condition=CONDITION

缺少一些参数,但应该是……

gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \
    --member=serviceAccount:duckerdude@example.com --role=/roles/container.clusterAdmin

也检查这个非常好 explanation of the service accounts 因为它们可以被描述为身份和资源,检查完整问题以获取更多详细信息:

You have to read the command like this

gcloud <resourceType> add-iam-policy-binding <resourceName> --member=<accountToGrantOnTheResource> --role=<roleToGrantOnTheResource>

此外,请阅读与 list-grantable-roles 命令相关的

They can also be listed:

gcloud iam list-grantable-roles //cloudresourcemanager.googleapis.com/projects/PROJECT_ID