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

时间:2018-07-24 21:56:48

标签: gcloud

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

例如:

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

2 个答案:

答案 0 :(得分:12)

tl; dr iam帐户不存在。

令人讨厌的是,我遇到了同一问题:

gcloud iam service-accounts keys create \
  key.json \
 --iam-account cockroach-backup-sa@my-project-123.iam.gserviceaccount.com

并得到:

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.

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

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

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

答案 1 :(得分:2)

基于Creating and Managing Service Account Keys文档,需要设置iam.serviceAccountKeyAdmin角色权限才能管理服务帐户密钥,正如Will Faris所述。

所需的权限:

  

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

此外,您可以查看Granting, Changing, and Revoking Access to Project Members指南,以详细了解在GCP中添加角色访问所需的过程,以及Understanding Roles文档,其中包含以下内容的可用角色:使用服务帐户。