【问题标题】:iam.serviceAccounts.getIamPolicy is required to perform this operation on service account需要 iam.serviceAccounts.getIamPolicy 才能对服务帐户执行此操作
【发布时间】:2020-04-24 20:55:15
【问题描述】:

来自: https://cloud.google.com/iam/docs/granting-roles-to-service-accounts

运行此命令:

gcloud iam service-accounts get-iam-policy \
    mysa@my-project.iam.gserviceaccount.com

我明白了:

gcloud iam service-accounts get-iam-policy mysa@my-project.iam.gserviceaccount.com
ERROR: (gcloud.iam.service-accounts.get-iam-policy) PERMISSION_DENIED: Permission iam.serviceAccounts.getIamPolicy is required to perform this operation on service account projects/-/serviceAccounts/mysa@my-project.iam.gserviceaccount.com

但我确实对当前用户(角色所有者)拥有iam.serviceAccounts.getIamPolicy 权限?

【问题讨论】:

  • 您是否正确指定了服务帐户(在您的项目中列出)? Link
  • 是的,我使用服务帐户中列出的名称
  • 或“电子邮件”列
  • 这很奇怪,因为使用该命令获取策略应该足够了。我唯一能得到完全相同的错误是当我指定的服务帐户错误时(例如不是service account 或其中有一个typo)。
  • 我会调查是否有其他原因导致此错误并通知您。

标签: google-cloud-platform gcloud google-cloud-iam


【解决方案1】:

问题在于项目的电子邮件成员(服务帐户电子邮件) - 在 IAM 用户中。

当我在 IAM 中删除此(SA 成员)时, 结果它给出了“etag:ACAB”。

我需要弄清楚那是什么,但它确实有效。刚找到this

这个帐户,也许应该在删除服务帐户时自动删除 - 但我知道什么:-)

【讨论】:

  • etag: ACAB 表示您尚未为服务帐户分配角色 - link
  • @DenisT。 - 这是不正确的。 ACAB 是用于跟踪更新的令牌,并不代表空的服务帐户角色列表。当你修改角色时,标签会改变。如果您尝试使用不正确的标签更新角色,请求将失败。
  • 谢谢,约翰。没错,如果您尚未为服务帐户分配角色,则输出将仅显示 etag 值。
猜你喜欢
  • 2021-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
相关资源
最近更新 更多