不等更新题库
CKS 题库 11、AppArmor
Context:
APPArmor 已在 cluster 的工作节点node02上被启用。一个 APPArmor 配置文件已存在,但尚未被实施。
Task:
在 cluster 的工作节点node02上,实施位于 /etc/apparmor.d/nginx_apparmor 的现有APPArmor 配置文件。
编辑位于 /cks/KSSH00401/nginx-deploy.yaml 的现有清单文件以应用 AppArmor 配置文件。
最后,应用清单文件并创建其中指定的 Pod 。
请注意,考试时,考题里已表明APPArmor在工作节点上,所以你需要ssh到开头写的工作节点上。
在模拟环境,你需要ssh到node02这个工作节点。
参考:
https://kubernetes.io/zh/docs/tutorials/security/apparmor/#example
解答:
切换集群
kubectl config use-context KSSH00401
连接到 node02 并切换到 root
ssh node02
sudo -i
切换到 apparmor 目录, 并检查配置文件
vi /etc/apparmor.d/etc/apparmor.d/nginx_apparmor
nginx_apparmor
#include <tunables/global>
#nginx-profile-3 #检查这一行是否存在 存在则注释掉
profile nginx-profile-3 flags=(attach_disconnected) {
#include <abstractions/base>
file,
# Deny all file writes.
deny /** w,
}
执行 并 检查 apparmor策略模块
apparmor_parser -q /etc/apparmor.d/nginx_apparmor
apparmor_status | grep nginx-profile-3
修改 pod 文件
(注意!注意!考试时,这个文件是在默认登录的终端那个初始节点上的,而不是在这个work节点的)
vi /cks/KSSH00401/nginx-deploy.yaml
添加注解
annotations:
container.apparmor.security.beta.kubernetes.io/podx: localhost/nginx-profile-3
创建pod
kubectl -f /cks/KSSH00401/nginx-deploy.yaml create
检查
kubectl get pod
kubectl exec podx -- cat /proc/1/attr/current
kubectl exec podx -- touch /tmp/test
查看current显示 xxx (enforce)
创建文件提示权限不足