CKS 考试题整理 (02)-Apparmor
Context
Apparmor 已在 cluster 的工作节点 node02 上被启用。一个 Apparmor 配置文件已存在,但尚未被实施。
Task
在 cluster 的工作节点 node02 上,实施位于 /etc/apparmor.d/nginx_apparmor 的现有 APPArmor 配置文件。
编辑位于 /home/candidate/KSSH00401/nginx-deploy.yaml 的现有清单文件以应用 AppArmor 配置文件。
最后,应用清单文件并创建其中指定的 Pod 。
注意: 题目中已标明 APPArmor 在工作节点上,所有需要ssh到该节点。
参考资料
https://kubernetes.io/zh-cn/docs/tutorials/security/apparmor/
解答
首先执行切换集群操作
kubectl config use-context KSSH00401
1. 切换到 node02
ssh node02 && sudo -i
2. 检查配置文件
vim /etc/apparmor.d/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,
}
3. 执行apparmor 策略模块
查看当前节点加载的 apparmor profile ,手工加载
apparmor_status|grep nginx
apparmor_parser /etc/apparmor.d/nginx_apparmor
再次检查,就有nginx-profile-3 模块
4. 修改 pod 文件
修改内容如下:
vim /home/candidate/KSSH00401/nginx-deploy.yaml
apiVersion: v1
kind: Pod
metadata:
name: podx
annotations: #添加这一部分
container.apparmor.security.beta.kubernetes.io/podx: localhost/nginx-profile-3
spec:
containers:
- image: busybox
imagePullPolicy: IfNotPresent
name: podx #这个就是containers下的名字,为podx
command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]
resources: {}
nodeName: node01
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
创建
kubectl apply -f /home/candidate/KSSH00401/nginx-deploy.yaml
检查
如果想写入文件会报错,
kubectl exec podx -- touch /tmp/test
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律