目录
- 题目
- 环境搭建
- 解题
- 模拟题
- 参考
题目
Task
在 cluster 的工作节点 node02 上,实施位于 /etc/apparmor.d/nginx_apparmor 的现有 APPArmor 配置文件。
编辑位于 /cks/KSSH00401/nginx-deploy.yaml 的现有清单文件以应用 AppArmor 配置文件。
最后,应用清单文件并创建其中指定的 Pod 。
请注意,考试时,考题里已表明 APPArmor 在工作节点上,所以你需要 ssh 到开头写的工作节点上。
环境搭建
- 安装AppArmor:
在CentOS系统中安装
yum install -y apparmor-utils
在Ubuntu系统中安装
apt-get install -y apparmor-utils
- 启动AppArmor:
systemctl start apparmor.service
- 检查AppArmor是否正在运行:
systemctl status apparmor.service
- 创建文件
vim /etc/apparmor.d/nginx_apparmor
#include <tunables/global>
profile nginx-profile-1 flags=(attach_disconnected) {
#include <abstractions/base>
file,
# Deny all file writes.
deny /** w,
}
mkdir -p /cks/KSSH00401/
vim /cks/KSSH00401/nginx-deploy.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-deploy
spec:
containers:
- name: nginx-deploy
image: busybox
command: ["sh","-c","echo 'Hello AppArmor!' && sleep 1h"]
附其他命令:
启用AppArmor:
systemctl enable apparmor.service
重新加载AppArmor:
apparmor_parser -r /etc/apparmor.d/*
解题
查看配置文件,加载配置文件,查看加载的配置中是否有对应profile
命令
cat /etc/apparmor.d/nginx_apparmor
apparmor_parser /etc/apparmor.d/nginx_apparmor
apparmor_status | grep nginx
截图
修改yaml文件
命令
vim /cks/KSSH00401/nginx-deploy.yaml
在metadata下面添加内容
annotations:
container.apparmor.security.beta.kubernetes.io/nginx-deploy: localhost/nginx-profile-1
第一个/后面是容器名称,第二个/后面是cat配置文件时的profile
截图
可以看到创建后确实没有写操作权限
模拟题
参考
使用 AppArmor 限制容器对资源的访问