首页 > 解决方案 > GCloud IAM 角色中的权限如何在 Kubernetes 集群中实现?

问题描述

我在 GKE 上运行 Kubernetes 应用程序。在 GCP IAM 控制台中,我可以看到几个内置角色,例如Kubernetes Engine Admin. 每个角色都有一个 ID 和与之关联的权限——例如​​,Kubernetes Engine Admin有 IDroles/container.admin和大约 300 个权限,每个都类似于container.apiServices.create.

在 Kubernetes 集群中,我可以运行:

kubectl get clusterrole | grep -v system:  # exclude system roles

这将返回以下内容:

NAME                                                                   AGE
admin                                                                  35d
cloud-provider                                                         35d
cluster-admin                                                          35d
cluster-autoscaler                                                     35d
edit                                                                   35d
gce:beta:kubelet-certificate-bootstrap                                 35d
gce:beta:kubelet-certificate-rotation                                  35d
gce:cloud-provider                                                     35d
kubelet-api-admin                                                      35d
view                                                                   35d

我在此表中没有看到任何反映 GCP IAM 中角色的角色。

既然如此,GCP IAM 角色是如何在集群中实施/执行的?除了使用 RBAC 之外,Kubernetes 在进行权限检查时还会与 GCP 通信吗?

标签: kubernetesgoogle-cloud-platformgoogle-kubernetes-enginerbacgoogle-iam

解决方案


RBAC系统可让您对用户访问集群上运行的 API 资源的方式进行细粒度控制。您可以使用 RBAC 为集群的用户动态配置权限,并定义他们可以与之交互的资源类型。

此外,GKE 还使用Cloud Identity and Access Management (IAM)来控制对集群的访问。

希望这可以帮助!


推荐阅读