K8s(五)认证&授权

本文详细介绍了在Kubernetes环境中进行认证和授权的过程,包括创建用户、配置apiserver客户端、生成认证证书、创建RBAC的role和rolebinding、clusterrole及clusterrolebinding。通过这些步骤,确保了用户权限的管理和资源的访问控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建用户

kubectl create serviceaccount myadmin

创建POD是使用自定义用户

pod.spec.ServiceAccountName:myadmin

apiserver 客户端配置文件:

[root@k8s-master ~]# kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://10.211.55.11:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {
   }
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

创建认证证书(使用k8sCA)

生成私钥:
$ openssl genrsa -out mykey.key  2048
创建证书签署请求:
$ openssl req -new -key mykey.key -out mykey.csr -subj "/CN=mykey"
签署证书:
openssl x509 -req -in mykey.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out mykey.crt -days 365

查看证书信息

[root@k8s-master pki]# openssl x509 -in mykey.crt -text -noout
Kubernetes (K8s) 提供了多种身份验证和授权机制,包括基于令牌、基于证书、基于 OpenID Connect 等。以下是 K8s认证授权机制: 1. 基于令牌的认证K8s 使用令牌进行用户身份验证。用户可以使用用户名和密码向 K8s 集群请求令牌,该令牌可用于后续请求的身份验证。 2. 基于证书的认证K8s 还支持使用证书进行身份验证。集群管理员可以在集群中生成证书,然后将证书分发给用户,让其用于身份验证。这种方法更加安全,因为证书可以被撤销。 3. OpenID Connect 认证K8s 还支持 OpenID Connect,这是一种基于 OAuth 2.0 的身份验证协议。它使得用户可以使用 Google、GitHub 等身份提供者进行身份验证,并获取到一个令牌,用于后续请求的身份验证。 在授权方面,K8s 提供了以下授权机制: 1. 基于角色的访问控制 (RBAC)K8s 的 RBAC 允许管理员为不同的用户或用户组分配不同的角色。角色定义了用户或用户组可以访问的资源和操作。 2. 基于节点的访问控制 (NBAC):NBAC 允许管理员为不同的节点分配不同的角色。角色定义了节点可以访问的资源和操作。 3. 基于命名空间的访问控制 (NSAC):NSAC 允许管理员为不同的命名空间分配不同的角色。角色定义了命名空间中可以访问的资源和操作。 4. 基于 Webhook 的授权:Webhook 允许管理员将授权决策交给外部服务来进行。这种方法比较灵活,因为管理员可以根据需要进行自定义授权
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值