【kubernetes】身份认证与授权

一,User、ServiceAccounts概述

介绍
Kubernetes 中提供了良好的多租户认证管理机制,如 RBAC,ServiceAccount 还有各种策略等。

分类
所有 Kubernetes 集群有两类用户:

  • 服务账户(Service Accounts)

    • 主要针对pod进程来说;
    • 由 Kubernetes 管理;
    • 允许集群用户为特定任务创建服务账户;
  • 普通账户(Users Accounts),(一般直接忽略)

    • 主要针对人(管理员,程序员)来说;
    • 具有全局性,所有命名空间都适用;
    • 名称具有唯一性;

二,服务账户(service Accounts)

控制器插件

  • Service Account Admission Controller
    1.如果 pod 没有设置 service Account,则将 Serice Account设置为 default。
    2.确保 pod 引用的 SericeAccount 存在,否则将会拒绝请求。
    3.如果 pod 不包含任何 ImagePullsecrets,则将ServiceAccount的lmagePullSecrets 会添加到pod中4.为包含 AP| 访问的 Token 的 pod 添加了一个 volume。
    5.把 volumeSource 添加到安装在 pod 的每个容器中,挂载在/var/run/secrets/kubernetes.io/serviceaccount.

  • Token Controller

  • Service Account Controller
    在namespaces 里管理ServiceAccount,并确保每个有效的namespaces 中都存在一个名为"default"的 ServiceAccount.

获取Service Controller命令:

kubectl get ServiceAccount[sa]

三,授权(RBAC)

1,角色

Role : 针对命名空间级别的管理
作表一个角色,会包含一组权限,没有拒绝规则,只是附加允许。它是 Namespace 级别的资源,只能作用与Namespace之内。

# 查看角色
kubectl get role -n kube-system -oyaml

在这里插入图片描述

ClusterRole:针对集群级别的管理
功能与 Role 一样,区别是资源类型为集群类型,而 Role 只在Namespace

# 查看某个集群角色的信息
kubectl get clusterrole view -oyaml   

2,角色绑定

Role 或 ClusterRole 只是用于制定权限集合,具体作用与什么对象上,需要使用 RoleBinding或ClusterRoleBinding 来进行绑定。
RoleBinding : 针对命名空间的用户来绑定角色(Role)
RoleClusterBinding : 针对集群的用户来绑定角色(RoleCluster)

作用于 Namespace 内,可以将 Role 或 ClusterRole 绑定到User、Group、Service Acount 上

#查看 rolebinding 信息
kubectl get rolebinding --all-namespaces

绑定配置:
在这里插入图片描述

应用:在集群的接口调用上,给账户分配角色后,添加对应的权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直奔跑在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值