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

posted @   打工人,打工魂  阅读(624)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示