首页 » 运维 » 正文

aws eks 中 的权限 AWS IAM 权限挂钩的

rbac

首先,我们经常使用AWS的知道AWS 有IAM ,我们可以创建一些用户,或者role,然后赋予这些role一定的权限:例如,读写s3 , 那么谁拥有了这个role ,或者assume到这个role就获得了这些权限

那么,我们如何和eks进行关联呢?

例如:我现在公司里已经每个人有一个aws账号了,我想让一部分人只有

view的权限:例如 kubectl get pod , descripe pod

manange的权限: 例如 kubectl delete pod

该如何设置呢?

首先,我们抛开AWS 来说,k8s 内部也是基于RBAC的,如果你想有两种不同的权限在k8s中,你首先得有个不同role:

rb2

例如,我们创建一个只读role叫: pod-reader

当我们创建了这个role以后,还需要创建一个rolebinding ,把这个role 和我们的某个Group绑定,例如,group 叫: ops-reader

也就是说,如果一个人属于ops-reader,那么他就有了上边role里边的权限(注意,kubernetes中并没有user 和group的概念,都是对接第三方的)

这样,剩下的问题就是把对的人放到ops-reader这个组了,既然kubernetes没有user 和group概念,那么AWS 提供了一个Mapping的方法,简单来说,就是把某个user ,和某个组管理起来,例如:

user-a : ops-reader

user-b: ops-manager

这样的话,如果,user-a通过自己的IAM 来操作kubernetes,那么kubernetes就会给他 ops-reader这个group的权限,aws把这个map放到了kube-system namsspace下:

我们可以通过如下命令查看

map的部分大概这个样子:

 

这样其实就完成了,但是需要注意,这个IAM用户需要有对应的eks相关的权限

 

 

 

 

 

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang