纠纷奇闻作文社交美文家庭
聚热点
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

2022年2月kubernetesCKS备考实录

7月27日 眸中星投稿
  前言
  CKA和CKS是LINUX基金会联合CNCF社区组织的云原生技术领域权威认证,考试采用实操方式进行。CKS全称是Kubernetes安全专家认证,它在一个模拟真实的环境中测试考生对Kubernetes和云安全的知识。在参加CKS考试之前,必须已经通过CKA(Kubernetes管理员认证),在获得CKA认证之后才可以预约CKS考试。CKS考试难度相对于CKA提高了很多,2个小时的考试时间很紧张,因为考试是在网上进行,这两个考试又是实操考试,网络条件不好,很影响效率,如果不抓紧的话,很可能做不完所有实操题。提醒备考的同学善用考试软件提供的notepad功能,先把yaml文件或命令写到notepad里,再粘贴到terminal里。另外要注意题目要求操作的节点,有些题要求在worker节点完成,有些要求master节点,否则找不到文件。
  我因为上次CKA考试还是比较顺利,94高分通过,所以这次的CKS考试有点疏忽了,搞忘带身份证和护照,CKACKS考试需要身份证护照信用卡,因此跟监考老师沟通了很久时间,最后修改了考试人姓名为中文,是用驾驶证完成的考试。意外之喜是CKS给我的证书是中文名的。
  我这次考试的kubernetes版本是1。22,特意记录了一下考试会考到的知识点,分享给需要的同学。1。NetworkPolicy
  通常使用标签选择器来选择pod,控制流量。所以要对kubectllabel的使用方法熟悉起来。kubectllabel〔overwrite〕(fFILENAMETYPENAME)KEY1VAL1。。。KEYNVALN〔resourceversionversion〕〔options〕
  网络策略的实用方法见注释apiVersion:networking。k8s。iov1kind:NetworkPolicymetadata:name:testnetworkpolicynamespace:defaultspec:podSelector:{}表示选择所有pod应用NetworkPolicypodSelector:表示选择包含标签roledb的pod应用下面的NetworkPolicymatchLabels:role:dbpolicyTypes:表示NetworkPolicy包含ingress和egress流量规则IngressEgressingress:ingress规则白名单列表,每条规则允许同时匹配from和ports流,可以有条个规则。第1条白名单,包含fromports的组合规则,允许来自172。17网段(172。17。1除外)、或标签projectmyproject的命名空间的所有pod、或default命名空间下标签rolefrontend的pod访问(限tcp6379端口)from:ipBlock:cidr:172。17。0。016except:172。17。1。024namespaceSelector:matchLabels:project:myprojectpodSelector:matchLabels:role:frontendports:protocol:TCPport:6379第二条白名单,只包含from规则,允许来自所有命名空间包含environmenttesting标签的pod访问(不限端口)from:namespaceSelector:{}podSelector:matchLabels:environment:testingegress:egress规则白名单列表,同ingress规则一样,每条规则包含toports,可以有多条规则。to:ipBlock:cidr:10。0。0。024ports:protocol:TCPport:59782。Apparmor
  查看当前节点加载的apparmorprofile,如果没有加载,要手工加载apparmorstatusgrepnginxapparmorparseretcapparmor。dnginxapparmor
  cks考试的apparmorprofile文件内容:includetunablesglobalnginxprofile3profilenginxprofile3flags(attachdisconnected){includefile,Denyallfilewrites。denyw,}
  注意:nginxprofile3这一行要确保注释掉,考试环境提供的可能没有注释,加载配置文件按时会报错rootnode01:apparmorparseretcapparmor。dnginxapparmorAppArmorparsererrorforetcapparmor。dnginxapparmorinetcapparmor。dninxapparmoratline2:Foundunexpectedcharacter:
  修改podyaml文件,在注释里设置为podx加载apparmorprofileannotations:container。apparmor。security。beta。kubernetes。iopodx:localhostnginxprofile3
  yaml文件内容如下:apiVersion:v1kind:Podmetadata:name:podxannotations:container。apparmor。security。beta。kubernetes。iopodx:localhostnginxprofile3spec:containers:image:busyboximagePullPolicy:IfNotPresentname:podxcommand:〔sh,c,echoHelloAppArmor!sleep1h〕resources:{}nodeName:node01dnsPolicy:ClusterFirstrestartPolicy:Always3。修复kubebench发现的安全问题
  kubebench是一个CIS评估工具,扫描kubernetes集群存在的安全问题,基本上按照扫描结果的修复建议进行修复就可以了,系统会给出很具体的修复措施。修复kubeapiserver安全问题vietckubernetesmanifestskubeapiserver修改:authorizationmodeNode,RBAC添加insecureport0删除insecurebindaddress0。0。0。0修复kubelet安全问题vivarlibkubeletconfig。yaml将authentication。anonymous。enabled设置为falseauthentication:anonymous:enabled:falseauthorization。mode设置为Webhookauthorization:mode:Webhook修复etcd安全问题vietckubernetesmanifestsetcd。yaml修改为true:clientcertauthtrue以上修复完成后重新加载配置文件并重启kubeletsystemctldaemonreloadsystemctlrestartkubelet4。解决pod的serviceaccount设置错误问题
  这个题要注意serviceaccount有个选项automountServiceAccountToken,这个选项决定是否自动挂载secret到pod。
  有这个选项,我们就可以控制pod创建并绑定serviceaccount时,不自动挂载对应的secret,这样pod就没有权限访问apiserver,提高了业务pod的安全性。
  可以在serviceaccount和pod的spec里设置,pod的设置优先于serviceaccount里的设置。apiVersion:v1kind:ServiceAccountmetadata:name:backendsanamespace:qaautomountServiceAccountToken:falseapiVersion:v1kind:Podmetadata:name:backendnamespace:qaspec:serviceAccountName:backendsacontainers:image:nginx:1。9imagePullPolicy:IfNotPresentname:backend
  删除未使用的serviceaccount5。设置默认网络策略
  这道题是送分题,设置默认拒绝所有出站和入站的pod流量,基本上可以参考官网的案例直接改一下名字就可以了
  默认网络策略6。RBAC
  这道题也基本是送分题,参考官网文档,根据题目要求,设置role的资源访问权限,绑定到serviceaccount就可以了。
  RBAC7。日志审计
  这道题稍复杂,需要按照要求启动日志审计,包括两个步骤:
  (1)编写日志审计策略文件
  日志审计策略apiVersion:audit。k8s。iov1kind:PolicyomitStages:RequestReceivedrules:level:RequestResponseresources:group:resources:〔namespaces〕level:Requestresources:group:resources:〔persistentvolumes〕namespaces:〔frontapps〕level:Metadataresources:group:resources:〔secrets,configmaps〕level:MetadataomitStages:RequestReceived
  (2)修改kubeapiserver。yaml配置文件,启用日志审计策略,日志策略配置文件位置、日志文件存储位置、循环周期。
  启动日志配置
  vietckubernetesmanifestskubeapiserver。yaml设置日志审计策略文件在pod里的mount位置auditpolicyfileetckuberneteslogpolicysamplepolicy。yaml设置日志文件存储位置auditlogpathvarlogkubernetesauditlogs。txt设置日志文件循环auditlogmaxage10auditlogmaxbackup2mount日志策略和日志文件的volumeMounts:mountPath:etckuberneteslogpolicysamplepolicy。yamlname:auditreadOnly:truemountPath:varlogkubernetesauditlogs。txtname:auditlogreadOnly:falsevolumes:name:audithostPath:path:etckuberneteslogpolicysamplepolicy。yamltype:Filename:auditloghostPath:path:varlogkubernetesauditlogs。txttype:FileOrCreate
  重启kubeletsystemctldaemonreloadsystemctlrestartkubelet8。创建secret
  这道题考解码secret的base64编码信息,创建新的secret并mount到pod的特定位置。
  解码secretkubectlgetsecretsnistiosystemdb1testojsonpath{。data。username}base64dckssecuser。txtkubectlgetsecretsnistiosystemdb1testojsonpath{。data。password}base64dckssecpass。txt
  创建secretkubectlcreatesecretgenericdb2testnistiosystemfromliteralusernameproductioninstancefromliteralpasswordKvLftKgs4aVH
  使用secretapiVersion:v1kind:Podmetadata:name:secretpodnamespace:istiosystemspec:containers:name:devcontainerimage:nginxvolumeMounts:name:secretvolumemountPath:etcsecretvolumes:name:secret:secretName:db2test9。检测dockerfile的不安全指令
  这道题也是送分题,主要是把dockerfile里两个使用了root用户的指令删除,把添加特定能力的securityContext安全上下文注释掉。删除两处USERroot注释securityContextsecurityContext:{Capabilities:{add:{NETBINDSERVICE},drop:〔〕},privileged:TRUE}10。运行沙箱容器
  给出了支持安全沙箱容器运行时handlerrunsc,我们需要创建一个RuntimeClass并在podspec里指定是用该RuntimeClass
  参考资料创建RuntimeClassapiVersion:node。k8s。iov1beta1kind:RuntimeClassmetadata:name:untrustedhandler:runsc修改server命名空间所有pod,设置runtimeClassName
  注意:运行中的pod只能修改有限的几个属性,不支持修改RuntimeClass,需要将所有pod的yaml解析出来,修改yaml后,再重新创建pod
  还需要修改deploymentspec:。runtimeClassName:untrustedcontainers:image:vicuunginx:hostimagePullPolicy:IfNotPresentname:nginxhost11。删除不符合最佳实践的pod
  参考链接删除启用了特权的pod
  主要是检查pod是否含privileged:true
  kubectlgetpoxxxnproductionoyamlgrepiprivileged:true删除有状态pod
  kubectlgetpodsXXXXnproductionojsonpath{。spec。volumes}jq12。扫描镜像安全漏洞并删除使用有安全漏洞镜像的pod
  这道题考察对于镜像扫描工具trivy的使用获取镜像名kubectgetpodXXXXnkaminooyamlgrepimage扫描镜像trivyimagesHIGH,CRITICALimagenamekubectldeletepoxxx13。使用sysdig检查容器里里的异常进程
  本体考察是否掌握sysdig的基本用法,记住两个帮助命令:sysdigh查看sysdig帮助sysdigl查看sysdig支持的元数据
  另外sysdig支持指定containerid分析特定容器查看容器iddockerpsgreptomcatsysdigM30pevt。time,user。uid,proc。namecontainer。idxxxxoptDFAincidentssummary14。PodSecurityPolicy
  这道题考察是否掌握psp的用法,包括5步骤
  (1)创建psp
  参考链接apiVersion:policyv1beta1kind:PodSecurityPolicymetadata:name:restrictpolicyspec:privileged:falseseLinux:rule:RunAsAnysupplementalGroups:rule:RunAsAnyrunAsUser:rule:RunAsAnyfsGroup:rule:RunAsAnyvolumes:
  (2)创建clusterrole,使用pspkubectlcreateclusterrolerestrictaccessroleverbuseresourcepspresourcenamerestrictpolicy
  (3)创建serviceaccountkubectlcreatesapspdenialsanstaging
  (4)绑定clusterrole到serviceaccountkubectlcreateclusterrolebindingdanyaccessbindclusterrolerestrictaccessroleserviceaccountstaging:pspdenialsa
  (5)启用PodSecurityPolicyvietckubernetesmanifestskubeapiserver。yaml确保有以下内容:enableadmissionpluginsNodeRestriction,PodSecurityPolicy15。启用APIserver认证
  这道题同前面kubebench的考核内容有点重合,题目中是用kubeamd创建的kubernetes服务器权限设置有问题,允许未经授权的访问。
  参考链接
  需要进行以下修改:使用Node,RBAC授权模式和NodeRestriction准入控制器vietckubernetesmanifestskubeapiserver。yaml确保以下内容authorizationmodeNode,RBACenableadmissionpluginsNodeRestrictionclientcafileetckubernetespkica。crtenablebootstraptokenauthtrue删除system:anonymous的ClusterRolebinding角色绑定,取消匿名用户的集群管理员权限kubectldeleteclusterrolebindingsystem:anonymous16。ImagePolicyWebhook
  这道题考察ImagePolicyWebhook准入控制器的使用,分4个步骤修改控制器配置文件,将未找到有效后端时的默认拒绝改为默认不拒绝
  参考链接
  vietckubernetesepconfigadmissionconfiguration。json{imagePolicy:{kubeConfigFile:etckubernetesepconfigkubeconfig。yaml,allowTTL:50,denyTTL:50,retryBackoff:500,defaultAllow:false}}修改控制器访问webhookserver的kubeconfigvietckubernetesepconfigkubeconfig。yaml修改如下内容apiVersion:v1kind:Configclusters:cluster:certificateauthority:etckubernetesepconfigwebhook。pemserver:https:acme。local:8082imagepolicywebhookserver的地址name:bouncerwebhook以下省略启用ImagePolicyWebhook
  vietckubernetesmanifestskubeapiserver。yaml启用ImagePolicyWebhookenableadmissionpluginsNodeRestriction,ImagePolicyWebhook指定准入控制器配置文件admissioncontrolconfigfileetckubernetesepconfigadmissionconfiguration。jsonmountvolumeMounts:mountPath:etckubernetesepconfigname:epconfig映射volumesvolumes:name:epconfighostPath:path:etckubernetesepconfig测试是否生效systemctldaemonreloadsystemctlrestartkubeletkubectlapplyfcksimgweb1。yaml有图有真相CKA
  CKS
投诉 评论 转载

荒野大镖客2即将登陆PC,代码证据曝光IT之家7月5日消息昨天,推特用户JakoMako51称R星的社交俱乐部源代码中提到了《荒野大镖客2》PC版的成就,看来《荒野大镖客2》登录PC指日可待了。曝光代码:……Switch手柄存漂移问题,任天堂遭集体诉讼IT之家7月21日消息美国一家律师事务所对任天堂公司提起集体诉讼,称其Switch手柄存在漂移问题。CSKDS律师事务所在收集了遭遇这一问题的玩家的信息后,推进了……2022年2月kubernetesCKS备考实录前言CKA和CKS是LINUX基金会联合CNCF社区组织的云原生技术领域权威认证,考试采用实操方式进行。CKS全称是Kubernetes安全专家认证,它在一个模拟真实的环……任天堂公布Switch全新纯色手柄售价80美元,10月4日发IT之家7月17日消息今日,任天堂公布了两款全新配色的Switch手柄,这两款手柄将于10月4日发售,售价79。99美元(约合人民币550元)。此次任天堂共推出了黄蓝和橙……欧意OKEx大牛购买比特币这些常识非看不可我们从欧意OKEx国内官网收集了一些投资新手都在问的知识点,来看看有没有你不懂的吧!一、交易比特币会不会有法律风险?不需担心,国家对比特币的监管仅限于ICO等活动,作为虚……SocialClub官网代码泄露荒野大镖客救赎2或登陆PC平IT之家7月4日消息R星的SocialClub官网在6月底进行了更新,而根据推特网友JakoMako51爆料,他从官网的脚本文件挖掘到了RDR2PC的字样,这或许暗示了《荒野大……GTA6或将以20世纪70年代为背景IT之家7月1日消息近日,在国外的ResetEra论坛上,有一位ID为RevengeTaken的网友爆料了关于《GTA6》的几条相关消息,其中包括游戏将会加入一个国际化大都市作……R星前员工简历透露GTA6可能已在开发中IT之家4月19日消息《GTA5(侠盗猎车手5)》作为一款经典游戏,推出至今已有多年。在这些年里,我们时不时就能听到关于其续作的爆料,可是这款续作迟迟没有现身。《侠盗猎车……光环致远星PC版上架Steam多半好评,GTX560Ti可畅IT之家12月4日消息《光环:致远星》PC版已在12月4日凌晨2点解锁,Steam上目前为多半好评。游戏介绍:亲身体验Noble小队的英雄故事。他们是一队斯巴达战士……复兴号来了,交通模拟游戏狂热运输2将于12月12日登陆SteIT之家12月1日消息据Steam官方消息,交通模拟运输类游戏《狂热运输2(TransportFever2)》将于12月12日登陆Steam,预购价格为113元。据了解,……搜索引擎营销带来上亿的收入和投资人,很多创业者不知道现在很多创业公司在创业初期,都有一个比较搞笑的观点,说新公司,不用做搜索引擎营销,做那个也没有用,但是他们不知道,正是他们的这种想法让他们白白浪费了很多客户,也浪费了用户的信任……日系手机为什么不能在中国卖起来?大家都知道,日本智能设备,家电等方面实力非常雄厚。可是呢,不知道你们有没有用心观察,我们身边很少有人使用日本产品。在手机行业领域日产手机也不差,有索尼、松下、夏普、NEC……
2021国庆纪实湖北神农架出现过山黄,像虎又像豹,有华南虎的2倍大4倍重寒食节纪念谁(寒食节的由来简介)暑期带着孩子去看海,为什么没有去北戴河,而是去了葫芦岛?殊的组词(尊的组词)促运动感十足吉利星越S上市大麦茶怎么泡(泡大麦茶注意的事项)人民日报专家集体辟谣,大家别再相信了恋爱秘籍(恋爱秘籍男生必看)渭南一日游哪里好玩?去了西藏,你才会知道的冷知识科普下怎么通过看实物就能画出电路图中学电路图画法
好文:母亲节给妈妈发红包吉利数字含义介绍(母亲节发多少红包给 量天尺什么时候开花怎样使量天尺开花墙纸怎么贴(新手一个人贴墙纸好贴吗)抓牢基层党建焕发基层活力大树邮筒“门外汉”如何开始理财之路高中作文战胜自我如果碰到杀手你会怎么办古代人类排泄物研究揭示了2700年前的啤酒和蓝纹奶酪饮食习惯过绵阳费大劲,绕三环外终于走出成都,俩老汉抵达川藏线起点雅安擦,这不是电梯秋季女生流行什么发型今秋最新的时尚发型

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形