解題

eryoung2發表於2024-04-29

任務

注意:你必須在 cluster 的 master節點上完成整個考題,所有服務和檔案都已被準備好並放置在該節點上。
給定一個目錄 /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 找到容器映象掃描器的日誌檔案。

解題

  1. 修改/etc/kubernetes/epconfig/admission_configuration.json,將defaultAllow設定為false
"defaultAllow": false
  1. 修改/etc/kubernetes/epconfig/kubeconfig.yml,新增webhook server地址
cluster:
    certificate-authority: /path/to/ca.pem   
    server: https://acme.local:8082/image_policy  # 增加該行
  1. 備份配置檔案
mkdir -p /opt/backup/16
cp -f /etc/kubernetes/manifests/kube-apiserver.yaml /opt/backup/16
  1. 修改配置檔案
    - --enable-admission-plugins=NodeRestriction,ImagePolicyWebhook #新增ImagePolicyWebhook
    - --admission-control-config-file=/etc/kubernetes/epconfig/admission_configuration.json #新增配置檔案路徑

      - mountPath: /etc/kubernetes/epconfig #新增掛載,具體參考配置檔案其他範例
        name: epconfig
        readOnly: true
    - name: epconfig
      hostPath:
        path: /etc/kubernetes/epconfig
  1. 重啟kubelet並檢查
systemctl daemon-reload
systemctl restart kubelet
  1. 部署/cks/img/web1.yaml進行測試檢查
kubectl apply -f /cks/img/web1.yaml

參考

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

相關文章