题目

Task
在 cluster 的工作节点 node02 上,实施位于 /etc/apparmor.d/nginx_apparmor 的现有 APPArmor 配置文件。
编辑位于 /cks/KSSH00401/nginx-deploy.yaml 的现有清单文件以应用 AppArmor 配置文件。
最后,应用清单文件并创建其中指定的 Pod 。
请注意,考试时,考题里已表明 APPArmor 在工作节点上,所以你需要 ssh 到开头写的工作节点上。

环境搭建

  1. 安装AppArmor:

在CentOS系统中安装

yum install -y apparmor-utils 

在Ubuntu系统中安装

apt-get install -y apparmor-utils 

在这里插入图片描述

  1. 启动AppArmor:
systemctl start apparmor.service 
  1. 检查AppArmor是否正在运行:
systemctl status apparmor.service 
  1. 创建文件
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
截图
在这里插入图片描述
在这里插入图片描述
可以看到创建后确实没有写操作权限

模拟题

在这里插入图片描述
在这里插入图片描述

参考

K8S-使用 AppArmor 限制容器对资源的访问
gitlab-apparmor文档

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐