CKS认证-AppArmor

14. AppArmor


**注意:**这道题给大家更新一下,在做这题的时候一定要检查kubelet的版本是1.28还是1.30.如果是1.30的话,按照官网最新文档去修改annotaions的值。如果是1.28的版本,一定要在kubernetes.io官网上把版本切换成1.28的版本再去做这道题。建议大家两种方法都要掌握一下!!!

  1 apiVersion: v1
  2 kind: Pod
  3 metadata:
  4   name: nginx-deploy
  5   annotations:
  6     container.apparmor.security.beta.kubernetes.io/nginx-deploy: localhost/nginx-profile-1
  7 spec:
  8   containers:
  9   - name: nginx-deploy
 10     image: busybox
 11     command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]

问题:

Context
AppArmor 已在 cluster 的工作节点上被启用。一个 AppArmor 配置文件已存在,但尚未被实施。
:::info
您可以使用浏览器打开一个额外的标签页来访问 AppArmor 的文档。
:::
Task
在 cluster 的工作节点上,实施位于/etc/apparmor.d/nginx_apparmor 的现有AppArmor 配置文件。
编辑位于/home/candidate/KSSH00401/nginx-deploy.yaml的现有清单文件以应用 AppArmor 配置文件。
最后,应用清单文件并创建其中指定的 Pod。

正确答案:

注意:
ssh 到 node 节点加载apparmor配置⽂件 , 集群中所有node节点都要配置!
ssh 到 node 节点加载apparmor配置⽂件 , 集群中所有node节点都要配置!
ssh 到 node 节点加载apparmor配置⽂件 , 集群中所有node节点都要配置!
配置 Pod 使⽤该策略: (退回主节点)
回主节点运⾏kubectl,考试时不要忘记切换 context
回主节点运⾏kubectl,考试时不要忘记切换 context
回主节点运⾏kubectl,考试时不要忘记切换 context

:::info
提示:
如果忘记加载的命令可以输入appa 摁tab键,查询相关命令
:::

root@hk8s-master01:/etc/apparmor.d# vim nginx_apparmor
#include <tunables/global>
profile nginx-profile-1 flags=(attach_disconnected) {
  #include <abstractions/base>
  file,
  # Deny all file writes.
  deny /** w,
}

加载文件,需要ssh到所有node节点上加载,不能在master上加载。加载完成后,在exit 退回到master节点,执行后面操作

##查看apparmor的状态
root@hk8s-master01:/home/candidate/KSSH00401# apparmor_status 
apparmor module is loaded.
34 profiles are loaded.
34 profiles are in enforce mode.
   /snap/snapd/20290/usr/lib/snapd/snap-confine
   /snap/snapd/20290/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /snap/snapd/20671/usr/lib/snapd/snap-confine
   /snap/snapd/20671/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /snap/snapd/21184/usr/lib/snapd/snap-confine
   /snap/snapd/21184/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /usr/bin/man
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/NetworkManager/nm-dhcp-helper
   /usr/lib/connman/scripts/dhclient-script
   /usr/lib/snapd/snap-confine
   /usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /usr/sbin/chronyd
   /usr/sbin/tcpdump
   /{,usr/}sbin/dhclient
   cri-containerd.apparmor.d
   lsb_release
   man_filter
   man_groff
   nvidia_modprobe
   nvidia_modprobe//kmod
   snap-update-ns.lxd
   snap.lxd.activate
   snap.lxd.benchmark
   snap.lxd.buginfo
   snap.lxd.check-kernel
   snap.lxd.daemon
   snap.lxd.hook.configure
   snap.lxd.hook.install
   snap.lxd.hook.remove
   snap.lxd.lxc
   snap.lxd.lxc-to-lxd
   snap.lxd.lxd
   snap.lxd.migrate
0 profiles are in complain mode.
6 processes have profiles defined.
6 processes are in enforce mode.
   /usr/sbin/chronyd (922) 
   /usr/sbin/chronyd (926) 
   /usr/local/bin/etcd (1478) cri-containerd.apparmor.d
   /usr/local/bin/kube-apiserver (51922) cri-containerd.apparmor.d
   /usr/local/bin/kube-controller-manager (1071408) cri-containerd.apparmor.d
   /usr/local/bin/kube-scheduler (1071481) cri-containerd.apparmor.d
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

##加载文件
root@hk8s-master01:/home/candidate/KSSH00401# apparmor_parser -q /etc/apparmor.d/nginx_apparmor 

##加载完成后你会在输出的结果里面看到nginx_apparmor配置文件,不加载是没有这个文件的
root@hk8s-master01:/home/candidate/KSSH00401# apparmor_status 
apparmor module is loaded.
35 profiles are loaded.
35 profiles are in enforce mode.
   /snap/snapd/20290/usr/lib/snapd/snap-confine
   /snap/snapd/20290/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /snap/snapd/20671/usr/lib/snapd/snap-confine
   /snap/snapd/20671/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /snap/snapd/21184/usr/lib/snapd/snap-confine
   /snap/snapd/21184/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /usr/bin/man
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/NetworkManager/nm-dhcp-helper
   /usr/lib/connman/scripts/dhclient-script
   /usr/lib/snapd/snap-confine
   /usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /usr/sbin/chronyd
   /usr/sbin/tcpdump
   /{,usr/}sbin/dhclient
   cri-containerd.apparmor.d
   lsb_release
   man_filter
   man_groff
   nginx-profile
   nvidia_modprobe
   nvidia_modprobe//kmod
   snap-update-ns.lxd
   snap.lxd.activate
   snap.lxd.benchmark
   snap.lxd.buginfo
   snap.lxd.check-kernel
   snap.lxd.daemon
   snap.lxd.hook.configure
   snap.lxd.hook.install
   snap.lxd.hook.remove
   snap.lxd.lxc
   snap.lxd.lxc-to-lxd
   snap.lxd.lxd
   snap.lxd.migrate
0 profiles are in complain mode.
6 processes have profiles defined.
6 processes are in enforce mode.
   /usr/sbin/chronyd (922) 
   /usr/sbin/chronyd (926) 
   /usr/local/bin/etcd (1478) cri-containerd.apparmor.d
   /usr/local/bin/kube-apiserver (51922) cri-containerd.apparmor.d
   /usr/local/bin/kube-controller-manager (1071408) cri-containerd.apparmor.d
   /usr/local/bin/kube-scheduler (1071481) cri-containerd.apparmor.d
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

配置yaml文件

root@hk8s-master01:/home/candidate/KSSH00401# vim nginx-deploy.yaml 
  1 apiVersion: v1
  2 kind: Pod
  3 metadata:
  4   name: nginx-deploy
  5   annotations:
  6     container.apparmor.security.beta.kubernetes.io/nginx-deploy: localhost/nginx-profile-1
  7 spec:
  8   containers:
  9   - name: nginx-deploy
 10     image: busybox
 11     command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]

检查正确的输出结果

root@hk8s-master01:/home/candidate/KSSH00401# kubectl exec nginx-deploy -- cat /proc/1/attr/current
nginx-profile-1 (enforce)

  • 18
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值