Context

由 kubeadm 创建的cluster 的kubernetes API 服务器,出于测试目的,

临时配置允许未经身份验证和未经授权的访问,授予匿名用户 cluster-admin 的访问权限。

Task

重新配置cluster的Kubernetes APl 服务器,以确保只允许经过身份验证和授权的 REST请求。

使用授权模式 Node,RBAC 和准入控制器 NodeRestriction。

删除用户 system:anonymous 的 ClusterRoleBinding来进行清理。

注意:所有kubectl 配置环境/文件也被配置使用未经身份验证和未经授权的访问。

你不必更改它,但请注意,一旦完成 cluster 的安全加固, kubectl 的配置将无法工作。

您可以使用位于 cluster 的 master 节点上,cluster 原本的 kubectl 配置文件

/etc/kubernetes/admin.conf ,以确保经过身份验证的授权的请求仍然被允许。

参考资料

https://kubernetes.io/zh-cn/docs/reference/command-line-tools-reference/kube-apiserver/

解答

切换集群

kubectl config usr-contextKSSH00401
  1. 切换到master
ssh master && sudo -i
  1. 确保只有认证并且授权过的 REST 请求才被允许
编辑 /etc/kubernetes/manifests/kube-apiserver.yaml 修改下面内容

- --authorization-mode=AlwaysAllow

- --enable-admission-plugins=AlwaysAdmit

vim /etc/kubernetes/manifests/kube-apiserver.yaml

修改为

- -- authorization-mode=Node,RBAC

- --enable-admission-plugins=NodeRestriction

重启kubelet

systemctl daemon-reload

systemctl restart kubelet

修改完后,等待3分钟,查看集群是否正常

  1. 删除题目要求的角色绑定
查

kubectl get clusterrolebinding system:anonymous

删

kubectl delete clusterrolebinding system:anonymou

CKS 考试题整理 (14)-启用API Server认证的更多相关文章

  1. 033.Kubernetes集群安全-API Server认证及授权

    一 Kubernetes集群安全 1.1 安全机制 Kubernetes通过一系列机制来实现集群的安全控制,其中包括API Server的认证授权.准入控制机制及保护敏感信息的Secret机制等.集群 ...

  2. k8s之API Server认证

    集群安全性 在生产环境中,必须保障集群用户的角色以及权限问题,不能给所有用户都赋予管理员权限. 1.集群的安全性必须考虑如下几个目标 (1)保证容器与其所在宿主机的隔离 (2)限制容器给基础设置或其他 ...

  3. K8S Api Server认证

    目录 认证类型 基于CA证书的双向认证 apiserver端配置 生成客户端私钥和证书 master核心组件与apiserver的认证方式 HTTP Token认证 HTTP Basic认证 kube ...

  4. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  5. k8s使用自定义证书将客户端认证接入到API Server

    自定义证书使用kubectl认证接入API Serverkubeconfig是API Server的客户端连入API Server时使用的认证格式的客户端配置文件.使用kubectl config v ...

  6. kubernetes API Server安全

    用户访问API Server(以下简称Server),K8S的安全检查步骤:认证和授权. 认证解决用户是谁的问题,就是验证用户名密码;授权解决用户能做什么的问题,就是检查该用户是否拥有权限访问请求的资 ...

  7. k8s 组件介绍-API Server

    API Server简介 k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心. kub ...

  8. RESTful Api 身份认证安全性设计

    REST是一种软件架构风格.RESTful Api 是基于 HTTP 协议的 Api,是无状态传输.它的核心是将所有的 Api 都理解为一个网络资源.将所有的客户端和服务器的状态转移(动作)封装到 H ...

  9. Web APi之认证

    Web APi之认证(Authentication)两种实现方式后续[三](十五)   前言 之前一直在找工作中,过程也是令人着实的心塞,最后还是稳定了下来,博客也停止更新快一个月了,学如逆水行舟,不 ...

  10. spring cloud+dotnet core搭建微服务架构:Api授权认证(六)

    前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...

随机推荐

  1. 常用脚本学习手册——Bat脚本

    常用脚本学习手册--Bat脚本 我们在日常工作中常常会遇到一些需要重复进行的工作,又或者我们的项目在转交客户时需要去简化配置过程 这时我们就需要使用到一些自动化部署操作,我们常常会采用脚本来完成这部分 ...

  2. 存储系统模拟—R实现

    存储系统 存储问题是人们最熟悉又最需要研究的问题之一.例如企业储存的原材料.在制品等,存储太少,不足以满足生产的需要,将使生产过程中断; 存储太多,超过了生产的需要,将造成资金及资源的积压浪费.商店储 ...

  3. CentOS8删除boot目录恢复

    系统安装完之后,boot分区最好做一个备份,因为这个分区 我们基本不会动它,所以备份一次一劳永逸,以防万一.如果我们不小心 误删除了这个目录,也不用慌,正因为这个分区,我们除了开机 其他时候基本用不到 ...

  4. spring事务里面开启线程插入,报错了是否会回滚?

    1.前言 一道非常有意思的面试题目.大概是这样子的,如果在一个事务中,开启线程进行插入更新等操作,如果报错了,事务是否会进行回滚 2.代码 示例1 @RequestMapping("/tes ...

  5. 如何实现 Java SpringBoot 自动验证入参数据的有效性

    Java SpringBoot 通过javax.validation.constraints下的注解,实现入参数据自动验证 如果碰到 @NotEmpty 否则不生效,注意看下 @RequestBody ...

  6. 弱语言返回的数值型变量有可能是int,也有可能是string,该如何赋值给结构体

    包地址 github.com/jefferyjob/go-easy-util... 介绍 在解析弱语言类型返回的 Json 数据时,我们可能会遇到一些麻烦,比如 Json 数据中的数值型变量既可能是 ...

  7. RDIFramework.NET开发框架编码管理助力业务编码的自动处理

    1.概述 几乎每一个企业应用中不可避免的都会涉及到业务编码规则的问题,比如订单管理中的订单编号,商品管理中的商品编码,项目管理中的项目编码等等,针对这一系列的编码如果直接写在程序中,不仅复杂,代码重复 ...

  8. vue项目中使用lottie动画

    一,安装vue-lottie 1 npm install --save vue-lottie 二,引用vue-lottie 在main.js引入并全局注册组件也可在页面单独引用 1 import lo ...

  9. h5新增特性 和 css3 新特性

    H5新增: 1)用于绘画 canvas 元素. 2) 用于媒介回放的 video 和 audio 元素. 3)语义化标签 article.footer.header.nav.section3) 4)表 ...

  10. Selenium 元素定位方式封装的实际应用

    一.定位方式  二.实际应用 1.项目结构 2.locator_base.py 文件 # -*- coding: utf-8 -*- from selenium.webdriver.common.by ...