Files
kuboard-press/learning/k8s-advanced/sec/kuboard.md
huanqing.shao 086cf27744 入门教程
2021-04-03 22:11:52 +08:00

4.2 KiB
Raw Blame History

vssueId, layout, sharingTitle, description, meta
vssueId layout sharingTitle description meta
175 LearningLayout Kubernetes的RBAC授权从未如此简单 Kubernetes教程_Role-based_access_control_(RBAC)基于角色的访问控制_是Kubernetes中支持的一种授权方式。本文描述了如何使用Kuboard管理RBAC授权规则
name content
keywords Kubernetes 教程,Kubernetes 授权,Kubernetes RBAC,Kubernetes权限,Service Account Permissions

使用Kuboard管理ServiceAccount及RBAC

前提

为名称空间创建管理员用户

::: tip 用户名密码?

按照下面的步骤,可以快速为 Kubernetes 中的某个名称空间创建管理用户

  • 进入 Kuboard 名称空间页面,如下图所示:

    Kubernetes教程_ServiceAccount

  • 点击上图左侧菜单中的 权限管理 -> ServiceAccount 按钮,进入 ServiceAccount 列表页面,如下图所示:

    Kubernetes教程_ServiceAccount

  • 点击上图中的 创建ServiceAccount 按钮,如下图所示:

    填写 名称 后,保存 ServiceAccount

    Kubernetes教程_ServiceAccount

  • 完成创建后,将自动进入 ServiceAccount 详情页,如下图所示:

    • 图中,可以看到 Kubernetes 默认为 ServiceAccount 授予的 集群级别权限
    • 可以为一个 Service Account 创建多个 Secret
    • 也可以删除 Service Account 的原有 Secret

    当您使用 Service Account 作为 Kuboard / Kubernetes Dashboard 的登录方式时,这个特性就显得非常有用,您可以定期更换 ServiceAccount 的 Secret Token以增强系统的安全性。

    Kubernetes教程_ServiceAccount

  • 点击上图中 RoleBinding 后的 添加 按钮,如下图所示:

    并在 关联的 ClusterRole/Role 选择:

    • kind : ClusterRole
    • name : admin

    ::: tip 授权范围

    • 如果创建 ClusterRoleBinding,则,用户可以访问集群中的所有名称空间;
    • 如果创建 RoleBinding,则,用户只能访问 RoleBinding 所在名称空间;
      • 可以在名称空间 a 中创建一个 RoleBinding关联名称空间 b 中的 ServiceAccount 和某一个 ClusterRole以授权名称空间 b 中的 ServiceAccount 访问名称空间 a如此以使得该 ServiceAccount 可以访问多个指定的名称空间。 :::

    ::: tip 预置角色 Kubernetes 集群默认预置了三个面向用户的 ClusterRole

    • view 可以查看 K8S 的主要对象,但是不能编辑
    • edit 具备view 的所有权限,同时,可以编辑主要的 K8S 对象
    • admin 具备 edit 的所有权限,同时,可以创建 Role 和 RoleBinding (在名称空间内给用户授权)

    这三个 ClusterRole 均为 Aggregated ClusterRole,可以通过聚合的方式向其添加新的访问权限,请参考 为 viewer 增加查看容器日志的权限 :::

    Kubernetes教程_ServiceAccount

  • 点击上图中的 保存 按钮,完成后如下图所示:

    可以观察到已经为 admin-user 这个 ServiceAccount 授予了名称空间内部的 admin 角色,对应的权限可以在 名称空间级别权限 中查看

    Kubernetes教程_ServiceAccount

  • 点击上图中的 查看Token 按钮,如下图所示:

    此 Token 可以用来登录 Kuboard 界面

    Kubernetes教程_ServiceAccount

下一步

在 kubectl 中使用 ServiceAccount 的 Token 管理 Kubernetes 集群