CKS认证-ImagePolicyWebhook

16. ImagePolicyWebhook

问题

Task

您必须在 cluster 的 master 节点上完成整个考题,所有服务和文件都已被准备好并放置在该节点上。

给定一个目录/etc/kubernetes/epconfig 中不完整的配置以及具有 HTTPS 端点https://wakanda.local:8082/image_policy 的功能性容器镜像扫描器:

  1. 启用必要的插件来创建镜像策略
  2. 校验控制配置并将其更改为隐式拒绝(implicit deny)
  3. 编辑配置以正确指向提供的 HTTPS 端点

最后,通过尝试部署易受攻击的资源/root/KSSC00202/configuration-test.yml 来测试配置是否有效。
:::info
您可以在/var/log/imagepolicy/acme.log 找到容器镜像扫描仪的日志文件。
:::

正确答案:

参考链接
文档搜索关键词:准入控制器、ImagePolicyWebhook
1. 关闭默认允许:

#如果权限不够, 切换到root
candidate@hk8s-master01:~$ vim
/etc/kubernetes/epconfig/admission_configuration.json
{
"imagePolicy": {
"kubeConfigFile": "/etc/kubernetes/epconfig/kubeconfig.yaml",
"allowTTL": 50,
"denyTTL": 50,
"retryBackoff": 500,
"defaultAllow": false
}
}
# 将'defaultAllow' 改成false

2、配置 Webhook 地址:

注意:
模拟环境中这个url是http的, 考试时按照题⽬要求写。
操作前,先备份配置文件
千万不要在/etc/kubernetes/下备份,可能会导致异常,可以备份到/tmp 目录下。

candidate@hk8s-master01:~$ vim
/etc/kubernetes/epconfig/kubeconfig.yaml
server: http://wakanda.local:8082/image_policy #模拟环境中这个url是http的, 考试时按照题⽬要求写

image.png
3、开启 ImagePolicyWebhook:

注意:
操作前,先备份配置文件
千万不要在/etc/kubernetes/下备份,可能会导致异常,可以备份到/tmp 目录下。
在- command:下修改或添加如下内容,注意空格要对齐(不建议放到最后,建议放置的位置详见下方截图)

  • –enable-admission-plugins=NodeRestriction,ImagePolicyWebhook #注意先搜索,如果存在则修改,比如模拟环境里已经有了,但不全,需要修改。
  • –admission-control-config-file=/etc/kubernetes/epconfig/admission_configuration.json #在 1.28 的考试中,默认有这行了,但为了以防万一,模拟环境,没有这行,需要你手动添加。考试时,你先检查,有的话,就不要再重复添加了。
candidate@hk8s-master01:~$ vim /etc/kubernetes/manifests/kube-apiserver.yaml
- --enable-admission-plugins=NodeRestriction,ImagePolicyWebhook #修改这⼀⾏加上ImagePolicyWebhook
- --admission-control-config-file=/etc/kubernetes/epconfig/admission_configuration.json # 添加这⼀⾏,指向的⽂件在 epconfig⽬录下


4、配置挂载, 考试时⼀般已经挂载好了,到时检查下, 不要重复挂载 :

... ...
 95     - mountPath: /usr/local/share/ca-certificates
 96       name: usr-local-share-ca-certificates
 97       readOnly: true
 98     - mountPath: /etc/kubernetes/epconfig # 添加这三⾏
 99       name: epconfig #
 100      readOnly: true  #
 105   hostNetwork: true
 106   priority: 2000001000
 107   priorityClassName: system-node-critical
 108   securityContext:
 109     seccompProfile:
 110       type: RuntimeDefault
111   volumes:
112   - hostPath:     ##添加这三行
113       path: /etc/kubernetes/epconfig   #
115     name: epconfig  #
120   - hostPath:
121       path: /etc/ssl/certs
122       type: DirectoryOrCreate
... ...

5、重启服务

注意:
等待 3 分钟,等集群应用策略后,确保 kube-apiserver 是 running 的
kubectl -n kube-system get pod

 systemctl daemon-reload
 systemctl restart kubelet

6、测试

注意:
(注意:考试时,你可能会正常的创建出来 pod。但是题目里会给你一个日志文件(如下图),你可以检查日志文件,日志文件里会记录检测信息的,如果有提
示大概意思是说部署了一个易受攻击的镜像,则表示做对了。)
image.png
部署题⽬给出的yaml
通过尝试部署易受攻击的资源 /root/KSSC00202/configuration-test.yml 来测试配置是否有效
无法创建 pod,如下报错,表示成功。
因为模拟环境里的 image_policy 策略是镜像 tag 是 latest 的不允许创建。

root@hk8s-master01:~/init# kubectl create -f 
/root/KSSC00202/configuration-test.yml

然后查看 kubectl describe replicationcontrollers nginx-latest
image.png
imagepolicywebhook已经⽣效了, image policy webhook backend denied one or more images

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值