Kubernetes集群安全机制

概述

当我们访问K8S集群时,需要经过三个步骤完成具体操作

  • 认证
  • 鉴权【授权】
  • 准入控制

进行访问的时候,都需要经过 apiserver, apiserver做统一协调,比如门卫

  • 访问过程中,需要证书、token、或者用户名和密码
  • 如果访问pod需要serviceAccount

认证

对外不暴露8080端口,只能内部访问,对外使用的端口6443

客户端身份认证常用方式

  • https证书认证,基于ca证书
  • http token认证,通过token来识别用户
  • http基本认证,用户名 + 密码认证

鉴权

基于RBAC进行鉴权操作

基于角色访问控制

准入控制

就是准入控制器的列表,如果列表有请求内容就通过,没有的话 就拒绝

RBAC介绍

基于角色的访问控制,为某个角色设置访问内容,然后用户分配该角色后,就拥有该角色的访问权限

k8s中有默认的几个角色

  • role:特定命名空间访问权限
  • ClusterRole:所有命名空间的访问权限

角色绑定

  • roleBinding:角色绑定到主体
  • ClusterRoleBinding:集群角色绑定到主体

主体

  • user:用户
  • group:用户组
  • serviceAccount:服务账号

RBAC实现鉴权

  • 创建命名空间

创建命名空间

我们可以首先查看已经存在的命名空间

kubectl get namespace

然后我们创建一个自己的命名空间 roledemo

kubectl create ns roledemo

命名空间创建Pod

为什么要创建命名空间?因为如果不创建命名空间的话,默认是在default下

kubectl run nginx --image=nginx -n roledemo

创建角色

我们通过 rbac-role.yaml进行创建

tip:这个角色只对pod 有 get、list权限

然后通过 yaml创建我们的role

# 创建
kubectl apply -f rbac-role.yaml
# 查看
kubectl get role -n roledemo

创建角色绑定

我们还是通过 role-rolebinding.yaml 的方式,来创建我们的角色绑定

然后创建我们的角色绑定

# 创建角色绑定
kubectl apply -f rbac-rolebinding.yaml
# 查看角色绑定
kubectl get role, rolebinding -n roledemo

使用证书识别身份

我们首先得有一个 rbac-user.sh 证书脚本

这里包含了很多证书文件,在TSL目录下,需要复制过来

通过下面命令执行我们的脚本

./rbac-user.sh

最后我们进行测试

# 用get命令查看 pod 【有权限】
kubectl get pods -n roledemo
# 用get命令查看svc 【没权限】
kubectl get svc -n roledmeo

12.Kubernetes集群安全机制的更多相关文章

  1. Kubernetes集群安全概述

    API的访问安全性 API Server的端口和地址 在默认情况下,API Server通过本地端口和安全端口两个不同的HTTP端口,对外提供API服务,其中本地端口是基于HTTP协议的,用于在本机( ...

  2. kubernetes实战(八):k8s集群安全机制RBAC

    1.基本概念 RBAC(Role-Based Access Control,基于角色的访问控制)在k8s v1.5中引入,在v1.6版本时升级为Beta版本,并成为kubeadm安装方式下的默认选项, ...

  3. kubernetes(k8s)集群安全机制RBAC

    1.基本概念 RBAC(Role-Based Access Control,基于角色的访问控制)在k8s v1.5中引入,在v1.6版本时升级为Beta版本,并成为kubeadm安装方式下的默认选项, ...

  4. K8s集群安全机制

    安全机制说明 k8s作为一个分布式集群管理的工具,保证集群的安全性是其一个重要的任务.API Server是集群内部各个组件通信的中介,也是外部控制的入口,,所以K8s的安全机制就是围绕保护API S ...

  5. 一键运行CIS安全扫描,集群安全无忧!

    CIS安全扫描是Rancher 2.4推出的其中一个重磅功能,旨在帮助用户快速.有效地加强集群的安全性.本文将详细介绍CIS安全扫描这一功能,包含详细的操作demo. 本文来自Rancher Labs ...

  6. Kubernetes-深入分析集群安全机制

    Kubernetes过一系列机制来实现集群的安全机制,包括API Server的认证授权.准入控制机制及保护敏感信息的Secret机制等.集群的安全性必须考虑以下的几个目标: 保证容器与其所在宿主机的 ...

  7. Apache-Shiro+Zookeeper系统集群安全解决方案之缓存管理

    上篇[Apache-Shiro+Zookeeper系统集群安全解决方案之会话管理],解决了Shiro在系统集群开发时安全的会话共享问题,系统在使用过程中会有大量的权限检查和用户身份检验动作,为了不频繁 ...

  8. Kubernetes集群安全配置案例

    Kubernetes 系统提供了三种认证方式:CA 认证.Token 认证 和 Base 认证.安全功能是一把双刃剑,它保护系统不被攻击,但是也带来额外的性能损耗.集群内的各组件访问 API Serv ...

  9. Kubernetes-深入分析集群安全机制(3.6)

    集群的安全性主要考虑以下几个方面: 容器与所在宿主机的隔离: 限制容器给基础设施及其他容器带来消极影响的能力: 最小权限原则--合理限制所有组件的权限,确保组件只执行它被授权的行为,通过限制单个组件的 ...

  10. kubernetes集群全栈监控报警方案kube-prometheus

    参考文档 http://www.servicemesher.com/blog/prometheus-operator-manual/ https://github.com/coreos/prometh ...

随机推荐

  1. 网卡DM9000裸机驱动详解

    一.网卡 1. 概念 网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件.由于其拥有MAC地址,因此属于OSI模型的第2层.它使得用户可以通过电缆或无线相互连接. 每一个网卡都有一个被称 ...

  2. Python wheel

    在 Python 的生态系统中,wheel 是一种打包格式,用于分发和安装 Python 项目.它是 Python 包的标准格式之一,旨在提高安装速度和可靠性. Wheel 的优势 快速安装:因为 w ...

  3. 使用 AWS CLI 管理 S3

    S3 是 AWS 的对象存储服务 S3: Simple Storage Service 创建桶 使用 aws s3 mb 命令创建新的 S3 桶.您需要提供一个全球唯一的桶名称和创建桶的区域. aws ...

  4. 深入理解JavaScript中的try catch finally

    在日常开发中,我们经常使用try catch 来捕捉错误,来提升应用程序的健壮性,但是,大部分时候,只是惯性使用,很少静下来去深入理解一下try catch finally,所以本文将对try cat ...

  5. ServiceMesh 1:大火的云原生微服务网格,究竟好在哪里?

    1 关于云原生 云原生计算基金会(Cloud Native Computing Foundation, CNCF)的官方描述是: 云原生是一类技术的统称,通过云原生技术,我们可以构建出更易于弹性扩展. ...

  6. PYRAFORMER: 用于长时间序列建模和预测的低复杂度金字塔注意力《PYRAFORMER: LOW-COMPLEXITY PYRAMIDAL ATTENTION FOR LONG-RANGE TIME SERIES MODELING AND FORECASTING》(金字塔注意力模块机制、PAM、CSCM、多尺度)

    今天是2022年10月1日,今天重读一遍这篇论文. 10月1日16:48,上次读是4月20日,时间过得好快. 论文:PYRAFORMER: LOW-COMPLEXITY PYRAMIDAL ATTEN ...

  7. ASP.NET Core – Web API Versioning

    前言 项目持续维护, API 就需要版本控制. ASP.NET Core 有官方的插件专门处理 API 版本控制. 主要参考 Your Guide to REST API Versioning in ...

  8. opencascade源码学习之HLRAlgo包 -HLRAlgo

    类 HLRAlgo 前言 在给定的投影中,为了达到工业设计.图纸需要的精度,可以删除隐藏的线条.为此,隐藏 线路移除组件提供两个算法: HLRBRep_Algo和HLRBRep_PolyAlgo. 这 ...

  9. 暑假集训SCP提高模拟10

    我(看着百度百科):我已经知道这场谁组的题了 CTH: 谁 我:你想想,能在模拟赛里塞四道数学题还玩邦的,还能有谁 CTH: 我不知道 我:我不知道 CTH: 我知道了 我:我知道了 我:我是 Bob ...

  10. Kubernetes Deployment控制器(二十)

    前面我们学习了 ReplicaSet 控制器,了解到该控制器是用来维护集群中运行的 Pod 数量的,但是往往在实际操作的时候,我们反而不会去直接使用 RS,而是会使用更上层的控制器,比如我们今天要学习 ...