题目

给定一个目录 /etc/kubernetes/epconfig中不完整的配置以及具有 HTTPS 端点

https://acme.local:8082/image_policy 的功能性容器镜像扫描器:

1. 启用必要的插件来创建镜像策略

2. 校验控制配置并将其更改为隐式拒绝(implicit deny)

3. 编辑配置以正确指向提供的 HTTPS 端点

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

你可以在 /var/log/imagepolicy/roadrunner.log 找到容器镜像扫描仪的日志文件。

参考

使用准入控制器 | Kubernetes

审计 | Kubernetes

步骤

1 修改defaultAllow为false

vi /etc/kubernetes/epconfig/admission_configuration.json


{

  "imagePolicy": {

     "kubeConfigFile": "/etc/kubernetes/epconfig/kubeconfig.yaml",
     "allowTTL": 50,
     "denyTTL": 50,
     "retryBackoff": 500,
     "defaultAllow": false  #true改为false
  }

}

2 添加镜像扫描策略

vi /etc/kubernetes/epconfig/kubeconfig.yaml #最好保存一下


apiVersion: v1
kind: Config
clusters:
- cluster:
    certificate-authority: /etc/kubernetes/epconfig/webhook.pem
    server: https://acme.local:8082/image_policy  #增加webhook server
  name: bouncer_webhook
contexts:
- context:
    cluster: bouncer_webhook
    user: api-server
  name: bouncer_validator
current-context: bouncer_validator
preferences: {}
users:
- name: api-server
  user:
    client-certificate: /etc/kubernetes/epconfig/apiserver-client.pem
    client-key:  /etc/kubernetes/epconfig/apiserver-clientkey.pem

3 修改apiserver

vi /etc/kubernetes/manifests/kube-apiserver.yaml 最好保存下

在- command:下添加如下内容

 - --enable-admission-plugins=NodeRestriction,ImagePolicyWebhook
 - --admission-control-config-file=/etc/kubernetes/epconfig/admission_configuration.json

在 volumeMounts 增加   

volumeMounts:   
    - mountPath: /etc/kubernetes/epconfig
      name: epconfig 

在volumes 增加
volumes: 
  - name: epconfig
    hostPath:
      path: /etc/kubernetes/epconfig

4 重启kubelet并启动测试

systemctl restart kubelet

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

5 查看测试结果

vi /var/log/imagepolicy/roadrunner.log

Logo

开源、云原生的融合云平台

更多推荐