【发布时间】:2026-01-07 05:20:03
【问题描述】:
我遇到了一个服务帐户问题,该服务帐户附加了名为 Preemptible Killer 的角色。
角色绑定到这个服务帐户,我什至给了它“编辑器”访问权限以进行调试。
我有一个项目,我仔细检查了名称是否正确。
当我在点击删除实例 API 时收到 403 时遇到问题。如果我访问 Policy Troubleshooter,理论上我可以看到,它具有正确的访问权限。
为 preemptible-killer@{project}.iam.gserviceaccount.com、compute.instances.delete、instances/{instance} 的 API 调用授予访问权限。
但是,当从我的 K8s 集群节点调用它时,我得到一个 403。这是意外的 403、服务帐户和角色屏幕截图。我肯定错过了一些我不知道的东西。
这是角色:
这是附加到服务帐户的自定义角色 + 编辑角色。
❯ gcloud projects get-iam-policy {project}
bindings:
- members:
- serviceAccount:preemptible-killer@{project}.iam.gserviceaccount.com
role: projects/{project}/roles/preemptible_killer
- members:
- serviceAccount:preemptible-killer@{project}.iam.gserviceaccount.com
role: roles/editor
【问题讨论】:
-
如果您使用 gcloud 作为服务帐户进行身份验证,然后尝试运行 gcloud 命令来删除实例,会发生什么情况。它有效吗?理想情况下,请从 GKE 内的 pod 内的容器内尝试,但如果没有,Cloud Console 仍将是一个开始测试。
-
@Kolban 刚刚尝试了您的建议。我尝试使用 gcloud 身份验证作为本地计算机上的服务帐户删除实例。我犯了同样的错误。我不确定我错过了什么,在我看来角色已分配等等。我肯定错过了一些东西。
-
这很好,因为它消除了许多虚假的可能性。现在让我们看看您当前的政策……阅读以下内容并开始为您的项目发布转储政策。 *.com/questions/47006062/…
-
我编辑了其他角色,因为我认为我们不需要它们,但这是我所看到的我们正在寻找的角色。将它们作为编辑添加到主要问题中。
-
您是否在集群上激活了工作负载身份?
标签: google-cloud-platform google-cloud-iam