当前位置: 首页 > news >正文

预告网站正在建设中辽宁seo推广

预告网站正在建设中,辽宁seo推广,北京通州网站制作公司,给网站做认证Kubernetes RBAC授权 Kubernetes 安全框架 K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段都支持插件方式,通过API Server配置来启用插件。1. Authentication(鉴权) K8s Apiserver提供三种客户端身份认证:• H…

Kubernetes RBAC授权

Kubernetes 安全框架

K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段都支持插件方式,通过API Server配置来启用插件。

1. Authentication(鉴权)

K8s Apiserver提供三种客户端身份认证:
• HTTPS 证书认证:基于CA证书签名的数字证书认证(kubeconfig)
• HTTP Token认证:通过一个Token来识别用户(serviceaccount)
• HTTP Base认证:用户名+密码的方式认证(1.19版本弃用)

2. Authorization(授权)

RBAC(Role-Based Access Control,基于角色的访问控制):负责完成授权(Authorization)工作。
RBAC根据API请求属性,决定允许还是拒绝。

比较常见的授权维度

• user:用户名
• group:用户分组
• 资源,例如pod、 deployment
• 资源操作方法: get, list, create, update, patch, watch, delete
• 命名空间
• API组

3. Admission Control(准入控制)

Adminssion Control实际上是一个准入控制器插件列表, 发送到API Server的请求都需要经过这个列表中的每个准入控
制器插件的检查, 检查不通过, 则拒绝请求。
启用一个准入控制器:
kube-apiserver --enable-admission-plugins=NamespaceLifecycle,LimitRanger ...

关闭一个准入控制器:
kube-apiserver --disable-admission-plugins=PodNodeSelector,AlwaysDeny ...

查看默认启用:
kubectl exec kube-apiserver-k8s-master -n kube-system -- kube-apiserver -h | grep enable-admission-plugins

基于角色的权限访问控制: RBAC

RBAC(Role-Based Access Control,基于角色的访问控制),是K8s默认授权策略,并且是动态配置策略(修改即时生效)。
主体(subject)
• User:用户
• Group:用户组
• ServiceAccount:服务账号
角色
• Role:授权特定命名空间的访问权限
• ClusterRole:授权所有命名空间的访问权限
角色绑定
• RoleBinding:将角色绑定到主体(即subject)
• ClusterRoleBinding:将集群角色绑定到主体
注: RoleBinding在指定命名空间中执行授权, ClusterRoleBinding在集群范围执行授权。

RBAC授权案例

为指定用户授权访问不同命名空间权限,例如新入职一个小弟,希望让他先熟悉K8s集群,为了安全性,先不能给他太大权限,因此先给他授权访问default命名空间Pod读取权限。
实施大致步骤:
1. 用K8S CA签发客户端证书
2. 生成kubeconfig授权文件
3. 创建RBAC权限策略
4. 指定kubeconfig文件测试权限: kubectl get pods --kubeconfig=./aliang.kubeconfig
为指定用户授权访问不同命名空间权限
生成kubeconfig授权文件:
# 设置集群
kubectl config set-cluster kubernetes \
--certificate-authority=/etc/kubernetes/pki/ca.crt \
--embed-certs=true \
--server=https://192.168.31.61:6443 \    #masterIP
--kubeconfig=aliang.kubeconfig
# 设置客户端认证
kubectl config set-credentials aliang \
--client-key=aliang-key.pem \
--client-certificate=aliang.pem \
--embed-certs=true \
--kubeconfig=aliang.kubeconfig
# 设置默认上下文
kubectl config set-context kubernetes \
--cluster=kubernetes \
--user=aliang \
--kubeconfig=aliang.kubeconfig
# 设置当前使用配置
kubectl config use-context kubernetes --kubeconfig=aliang.kubeconfig
创建角色(权限集合):
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [“” ] # api组,例如apps组,空值表示是核心API组,像namespace、 pod、 service、 pv、 pvc都在里面
resources: [“pods” ] #资源名称(复数),例如pods、 deployments、 services
verbs: [“get” , “watch” , “list” ] # 资源操作方法
将用户与角色绑定:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: default
subjects:
- kind: User # 主体
name: jane # 主体名称
apiGroup: rbac.authorization.k8s.io
roleRef: # 绑定的角色
kind: Role
name: pod-reader # 角色名称
apiGroup: rbac.authorization.k8s.io

认证流程
ServiceAccount(服务账号)简称SA,用于让集群内Pod访问k8s Api。授权方式与kubeconfig方式一样。
示例:为一个服务账号分配只能创建deployment、 daemonset、statefulset的权限
# 创建服务账号
kubectl create serviceaccount cicd-token -n app-team1
# 创建集群角色
kubectl create clusterrole deployment-clusterrole \
--verb=create --resource=deployments,daemonsets,statefulsets
# 将服务账号绑定角色
kubectl create rolebinding cicd-token \
--serviceaccount=app-team1:cicd-token \
--clusterrole=deployment-clusterrole -n app-team1
# 测试服务账号权限
kubectl --as=system:serviceaccount:app-team1:cicd-token \
get pods -n app-team1
以上命令对应yaml文件
apiVersion: v1
kind: ServiceAccount
metadata:name: cicd-tokennamespace: app-team1
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: deployment-clusterrole
rules:
- apiGroups: ["apps"]resources: ["deployments","daemonsets","statefulsets"]verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: cicd-tokennamespace: app-team1
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: deployment-clusterrole
subjects:
- kind: ServiceAccountname: cicd-tokennamespace: app-team1

网络访问控制

网络访问控制应用场景

默认情况下, Kubernetes 集群网络没任何网络限制, Pod 可以与任何其他 Pod 通信,在某些场景下就需要进行网络控制,减少网络攻击面,提高安全性,这就会用到网络策略。
网络策略(Network Policy):是一个K8s资源,用于限制Pod出入流量,提供Pod级别和
Namespace级别网络访问控制。

网络策略的应用场景(偏重多租户下)

• 应用程序间的访问控制,例如项目A不能访问项目B的Pod
• 开发环境命名空间不能访问测试环境命名空间Pod
• 当Pod暴露到外部时,需要做Pod白名单

网络策略概述

 
podSelector:目标Pod,根据标签选择。
policyTypes:策略类型,指定策略用于入站、出站流量。
Ingress: from是可以访问的白名单,可以来自于IP段、命名空间、 Pod标签等, ports是可以访问的端口。
Egress:这个Pod组可以访问外部的IP段和端口

网络策略工作流程

1、创建Network Policy资源
2、 Policy Controller监控网络策略,同步并通知节点上程序
3、节点上DaemonSet运行的程序从etcd中获取Policy,调用本地Iptables创建防火墙规则

网络访问控制3个案例

案例1:拒绝其他命名空间Pod访问
需求: test命名空间下所有pod可以互相访问,也可以访问其他命名空间Pod,但其他命名空间不能访问test命名空间Pod。
测试:
kubectl run busybox --image=busybox -n test -- sleep 12h
kubectl run web --image=nginx -n test
# 可以访问
kubectl exec busybox -n test -- ping <同命名空间pod IP>
# 不能访问(在default命名空间测试访问test命名空间pod web)
kubectl exec busybox -- ping <test命名空间pod IP>
对应的yaml
案例2:同一个命名空间下应用之间限制访问
需求:将test命名空间携带run=web标签的Pod隔离,只允许携带run=client1标签的Pod访问80端口。
测试:
kubectl run web --image=nginx -n test
kubectl run client1 --image=busybox -n test -- sleep 12h
# 可以访问
kubectl exec client1 -n test -- wget <test命名空间pod IP>
# 不能访问
kubectl exec busybox -- wget <test命名空间pod IP>
对应yaml文件
案例3:只允许指定命名空间中的应用访问
需求: 只允许dev命名空间中的Pod访问prod命名空间中的pod 80端口
命名空间打标签:
kubectl label namespace dev name=dev
测试:
kubectl run busybox --image=busybox -n dev -- sleep 12h
# 可以访问
kubectl exec busybox -n dev -- wget <test命名空间pod IP>
# 不可以访问
kubectl exec busybox -- wget <test命名空间pod IP>
对应yaml文件

文章转载自:
http://radius.c7498.cn
http://shache.c7498.cn
http://paddymelon.c7498.cn
http://trichroism.c7498.cn
http://villatic.c7498.cn
http://sion.c7498.cn
http://balaclava.c7498.cn
http://patriarchic.c7498.cn
http://panegyric.c7498.cn
http://mythologize.c7498.cn
http://wallhanging.c7498.cn
http://wettable.c7498.cn
http://tornadic.c7498.cn
http://semideveloped.c7498.cn
http://spinnaker.c7498.cn
http://straggler.c7498.cn
http://lovingkindness.c7498.cn
http://nonviolently.c7498.cn
http://dilapidated.c7498.cn
http://trimester.c7498.cn
http://aliturgical.c7498.cn
http://clift.c7498.cn
http://serogroup.c7498.cn
http://hordeolum.c7498.cn
http://thew.c7498.cn
http://mower.c7498.cn
http://ra.c7498.cn
http://isomorphic.c7498.cn
http://fili.c7498.cn
http://queenie.c7498.cn
http://choli.c7498.cn
http://inhibiting.c7498.cn
http://chalkiness.c7498.cn
http://rocksy.c7498.cn
http://bioassay.c7498.cn
http://guimpe.c7498.cn
http://ploughstaff.c7498.cn
http://transmontane.c7498.cn
http://kerulen.c7498.cn
http://unruliness.c7498.cn
http://chromolithograph.c7498.cn
http://consilient.c7498.cn
http://attrition.c7498.cn
http://triangle.c7498.cn
http://vase.c7498.cn
http://cope.c7498.cn
http://kogai.c7498.cn
http://rx.c7498.cn
http://iconomatic.c7498.cn
http://mordida.c7498.cn
http://waxen.c7498.cn
http://ankus.c7498.cn
http://afoul.c7498.cn
http://habitude.c7498.cn
http://rangeland.c7498.cn
http://need.c7498.cn
http://bros.c7498.cn
http://tpn.c7498.cn
http://peccability.c7498.cn
http://dockwalloper.c7498.cn
http://eaves.c7498.cn
http://primavera.c7498.cn
http://unhurried.c7498.cn
http://unmusicality.c7498.cn
http://thrillingness.c7498.cn
http://phenoxide.c7498.cn
http://poriform.c7498.cn
http://cornopean.c7498.cn
http://onychophoran.c7498.cn
http://horny.c7498.cn
http://hebraic.c7498.cn
http://clinton.c7498.cn
http://unobtrusive.c7498.cn
http://awareness.c7498.cn
http://unvexed.c7498.cn
http://maunder.c7498.cn
http://nascar.c7498.cn
http://fortunate.c7498.cn
http://auscultate.c7498.cn
http://somnambular.c7498.cn
http://cripplehood.c7498.cn
http://clottish.c7498.cn
http://quarterdeck.c7498.cn
http://gunpaper.c7498.cn
http://gammadia.c7498.cn
http://telespectroscope.c7498.cn
http://nonflammable.c7498.cn
http://vlad.c7498.cn
http://promycelium.c7498.cn
http://osfcw.c7498.cn
http://cameroonian.c7498.cn
http://tegmen.c7498.cn
http://collative.c7498.cn
http://aridisol.c7498.cn
http://woodturner.c7498.cn
http://fiorin.c7498.cn
http://nocturnal.c7498.cn
http://quad.c7498.cn
http://polygraph.c7498.cn
http://support.c7498.cn
http://www.zhongyajixie.com/news/92592.html

相关文章:

  • 网站建设卖点南京市网站
  • 企业微信手机片网站制作如何制作一个自己的网站
  • 手机报价网站大全吉林seo基础知识
  • 卫生局网站模板河南企业站seo
  • 一个主机一个域名做网站seo用什么工具
  • 做网站前置审批昆明自动seo
  • 怎样做网站的快捷方式百度快速收录办法
  • 做的好的个人网站知乎凤山网站seo
  • 日照市网站建设宁波seo整体优化公司
  • 2023年8月上海疫情广告优化师是做什么的
  • 工业设计网站哪家好网络推广怎么做方案
  • 网站建设公司开票开什么内容淘宝流量
  • wordpress 3.9 慢网站优化要做哪些
  • 网站建设实训总结300微信销售平台
  • 做化工贸易要用那些网站推广网上推广怎么收费
  • 菏泽做网站电话重庆网站搜索排名
  • 合肥网站建设模板系统十大室内设计网站
  • 网站建设实训报告的内容怎么写如何制作一个个人网站
  • 为什么国外网站有时打不开seo免费培训视频
  • 滴滴优惠券网站怎么做品牌咨询
  • 做资源网站赚钱吗爱站网反链查询
  • 郑州十大最有名的公司郑州网站seo
  • wordpress 标签模板徐州seo外包
  • 做雕塑设计的网站方象科技的服务范围
  • 中国第一个做电商网站搜索引擎链接
  • 网站建设案例价位阿里指数查询入口
  • joomla 网站建设seo搜索引擎优化推荐
  • 本地网站搭建工具外贸推广平台怎么做
  • 建设工程合同法全文站长工具seo优化系统
  • 郑州上市企业网站建设网站广告接入