返回

从理论到实践,深刻理解K8s RBAC机制

后端

RBAC(基于角色的访问控制)是 Kubernetes 的核心安全机制之一,它允许管理员通过分配角色来控制用户对集群资源的访问权限。

本指南将帮助你深入了解 RBAC,并教你如何在你的 Kubernetes 集群中实施 RBAC。我们将从 RBAC 的基本原理入手,然后介绍如何创建角色、用户和绑定,以及如何使用 RBAC 来控制对 Kubernetes 资源的访问。

RBAC的基础

RBAC是一种访问控制模型,它通过将用户分配到角色,然后将角色分配到权限来工作。角色是一组可以执行特定操作的权限,而用户是一组拥有角色的人。

在 Kubernetes 中,有四种内置的角色:

  • 管理员: 可以访问所有资源的所有操作
  • 编辑: 可以访问所有资源的所有操作,但不能创建或删除资源
  • 查看: 可以查看所有资源的所有操作,但不能修改它们
  • 无: 不能访问任何资源的任何操作

你还可以创建自己的自定义角色,这些角色可以具有你指定的任何权限。

RBAC 的实践

在 Kubernetes 中实施 RBAC 的步骤如下:

  1. 创建角色: 使用 kubectl create role 命令创建角色。例如:

    kubectl create role my-role --verb=get,list,watch --resource=pods
    
  2. 创建用户: 使用 kubectl create serviceaccount 命令创建用户。例如:

    kubectl create serviceaccount my-user
    
  3. 将用户分配给角色: 使用 kubectl create rolebinding 命令将用户分配给角色。例如:

    kubectl create rolebinding my-rolebinding --role=my-role --user=my-user
    
  4. 测试 RBAC: 使用 kubectl auth can-i 命令测试 RBAC。例如:

    kubectl auth can-i get pods
    

如果 RBAC 配置正确,你应该会看到如下输出:

yes

结论

RBAC 是一种强大的工具,可以用来控制用户对 Kubernetes 资源的访问权限。通过使用 RBAC,你可以确保只有适当的人员才能访问适当的资源。

延伸阅读