从拒绝所有者的 gcloud 权限中删除不需要的服务帐户

Deleting unneeded service accounts from gcloud permission denied to owner

我想删除 gcloud 中的一些未使用的服务帐户。

                          Credentialed Accounts
ACTIVE  ACCOUNT
*       mike@mycompany.com
        tf@mycompany-terraform-admin.iam.gserviceaccount.com
        tf@mycompany-terraform-admin-20190506.iam.gserviceaccount.com
        tf@mycompany-terraform-admin-20190727.iam.gserviceaccount.com
        tf@mycompany-terraform-admin-20190725.iam.gserviceaccount.com
        tf-service@mycompany-terraform-admin-20200422.iam.gserviceaccount.com

然而,运行

gcloud iam service-accounts delete tf@mycompany-terraform-admin-20190506.iam.gserviceaccount.com

ERROR: (gcloud.iam.service-accounts.delete) PERMISSION_DENIED: Permission  iam.serviceAccounts.delete is required to perform this operation on service account projects/-/serviceAccounts/tf@mycompany-terraform-admin-20190506.iam.gserviceaccount.com.

我是帐户的所有者。我还需要什么权限?

旁白:我似乎将超过 90% 的时间都花在了 gcp 上的权限上,而不是实际做一些事情,而且还没有找到对此的清晰描述。任何人都知道如何有效使用服务帐户的好解释。

为了 delete a service account,您的权限必须高于编辑角色 (roles/editor),或者您必须被授予 Service Account Admin 角色(roles/iam.serviceAccountAdmin).

我建议您验证您正在使用的当前帐户,以确保为其设置的 IAM 策略符合成功完成操作所需的最低要求。

关于Service Accounts的使用,建议您参考以下文档:

  • Understanding Service Accounts;这将为您提供有关服务帐户的详细但高层次的概述、它们的工作方式、服务帐户的删除和重新创建以及最佳实践。
  • Service Account Overview;这是一个非常笼统但写得很好的服务帐户概述。它包含有关使用服务帐户时可能需要执行的每个步骤的简单易懂的描述性说明。
  • A Hitchhiker’s Guide to GCP Service Account Impersonation in Terraform;将此添加到此处是因为我注意到您的服务帐户与 Terraform 的使用相关联,并且许多人在他们的项目中使用 Terraform。
  • Managing Service Accounts;这是一个非常详细(因此很长)的 post 解释如何更好地管理服务帐户。
  • IAM FAQs;这些常见问题解答虽然非常笼统,但确实涵盖了 IAM 会遇到的大部分问题。由于服务帐户是 IAM 的一个子集,因此我建议在需要时进行咨询。

希望对您有所帮助。 IAM 非常大,可能需要一些时间才能恰到好处。请记住,一旦 IAM 设置正确,您可能不需要再次查看它。