返回
从理论到实践,深刻理解K8s RBAC机制
后端
2023-09-16 23:03:23
RBAC(基于角色的访问控制)是 Kubernetes 的核心安全机制之一,它允许管理员通过分配角色来控制用户对集群资源的访问权限。
本指南将帮助你深入了解 RBAC,并教你如何在你的 Kubernetes 集群中实施 RBAC。我们将从 RBAC 的基本原理入手,然后介绍如何创建角色、用户和绑定,以及如何使用 RBAC 来控制对 Kubernetes 资源的访问。
RBAC的基础
RBAC是一种访问控制模型,它通过将用户分配到角色,然后将角色分配到权限来工作。角色是一组可以执行特定操作的权限,而用户是一组拥有角色的人。
在 Kubernetes 中,有四种内置的角色:
- 管理员: 可以访问所有资源的所有操作
- 编辑: 可以访问所有资源的所有操作,但不能创建或删除资源
- 查看: 可以查看所有资源的所有操作,但不能修改它们
- 无: 不能访问任何资源的任何操作
你还可以创建自己的自定义角色,这些角色可以具有你指定的任何权限。
RBAC 的实践
在 Kubernetes 中实施 RBAC 的步骤如下:
-
创建角色: 使用
kubectl create role
命令创建角色。例如:kubectl create role my-role --verb=get,list,watch --resource=pods
-
创建用户: 使用
kubectl create serviceaccount
命令创建用户。例如:kubectl create serviceaccount my-user
-
将用户分配给角色: 使用
kubectl create rolebinding
命令将用户分配给角色。例如:kubectl create rolebinding my-rolebinding --role=my-role --user=my-user
-
测试 RBAC: 使用
kubectl auth can-i
命令测试 RBAC。例如:kubectl auth can-i get pods
如果 RBAC 配置正确,你应该会看到如下输出:
yes
结论
RBAC 是一种强大的工具,可以用来控制用户对 Kubernetes 资源的访问权限。通过使用 RBAC,你可以确保只有适当的人员才能访问适当的资源。