资讯专栏INFORMATION COLUMN

Rancher中的K8S认证和RBAC

Forest10 / 2270人阅读

摘要:在中使用验证使用身份验证策略来认证用户的。审阅状态包含名称和组等用户信息。中的授权模块稍后将以此确定该用户的访问级别。认证请求认证服务决定该用户是否通过认证,并向发送响应。在对的请求成功进行认证之后,必须授权该请求。

Rancher Kubernetes拥有RBAC(基于角色的访问控制)功能,此功能可以让管理员配置不同的策略,允许或拒绝用户和服务帐户访问Kubernetes API资源。

为了更好地理解RBAC功能是如何工作的,本文将阐明如何使用Kubernetes API进行身份认证,以及RBAC授权模块如何与认证用户协同工作。

在Rancher中使用KUBERNETES验证

Rancher使用Webhook Token身份验证策略来认证用户的bearer token。首先,用户使用Rancher验证通过Kubernetes > CLI选项卡获得kube配置文件,这其中就包含bearer token。然后,kubectl借助此token和web hook远程认证服务,用Kubernetes API对用户进行身份认证:

当用户尝试使用bearer token对Kubernetes API进行认证时,认证webhook会与Rancher Kubernetes认证服务进行通信,并发送包含该token的身份认证审查对象。然后,Rancher Kubernetes认证服务将会发送一个检查状态,该状态指定用户是否经过身份认证。

审阅状态包含名称、uid和组等用户信息。Kubernetes API中的授权模块稍后将以此确定该用户的访问级别。

以下是Kubernetes发送给Rancher Kubernetes认证服务的认证请求示例。

认证请求:

Rancher Kubernetes认证服务决定该用户是否通过认证,并向Kubernetes发送响应。

认证响应:

如您所见,由于环境所有者发送此请求,用户在系统中被归为system:masters组,该用户组可以访问Kubernetes集群中的所有资源:

集群角色“集群管理”资源允许访问所有API组中的所有Kubernetes资源:

RBAC授权模块

对API的请求包含请求者的用户名、请求的操作以及操作所影响的对象的信息。在对Kubernetes API的请求成功进行认证之后,必须授权该请求。

RBAC授权模块定义了四个顶级对象,这四个对象控制授权用户的授权决策:

角色

集群角色

角色绑定

集群角色绑定

角色和集群角色都标识了Kubernetes API资源的权限集。它们之间唯一的区别是:角色可以在命名空间中定义,而集群角色绑定则在集群范围内定义。

角色绑定和集群角色绑定将定义的角色分配给用户、组或服务帐户。而它们可以通过在命名空间中进行角色绑定或在集群范围内进行集群角色绑定来获得授予权限。在下一节中我们将讨论相关示例。

如何在Rancher中启用Kubernetes RBAC功能

要在Rancher中全新安装Kubernetes来启用RBAC功能,您可以编辑默认环境或创建新的环境模板。在Kubernetes环境选项中,您可以启用RBAC,如果您已经启动了Kubernetes基础设施服务,则可以单击“更新”以更新Kubernetes的配置选项。

RBAC示例

如前一节所述,这些示例假设您已经启用了RBAC功能的Kubernetes,并假设您已启用Rancher的GitHub身份认证。

作为Kubernetes环境的所有者,如前所述,您可以访问所有Kubernetes API,因为集群管理员角色是默认分配给环境所有者的。管理员用户默认不会访问任何API资源。

若您已将一些GitHub用户和组添加为Kubernetes环境的成员,当你尝试访问Kubernetes API时,则会收到以下消息:

要跨所有Kubernetes集群启用GitHub组织的访问权限,请创建以下集群角色:

此角色定义了列表并获得了对服务资源的访问权限。此时, 集群角色不与任何用户或组关联, 因此以下步骤为创建集群角色绑定:

角色绑定指定了GitHub组织的“github_org:”组。这时您会发现,当您想将角色绑定应用于组时,每种认证类型都有专门的Rancher认证语法。有关更多详细信息,可参阅Rancher文档:

创建角色绑定后,您就可以列出属于此GitHub组织的任何用户的服务了:

关注微信公众号(RancherLabs),获取每日Docker&K8S技术干货推送。
添加Rancher助手(RancherLabsChina)为好友,加入技术群,获取免费技术支持,年末赢取Apple Watch、Beats耳机、机械键盘等重磅好礼。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32610.html

相关文章

  • Rancher中的K8S认证RBAC

    摘要:在中使用验证使用身份验证策略来认证用户的。审阅状态包含名称和组等用户信息。中的授权模块稍后将以此确定该用户的访问级别。认证请求认证服务决定该用户是否通过认证,并向发送响应。在对的请求成功进行认证之后,必须授权该请求。 Rancher Kubernetes拥有RBAC(基于角色的访问控制)功能,此功能可以让管理员配置不同的策略,允许或拒绝用户和服务帐户访问Kubernetes API资源...

    raise_yang 评论0 收藏0
  • 梁胜博士亲解Rancher 2.0:K8s之上的Rancher魔法

    摘要:全球范围内的部署节点已超过个,付费客户超过个。因此,我们决定重新设计,将过去大受用户欢迎的用户体验即架构于之上,从而充分利用的强大力量。因此,很快成为启动集群的最受欢迎的方式之一。年,的流行度在持续上升,且这一势头从未放缓。 经过数月的努力,我们终于发布了Rancher 2.0 Technology Preview,这对Rancher Labs而言也是历史性的、值得铭记的一刻。 Ran...

    phoenixsky 评论0 收藏0
  • 梁胜博士亲解Rancher 2.0:K8s之上的Rancher魔法

    摘要:全球范围内的部署节点已超过个,付费客户超过个。因此,我们决定重新设计,将过去大受用户欢迎的用户体验即架构于之上,从而充分利用的强大力量。因此,很快成为启动集群的最受欢迎的方式之一。年,的流行度在持续上升,且这一势头从未放缓。 经过数月的努力,我们终于发布了Rancher 2.0 Technology Preview,这对Rancher Labs而言也是历史性的、值得铭记的一刻。 Ran...

    madthumb 评论0 收藏0
  • 春节不打烊!Rancher 2.0 里程碑版本发布:支持添加自定义节点!

    摘要:里程碑更新支持添加自定义节点此次更新之前的版本只支持和,而如今的最新版本,用户可以在创建集群时添加了自定义节点了。连接成功后,将按照用户指定的角色所指示的方式为该节点安装相应的组件。 Rancher是一个开源的全栈化企业级容器管理平台,用户在Rancher可视化界面上以点选的方式,即可一键完成所有容器基础设施(网络、存储、负载均衡等)的对接与部署,确保容器在任何基础架构上(公私有云、虚...

    zilu 评论0 收藏0
  • Kubernetes安全三步谈:如何通过RBAC强身份验证确保外部安全

    摘要:本文将介绍通过强身份验证如何确保企业的集群免受外部攻击。服务器虽然面向公开,但是受到证书身份验证的保护。年年底被爆出的首个严重安全漏洞,就是由联合创始人及首席架构师发现的。 毋庸置疑,K8s已经成为云容器编排系统的标准,但是,如果缺乏K8s环境相关的安全问题认识的话,会致使各种组件暴露在网络集群内外的攻击之下。本文将介绍通过强身份验证如何确保企业的K8s集群免受外部攻击。 showIm...

    _DangJin 评论0 收藏0

发表评论

0条评论

Forest10

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<