00:00
我们再回来。那我们再继续往后看,我们的肉和class,就在我们的啊BAC的ipi中,肉表示一种规则的权限,权限只会增加,叫累加权限,不存在一个资源一开始就有很多的权限,而通过RBAC进行减少的操作。那这里的含义是什么呢?相当于就是我给你一个权限,你拥有一个功能,我再给你一个,你再拥有一个对象,可操作对象就这么样的,他并没有什么所谓的给你所有的权限,但是你不能干嘛没有这种。只有你能干嘛,没有什么不能干嘛,这个概念需要大家理解一下哈,跟其他很多还是不太一样的,就像我们之前说过的,允许所有拒绝单个对吧,没有这种操作,只有允许一个,允许一个,允许一个允许一个这种累加。好,若可以定义在一个name space中,如果想跨name space,可以定义我们的class,也就意味着肉在定义的时候已经进行了民生空间级别的绑定,我们刚才也说过了,对吧?好,Name space呢,如果你想要去跨我们的民生空间,那你只能创建的是class z class z不需要我们去指定我们的民政空间,那底下呢,给大家举了一个例子,去创建了我们一个。
01:18
肉看的类型是肉,这是我们的RBAC的这么一个ipi的主和我们的版本对吧,好,Me date,那放在哪个名字空间下,Default名字空间下,那用户名呢,叫读取pot对吧,叫po read。啊,U规则I PI group这里呢代表的是空,这含义就是po reader的时候,它要赋予的是哪一个ipi的组合,我们的版本如果这里不写的话,代表就是我们的corra的核心组,好,Resource,你的对象是我们的pod类型。Web,那就是我们的操作的动作,Get watch list,也就是获取、监听和列出对吧?好,获取信息监听和列出也就意味着如果我们去把这一个肉赋予给某个用户的话,那这个某个用户就可以在default名字攻击下去进行获取pod的信息,监听pod,对吧?持续监控pod以及列出当前的pod这么三种功能。
02:25
那我们在这就是我们的肉的这么一个创建的方式,Class肉呢,具有我们与肉相同的权限的角色控制能力,不同的是class是我们的集群级别,那class可以用于底下三种功能,对吧?比如第一个集群级别的资源控制,比如node的访问权,非资源型的point的,也就是我们端点的一些信息,对吧?比如查看一下我们的当前的可用的状态。好,那所有的命名,名称空间级别的控制,比如我们的好,这是我们noe,这是我们的对吧,好。
03:04
那底下呢,举了一个例子,看的类型是我们的class z,也就是我们的集兴角色,那这是它的访问接口,原数据叫什么ZR,那ipi group依然是我们的核心组,对吧?这里可以去写哈,写什么呢?就比如这种把它复制下来,这就是我们的访问的组的信息,对吧?Ipi的接口组好resource对象是我们的secret,那动作类型呢,是我们的get watch和list,又这三种对吧?那代表了含义就是如果我把这个class zone,也就是我们的secret read的class zone赋予给这赋予给美国用户,某个用户进行我们所谓的class zone定的话,那代表的含义就是这个用户能够在所有的名称空间下进行secret的获取、列出以及监控,对吧?如果进行的是我们的class的zooing的话,绑定给某用户,代表这个用户可以在所有的名众空间下进行这些动作,对吧,好。
04:00
那这里也举了例子,我们的肉baning和我们的class baning。Classroom可以将我们的角色定义的权限授予供某个用户或主,最后ban包含一组权限的列表,那权限列表中包含了不同形式的待授予权限资源的类型,比如是我们用户主,或者说我们的sa肉斑ing同样包含对我们的band的这么一个肉的引用,肉斑羚适用于某个名称空间内的授权,I class肉呢适用于集群范围内的授权,那这里呢,有一堆的概念需要我们去理解一下,那首先呢,这里说了肉班里会包含包含一组权限列表,叫subject对吧,这边列表,那权限列表有不同的形式授予资源的资源类型,那也就意味着在我们肉斑ing的时候,它的授予的资源类型呢,就是我们这么三种需要注意一下,并且肉斑定可以去绑定一个肉。也可以去绑定一个class肉,但是class班NY呢,只能只能去绑定我们的class肉,需要大家注意一下,是不是有点稍微有点凌乱是吧?好,那在这里呢,举了一个例子说哎,将default命名空间下的power rider的肉赋予给JA的用户,那从此以后JA的用户呢,就可以在DEF名生空间下具有power的权限,好那。
05:24
类型我们的肉班顶,那这是它的我们的一个接口元素信息叫red pot,那赋予的名族空间在default级别下subject对象类型了,对吧,好,U对象。那这个优势对象叫什么呢?叫尖的好,那它的ipi组是什么呢?授予ipi组是什么呢?好,这里的ipi组,那赋予的我们的肉是什么呢?肉类型po的power reer以及进行这个肉的时候,它使用了我们的IP组,对吧,好。那肉banding同样可以引用我们的car of,然后对当前的namespace的用户或用户组或者是sa进行授权。这种操作允许我们的集群管理员在整个集群中定一些通用的class,然后在不同的name space中去通过real班来引用。那这个我们在之前给大家举个例子,对吧?我可以定义一个读的读port的权限,命名为class,然后通过肉Bing的方式把它绑定是每个名称集群空间下的这么一个用户或者这么一个管理员,对吧?那每个管理员呢,都有这一个通用权限,但是仅此在自己的民政空间下才生效,这个需要大家注意一下这么一个概念。
06:44
好。那底下呢,他用了肉斑ing,引用一个卡zo进行我们所谓的。角色赋予那这个拉具有对集群内的secret的访问权,但是其实授权用户呢,只能去访问我们的development空间中的secret,因为zoo Bing定义在我们的development的命名空间中,好,这里举了一个例子,对吧?
07:10
类型肉班ing ipi接口叫什么?叫read,那放在哪个名字空间下的development对吧?好,我们的subject一个对象标题看的是我们的ER,用户名呢,是我们的devil这里的封装的这么一个组对吧?设置这么一个信息的时候封装的这么一个组,好roll,那看的类型呢,是我们的class zone。那什么class zone呢,这么一个class zone对吧,然后呢,使用的这么一个接口信息好,那这个呢,就是我们怎么去采用一个所谓的zoo Bing去绑定一个class zone。好,那当然我们也可以通过我们的class进行class的绑定,那类型是我们classing接口信息叫什么?然后呢,绑定是给一个组叫manage组,好,这是它的manage组的调用的ipi接口对吧,以及进行的动作类型是我们的一个class zone class zone叫什么?以及这个class这么对应的这么一个ipi的主信息。
08:15
好,那这是我们的。肉Bing和我们的class肉,当然在这里呢,需要给大家补充一个叫resource。和我们的two subject2种这么一个概念,这个概念呢,也是在我们进行肉burning和我们的class肉中去引用到的这么一些信息,对吧?第一个就是我们的K8S截屏中一些资源一般以名称字符串表示,这些字符串一般会在ipi的URL地址中去出现,同时某些资源也包含子资源,例如我们logs就属于我们的pod的子资源,Ipi的URL的样例如下。也就意味着,如果我想去获取一个pod的这么一个日志信息的话,它调取的是GI的动作类型,访问的URL是ipi下的V一下的name space中的name space,也就对应的name space,对吧?比如default,或者是我们的cooper system对吧?好,POS,然后你的pod的名称以及跟上我们的log,这就可以访问到我们对应的名字空间下的对应的pod的日志信息了。
09:20
也就意味着如果你授权字段授权到这个字段的话,那它的下属字段相当于是不是都是可以去看到的,如果你把字段授权到这个地步,那你是不是只能看这个对应port的这么一个log信息了,很好去理解对吧?好,如果想在我们的RPC的授权模型中控制些子资源的访问权限,可以通过杠的分割符来实现。以下是定义一个pod资源的log访问资源的road的定义样例,好,我们看一下什么效果。肉定义一个我们的角色好接口信息叫什么,在哪个名字空间下对吧?然后以及叫什么好,Za I PI IPA group,也就是默认的核心组Co Co组,对吧?好,Resources po以及的log,那动作类型是我们的getate和list,那如果把它给去了,只留一个POS的log,代表的含义就是只能去看我们port的日志信息,仅此而已,也就是获取和列出对吧?好,那这是我们的resource这么一个概念,就是我们可以定义一个子资源,子类。
10:27
那下面我们再继续往后看to subject。肉斑和我们的class肉班可以将肉绑定到subject上,Subject可以是我们的主,可以是用户,可以是我们sa,也就意味着我们去绑定的对象就是我们这种三种类型,对吧,好。EUR热和group呢,都是一个比较常见的一个概念了,Sa呢,是专门用于我们的po去认证的,对吧?之前给大家说过很多次了,好,Subject中呢,使用U的使用字符串来表示,它是一个普通的名字的字符串,比如Alice,也可以是email格式的邮箱,比如v Linux、艾163COM,甚至是一组字符串形式的数字ID都是可以的,那只要是一个能够识别的字串,对吧,都是没问题的。好,但是UR的前缀必须是STEM的,是系统保留的,那集群管理员应该确保普通用户不会使用这个前缀的格式,防止一个所谓的误以为是一个系统级别的,对吧?好,Group跟我们的user相同,都是一个自串,同样C为前缀的依然是我们的系统保留的。
11:36
那这个呢,就是在我们的集群安全里面的授权,授权给大家引入了一些新的这么一些概念。那讲了这么多,其实你听的有点迷迷糊糊的,对吧?很好理解,原因是这里新引入的一些概念太多了,那接下来呢,我们去动手实操一个,看怎么把这些概念给它结合起来。那首先我想要干嘛呢?
12:02
我想去进行所谓的一个角色的创建,那这个角色的创建的含义呢,比较有特别,就是我去比如我们现在有个K8S集群。这里呢,有一个K8S集群,那里面运行了很多的一些应用程序,对吧,比如中间呢,有我们的。
13:02
比如有一组我们的数据库集群,马SQ的数据库集群,比如有一组我们的恩尼斯集群等等,好,那现在我们整个公司呢,比较大型规模对吧,所以呢,不可能是一个运维或者是一组团队去进行维护管理,那在这里呢,我们可能有两个项目组,一个项目组呢,叫做我们的DBA。一个项目组呢,就是我们普通的这么一个Linux的系统管理员。那有这么两个角色以后呢,两个项目组以后呢,那我们肯定要进行所谓的资源的分割,对吧?其实对于我们的资源来说呢,比如CPU和内存利用率,我们是可以把它固定在每一个名空间下的,比如这个名存空间可以用到CPU是多少,核心可以用的内存是多大,对吧?我们现在还没有讲,我们在后面会给大家补充的,不要担心,好,那也就意味着我可以把买circle的这么一个名字空间去赋予对应的一些能够利用的一些系统资源,那恩ing呢,也给他赋予一些对应的系统资源,然后我再把买SQ的名称空间赋予给我们的。
14:09
DBA这个用户进行绑定,也就是DBA可以去对买SQL名称空间下的所有资源进行操作,好那同理。对于我们的ICA来说,也可以对ningx的名称控下的所有资源进行操作,那这个可能是我们K8S管理员需要去做的这么一件事情,对吧?而且是一个非常常见的问题,把资源进行分割好,那接下来呢,我们就带大家去看一下怎么去实现这个功能。
我来说两句