十二k8s细粒度权限控制

author author     2023-03-05     232

关键词:

参考技术A

一个K8S集群并不只有管理员在使用,如果是一个开发或者一个测试,就不能有太高的权限,预防出错。 此时就要通过K8S一个机制RBAC对权限经行细粒度划分,例如张三,可设置只能在namespaceA进行操作,不能在其他命名空间操作。
官网: https://kubernetes.io/zh/docs/reference/access-authn-authz/rbac/

ClusterRole:可以配置一些权限,允许对整个集群做你想做的
ClusterRoleBinding:可以把ClusterRole配置的权限,授权给指定的“人”,让他可以对整个集群做他想做的
Role:只能允许对该Namespace做你想做的
RoleBinding:只能让指定的“人”对该Namespace做他想做的
Role和ClusterRole

RoleBinding和ClusterRoleBinding

Role示例:允许读取在API 组下的 “Pods”:

允许读/写在 “extensions” 和 “apps” API 组中的 Deployment(在 HTTP 层面,对应 URL 中资源部分为 “deployments”):

允许读取核心 API 组中的 “pods” 和读/写 “batch” 或 “extensions” API 组中的 “jobs”:

对于名称为 alice@example.com 的用户:

对于名称为 frontend-admins 的用户组:

RoleBinding示例:对于名称为 alice@example.com 的用户:

对于任何名称空间中的 “qa” 组中所有的服务账户:

对于所有已经过认证的用户:

对于所有用户:

默认 ClusterRole和默认 ClusterRoleBinding 一些默认的 ClusterRole 不是以前缀 system: 开头的。这些是面向用户的角色。 它们包括超级用户(Super-User)角色(cluster-admin)、 使用 ClusterRoleBinding 在集群范围内完成授权的角色(cluster-status)、 以及使用 RoleBinding 在特定名字空间中授予的角色(admin、edit、view)。 面向用户的 ClusterRole 使用 ClusterRole 聚合以允许管理员在 这些 ClusterRole 上添加用于定制资源的规则。如果想要添加规则到 admin、edit 或者 view, 可以创建带有以下一个或多个标签的 ClusterRole:

假设有2个ClusterRole,ClusterRoleA和ClusterRoleB,ClusterRoleA设置了rule并打上了标签,ClusterRoleB就可以引用A的标签,ClusterRoleB就会自动补上ClusterRoleA的rule.

示例:

验证:创建sa,并查看sa创建的secret,获得token

创建一个名称叫test-aggregation的clusterrolebinding,把clusterrole:test-aggregation授权给SA:default命名空间下 的test-aggregation

登录测试,发现并没有权限,只能登录

创建b-ClusterRole,使其聚合a-ClusterRole

再次验证,发现可以查看命名空间和svc等监控

问题:
1.创建一个名为deployment-clusterrole的clusterrole
a)该clusterrole只允许创建Deployment、Daemonset、Statefulset的create操作
2.在名字为app-team1的namespace下创建一个名为cicd-token的serviceAccount,并且将上一步创建clusterrole的权限绑定到该serviceAccount
实操:
创建namespace和serviceAccount

创建名为deployment-clusterrole的clusterrole

绑定权限并查看

编辑一份deployment模板

验证:通过sa创建的secret的token登录dashboard,选择右上+,选择app-team1参试创建yaml,发下最终有权限创建。

通过token登录dashboard

最后查看deployment,已创建

企业中的权限划分:

2.根据需求先创建2个用户dotbalo,dukuan(sa,通过Sa创建的secret的token管理节点)

3.根据需求总共有4中权限分别是只读命名空间,删除日志,执行pod命名,查看日志,然后创建4种权限的ClusterRole

4.绑定全局命名空间查看权限(clusterrolebinding)

5.绑定用户dotbalo两个命名空间default、kube-system的查看pod日志的权限(rolebinding)

6.绑定用户dukuan在deefault中执行pod命令权限和删除Pod权限

1.Kubernetes多集群图形化管理工具Ratel介绍&使用

2.图形化管理Kubernetes多租户权限

SVN 存储库的细粒度权限

】SVN存储库的细粒度权限【英文标题】:Fine-grainedpermissionsonSVNRepository【发布时间】:2010-05-2400:22:38【问题描述】:我正在尝试为一大群用户设置一个SVN存储库。不同的用户需要对存储库区域具有不同级别的访问权限。一个简单... 查看详情

(转)通过springmvc+annotation实现方法按钮级别的细粒度权限控制

原文地址:http://blog.csdn.net/ycyk_168/article/details/18456631随着企业信息化的不断深入,各种各样的信息系统成为提高企业运营及管理效率的必备工具,越来越多的企业核心机密如销售机会、客户资料、设计方案等通过信息系统存储、... 查看详情

了解权限控制框架shiro之实际应用.

  ApacheShiro1.权限控制分为a.粗粒度URL级别权限控制        b.细粒度方法级别权限控制  2.使用shiro进行权限控制主要有四种主要方式:  a、在程序中通过Subject编程方式进行权限控制  b、配置Filter实现... 查看详情

REST API 服务器上资源的细粒度权限

】RESTAPI服务器上资源的细粒度权限【英文标题】:Fine-grainedPermissionstoresourcesonaRESTAPIserver【发布时间】:2011-09-2401:24:39【问题描述】:我正在使用类似REST的API构建数据交换服务器。它不是严格的RESTful,因为服务器持有一些状态... 查看详情

Lambda 代入具有细粒度权限的 AWS IAM 角色

】Lambda代入具有细粒度权限的AWSIAM角色【英文标题】:LambdaassumingAWSIAMrolewithfine-grainedpermissions【发布时间】:2021-08-2717:11:55【问题描述】:我正在尝试根据附加到AmazonCognito用户的信息假设细粒度的DynamoDB访问。目前的架构是这样... 查看详情

细粒度访问控制 - AWS Amplify

】细粒度访问控制-AWSAmplify【英文标题】:Fine-grainedAccessControl-AWSAmplify【发布时间】:2022-01-0317:06:04【问题描述】:我正在制作一个员工管理网络应用程序,该应用程序需要根据用户的部门和职位以及员工的部门和职位限制用户... 查看详情

如何将 DynamoDB 细粒度访问控制与 Cognito 用户池结合使用?

】如何将DynamoDB细粒度访问控制与Cognito用户池结合使用?【英文标题】:HowtouseDynamoDBfinegrainedaccesscontrolwithCognitoUserPools?【发布时间】:2016-12-0811:23:15【问题描述】:使用Cognito用户池登录时,我无法理解如何在DynamoDB上使用细粒... 查看详情

对 DynamoDb 使用细粒度访问控制时出现 AccessDeniedException

】对DynamoDb使用细粒度访问控制时出现AccessDeniedException【英文标题】:AccessDeniedExceptionwhenusingFine-GrainedAccesscontrolforDynamoDb【发布时间】:2021-10-0100:38:46【问题描述】:我在API网关(准确地说是Apollo服务器)后面有一个lambda函数,... 查看详情

允许用户在 React Native/iOS Facebook OAuth 中进行细粒度的权限审批?

】允许用户在ReactNative/iOSFacebookOAuth中进行细粒度的权限审批?【英文标题】:AllowusersgranularpermissionapprovalinReactNative/iOSFacebookOAuth?【发布时间】:2016-01-2904:49:51【问题描述】:我将这个包用于FacebookOAuth:https://www.npmjs.com/package/rea... 查看详情

XCUITest:自动接受系统警报。需要更细粒度的控制

】XCUITest:自动接受系统警报。需要更细粒度的控制【英文标题】:XCUITest:Auto-AcceptingSystem-Alerts.Needmorefinegrainedcontrol【发布时间】:2017-03-1321:22:43【问题描述】:我读到addUIInterruptionMonitorWithDescription可用于接受/点击系统警报中的... 查看详情

如何在 Spring-Data-Rest 中实现细粒度的访问控制?

】如何在Spring-Data-Rest中实现细粒度的访问控制?【英文标题】:HowdoIimplementfine-grainedaccesscontrolinSpring-Data-Rest?【发布时间】:2014-12-2521:44:51【问题描述】:TL;DR:如何在Spring-Data-Rest提供的扁平化RESTapi方法中实现细粒度的访问控... 查看详情

002-权限管理解决方案

一、什么事粗粒度权限和细粒度权限粗粒度权限管理,对资源类型的权限管理。  资源类型比如:菜单、url连接、用户添加页面、用户信息、类方法、页面中按钮。。  粗粒度权限管理比如:超级管理员可以访问户添加页面... 查看详情

smb文档服务器权限管理及场景示例

...参考的文章很多,关键是如何结合自己的需求进行细粒度的权限管理,本文给出了一些常见问题的解决方案,并给出了一个真实场景示例。一、权限管理。SMB可以实现细粒度的权限控制,这里有几个权限管理的常... 查看详情

smb文档服务器权限管理及场景示例

...参考的文章很多,关键是如何结合自己的需求进行细粒度的权限管理,本文给出了一些常见问题的解决方案,并给出了一个真实场景示例。一、权限管理。SMB可以实现细粒度的权限控制,这里有几个权限管理的常... 查看详情

docker内核能力机制

...机制(Capability)是Linux内核一个强大的特性,可以提供细粒度的权限访问控制。Linux内核自2.2版本起就支持能力机制,它将权限划分为更加细粒度的操作能力,既可以作用在进程上,也可以作用在文件上。例如,一个Web服务进程... 查看详情

客户可配置的 asp.net 网站安全性,用于对页面和按钮访问进行细粒度控制

...配置的asp.net网站安全性,用于对页面和按钮访问进行细粒度控制【英文标题】:customer-configurableasp.netwebsitesecurityforfine-grainedcontrolofpageandbuttonaccess【发布时间】:2010-09-1515:15:32【问题描述】:我有一个ASP.NET2.0[还没有ajax...]网站... 查看详情

通过springmvc+annotation实现方法按钮级别的细粒度权限控制(代码片段)

随着企业信息化的不断深入,各种各样的信息系统成为提高企业运营及管理效率的必备工具,越来越多的企业核心机密如销售机会、客户资料、设计方案等通过信息系统存储、备案、流转,这些核心资料一旦外泄࿰... 查看详情

通过springmvc+annotation实现方法按钮级别的细粒度权限控制(代码片段)

随着企业信息化的不断深入,各种各样的信息系统成为提高企业运营及管理效率的必备工具,越来越多的企业核心机密如销售机会、客户资料、设计方案等通过信息系统存储、备案、流转,这些核心资料一旦外泄࿰... 查看详情