我正在尝试使用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
答案 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文档,其中包含以下内容的可用角色:使用服务帐户。