【Kubernetes】之统一认证鉴权

常用认证模型

  1. 基于角色的访问控制(RBAC):RBAC 是一种将权限与角色相关联的访问控制方式,用户通过被赋予特定的角色来获得相应的权限。RBAC 的优点在于简化了权限管理,降低了系统的复杂性
  2. 基于属性的访问控制(ABAC):ABAC 是一种基于用户属性(如用户身份、角色、位置等)的访问控制方式,系统根据用户的属性来决定是否授予其相应的权限
  3. 基于任务的访问控制(TBAC):TBAC 是一种将任务作为核心的访问控制方式,系统根据任务的特性和要求来分配相应的权限
  4. 基于对象的访问控制(OBAC):OBAC 是一种将对象作为核心的访问控制方式,系统根据对象的属性和状态来决定是否授予用户相应的权限

拓展:权限策略

权限策略管理_访问控制(RAM)-阿里云帮助中心

Kubernetes

ApiServer组件

        ApiServer作为Kubernetes的认证中心负责验证和授权用户对集群的访问请求。认证中心在Kubernetes中主要涉及以下几个方面:

  1. 认证:验证用户或服务的身份。Kubernetes支持多种认证方式,包括基于证书的认证、基于令牌的认证等。这些认证方式可以单独使用,也可以组合使用,以满足不同的安全需求。
  2. 授权:根据用户的身份和角色,决定用户对集群资源的访问权限。Kubernetes使用基于角色的访问控制(RBAC)模型进行授权管理,通过定义用户角色和资源角色,将访问权限与角色相关联,从而简化了权限管理。
  3. 准入控制:在资源对象的创建、删除、更新或连接操作时,准入控制器对操作进行更精细的许可检查,只有满足条件的请求才能被执行

认证方式

介绍几种K8S最常用的认证:

  1. CA证书认证:这是基于CA根证书签名的双向数字证书认证方式,是最严格的认证方式;Kubernetes中的Ingress控制器可以使用相关证书,通过TLS/SSL加密方式提供安全的外部访问
  2. ServiceAccount认证:ServiceAccount会挂载到Kubernetes集群中的pod的目录下,每个应用的pod可以用过读取目录下的ServiceAccount来获取集群的认证证书数据,从而可以与集群中的apiServer进行认证通信
  3. Bare Token认证:一种基于令牌的身份验证方法,通常用于API访问控制。令牌(Token)通常由服务端根据密钥生成,并由客户端在请求时附加在HTTP请求头中。服务端收到请求后,会解析出令牌并进行合法性验证。如果验证通过,则认为客户端已经通过了身份验证

BareToken实现步骤

步骤一:创建用户

apiVersion: v1
kind: ServiceAccount
metadata:
  name: user-01
  namespace: kube-system
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile

步骤二:创建角色

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: role-01
rules:
  - apiGroups: ["*"]
    resources: ["*"]
    verbs:
      - get
      - list
      - watch

步骤三:用户和角色绑定

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: user-role
  labels:
    addonmanager.kubernetes.io/mode: Reconcile
roleRef:
  kind: ClusterRole
  name: role-01
  apiGroup: rbac.authorization.k8s.io
subjects:
  - kind: ServiceAccount
    name: user-01
    namespace: kube-system

步骤四:获取BareToken

kubectl get secrets -n kube-system|grep user-role|awk '{print $1}'|xargs kubectl describe secrets -n kube-system

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值