0

我在 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 通信吗?

4

2 回答 2

0

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

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

希望这可以帮助!

于 2019-03-25T09:27:27.103 回答
0

RBAC 从 IAM 继承权限,所以要小心。如果您设置集群管理员权限,例如在 IAM 中,您将无法通过 RBAC 授予更少的权限。

如果要使用 RBAC,则需要为用户设置最低权限(给定您的用例),然后通过 RBAC 精细管理权限。

于 2019-03-25T10:22:30.563 回答