任務
在 cluster 的工作節點上,實施位於 /etc/apparmor.d/nginx_apparmor 的現有 APPArmor配置文件。
編輯位於 /home/candidate/KSSH00401/nginx-deploy.yaml 的現有清單文件以應用AppArmor 配置文件。 最後,應用清單文件並創建其中指定的 Pod 。
做題
- 在集羣所有節點上加載apparmor策略,並檢查
apparmor_parser /etc/apparmor.d/nginx_apparmor
apparmor_status|grep nginx-profile
- 回到主節點,編輯清單文件,添加配置
vim /home/candidate/KSSH00401/nginx-deploy.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-deploy
annotations:
# 從官網複製,注意格式:container.apparmor.security.beta.kubernetes.io/<container_name>: <profile_ref>
# <container_name> 的名稱是配置文件所針對的容器的名稱,<profile_def> 則設置要應用的配置文件。 <profile_ref> 可以是以下取值之一:
# runtime/default 應用運行時的默認配置
# localhost/<profile_name> 應用在主機上加載的名爲 <profile_name> 的配置文件
# unconfined 表示不加載配置文件
container.apparmor.security.beta.kubernetes.io/nginx-deploy: localhost/nginx-profile-1
spec:
containers:
- name: nginx-deploy
image: busybox
command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]
kubectl apply -f /home/candidate/KSSH00401/nginx-deploy.yaml
- 檢查
kubectl get pod kubectl exec nginx-deploy -- cat /proc/1/attr/current kubectl exec nginx-deploy -- touch /tmp/test
參考
https://kubernetes.io/zh-cn/docs/tutorials/security/apparmor/