目录
- 题目
- 环境搭建
- 解题
- 模拟题
- 参考
题目
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 限制容器对资源的访问







![[图神经网络]ViG(Vision GNN)网络代码实现](https://img-blog.csdnimg.cn/1ae45fb6da464bbe87769b5597ca1d75.png)











