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

问题描述 投票:0回答:3

我正在尝试使用

gcloud
cli 创建服务帐户密钥,我在谷歌上搜索并尝试使用不同的服务帐户,但它们都有相同的错误。我不确定我需要改变什么才能完成以下工作

例如:

gcloud iam service-accounts keys create ~/key.json \
    --iam-account myserviceaccount

错误:

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
gcloud
3个回答
42
投票

tl;dr iam 帐户不存在。

令人烦恼的是,我在运行中遇到了同样的问题:

gcloud iam service-accounts keys create \
  key.json \
 --iam-account [email protected]

并得到:

ERROR: (gcloud.iam.service-accounts.keys.create) PERMISSION_DENIED: Permission iam.serviceAccountKeys.create is required to perform this operation on service account projects/-/serviceAccounts/[email protected].

我是项目所有者,所以我绝对拥有所需的所有权限(我什至明确添加了服务帐户密钥管理员,但它仍然不起作用。

但实际上是因为那个特定的iam账户不存在。

不是很有帮助的错误消息。


10
投票

根据创建和管理服务帐户密钥文档,需要设置

iam.serviceAccountKeyAdmin
角色权限才能管理服务帐户密钥,Will Faris也提到过。

所需权限:

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

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


0
投票
  1. 转到组织(而不是项目)
  2. 前往IAM
  3. 为组织授予“组织策略管理员”角色并保存。
  4. 转到组织政策
  5. 编辑“禁用服务帐户密钥创建”(仍为组织)并禁用。

注意:您需要向管理员提供“POLICY”。 “组织管理员”权限集不足。

© www.soinside.com 2019 - 2024. All rights reserved.