跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 工具系统 > 防关联工具 > 2024 CKS 题库 | 16、ImagePolicyWebhook容器镜像扫描

2024 CKS 题库 | 16、ImagePolicyWebhook容器镜像扫描

时间:2024-04-23 16:40:43 来源:网络cs 作者:亙句 栏目:防关联工具 阅读:

标签: 容器  扫描 

不等更新题库

CKS 题库 16、ImagePolicyWebhook容器镜像扫描

file

Context

cluster 上设置了容器镜像扫描器,但尚未完全集成到 cluster 的配置中。
完成后,容器镜像扫描器应扫描并拒绝易受攻击的镜像的使用。

Task

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

给定一个目录 /etc/kubernetes/epconfig 中不完整的配置,
以及具有 HTTPS 端点 https://image-bouncer-webhook.default.svc:1323/image_policy 的功能性容器镜像扫描器:

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

最后,通过尝试部署易受攻击的资源 /cks/img/web1.yaml 来测试配置是否有效。


参考

https://kubernetes.io/zh/docs/reference/access-authn-authz/admission-controllers/#如何启用一个准入控制器

https://kubernetes.io/zh/docs/reference/access-authn-authz/admission-controllers/#imagepolicywebhook

https://kubernetes.io/zh/docs/tasks/debug/debug-cluster/audit/#log-后端


解答

切换集群

kubectl config use-context KSSH00901

远程到master并切换root

ssh master01sudo -i

编辑admission_configuration.json(题目会给这个目录),修改defaultAllow为false:

vi /etc/kubernetes/epconfig/admission_configuration.json
    "denyTTL": 50,    "retryBackoff": 500,    "defaultAllow": false #将true改为false

编辑/etc/kubernetes/epconfig/kubeconfig.yml,添加 webhook server 地址:
操作前,先备份配置文件

cp /etc/kubernetes/epconfig/kubeconfig.yml bakyaml/vi /etc/kubernetes/epconfig/kubeconfig.yml

修改如下内容

    certificate-authority: /etc/kubernetes/epconfig/server.crt    server: https://image-bouncer-webhook.default.svc:1323/image_policy #添加webhook server地址  name: bouncer_webhook

编辑kube-apiserver.yaml,从官网中引用 ImagePolicyWebhook 的配置信息:
操作前,先备份配置文件

cp /etc/kubernetes/manifests/kube-apiserver.yaml bakyaml/vi /etc/kubernetes/manifests/kube-apiserver.yaml

在- command:下添加如下内容,注意空格要对齐(不建议放到最后,建议放置的位置详见下方截图)

- --enable-admission-plugins=NodeRestriction,ImagePolicyWebhook- --admission-control-config-file=/etc/kubernetes/epconfig/admission_configuration.json#在1.25的考试中,默认这行已经添加了,但为了以防万一,模拟环境,没有添加,需要你手动添加。考试时,你先检查,有的话,就不要再重复添加了。重复添加反而会报错!

file

在kube-apiserver.yaml的 volumeMounts 增加

volumeMounts: #在volumeMounts下面增加 #注意,在1.25考试中,蓝色的内容可能已经有了,你只需要添加绿色字体的内容。可以通过红色字,在文件中定位。但模拟环境没有加,需要你全部手动添加。这样是为了练习,万一考试中没有,你也会加。但是如果考试中已添加,你再添加一遍,则会报错,导致api-server启不起来。- mountPath: /etc/kubernetes/epconfig #建议紧挨着volumeMounts的下方增加name: epconfigreadOnly: true

file

在kube-apiserver.yaml的volumes 增加

volumes: #在volumes下面增加 #注意,在1.25考试中,蓝色的内容可能已经有了,你只需要检查确认一下是否准确。可以通过红色字,在文件中定位。但模拟环境没有加,需要你全部手动添加。这样是为了练习,万一考试中没有,你也会加。但是如果考试中已添加,你再添加一遍,则会报错,导致api-server启不起来。- name: epconfig #建议紧挨着volumes的下方增加hostPath:path: /etc/kubernetes/epconfigtype: DirectoryOrCreate#如果你写的是目录,则是DirectoryOrCreate,如果你写的是文件,则是File

file

重启并检查集群

systemctl restart kubeletkubectl -n kube-system get pod

通过尝试部署易受攻击的资源 /cks/img/web1.yaml 来测试配置是否有效
无法创建pod,如下报错,表示成功。
因为模拟环境里的image_policy策略是镜像tag是latest的不允许创建。

kubectl apply -f /cks/img/web1.yaml

file

本文链接:https://www.kjpai.cn/news/2024-04-23/161551.html,文章来源:网络cs,作者:亙句,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论