使用gcloud cli创建服务帐户密钥时,权限被拒绝

pyC*_*hon 1 gcloud

我正在尝试使用gcloudcli 创建服务帐户密钥,我在google上搜索并尝试使用不同的服务帐户,但是它们都有相同的错误。我不确定要进行以下工作需要进行哪些更改

例如:

gcloud iam service-accounts keys create ~/key.json \
    --iam-account myserviceaccount
Run Code Online (Sandbox Code Playgroud)

错误:

ERROR: (gcloud.iam.service-accounts.keys.create) PERMISSION_DENIED: Permission iam.serviceAccountKeys.create is required to perform this operation on service account projects/-/serviceAccounts/myserviceaccount
Run Code Online (Sandbox Code Playgroud)

Ram*_*ino 23

tl; dr iam帐户不存在。

恼人的是,我遇到了运行相同的问题:

gcloud iam service-accounts keys create \
  key.json \
 --iam-account cockroach-backup-sa@my-project-123.iam.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)

得到:

ERROR: (gcloud.iam.service-accounts.keys.create) PERMISSION_DENIED: Permission iam.serviceAccountKeys.create is required to perform this operation on service account projects/-/serviceAccounts/cockroach-backup-sa@my-project-123.iam.gserviceaccount.com.
Run Code Online (Sandbox Code Playgroud)

我是项目负责人,因此我绝对拥有所需的所有权限(我什至明确添加了“服务帐户密钥管理员”,但仍然无法使用。

但这实际上是因为该iam帐户不存在。

不是非常有用的错误消息。


Arm*_*_SC 8

根据创建和管理服务帐户密钥文档,需要设置iam.serviceAccountKeyAdmin角色权限才能管理服务帐户密钥,正如Will Faris所提到的。

所需权限:

要允许用户管理服务帐户密钥,请授予服务帐户密钥管理员角色 (roles/iam.serviceAccountKeyAdmin)。Cloud IAM 原始角色还包含管理服务帐号密钥的权限,但我们建议改为授予此角色,以防止对其他 GCP 资源进行不必要的访问。

此外,您可以查看授予、更改和撤销对项目成员的访问权限指南,以了解有关在 GCP 中添加角色访问权限所需的过程的更多信息,以及包含工作时可用角色的理解角色文档与服务帐户。