kubernetes CKS 3.2 AppArmor限制容器对资源访问

K8s安全工程师日常:用Sysdig、Trivy和AppArmor给你的集群做一次“全身体检” 本文详细介绍了如何利用Sysdig、Trivy和AppArmor为Kubernetes集群进行全面的安全体检,特别适合CKS认证工程师参考。通过构建预防、检测和防护三层安全框架,结合实战案例和代码示例,展示了从镜像漏洞扫描到运行时监控的全流程解决方案,帮助提升集群安全防护能力。 阅读详情

AppArmor(Application Armor) 是一个 Linux 内核安全模块,可用于限制主机操作系统上运行的进程的功能。每个
进程都可以拥有自己的安全配置文件。安全配置文件用来允许或禁止特定功能,例如网络访问、文件读/写/执行权限等。
Linux发行版内置:Ubuntu、Debian

3.2.1 Apparmor两种工作模式

• Enforcement(强制模式) :在这种模式下,配置文件里列出的限制条件都会得到执行,并且对于违反这些限制条
件的程序会进行日志记录。
• Complain(投诉模式):在这种模式下,配置文件里的限制条件不会得到执行,Apparmor只是对程序的行为进行
记录。一般用于调试。

3.2.2 常用命令

• apparmor_status:查看AppArmor配置文件的当前状态的

# apparmor_status 
apparmor module is loaded.
14 profiles are loaded.
14 profiles are in enforce mode.
   /usr/bin/man
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/NetworkManager/nm-dhcp-helper
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/named
   /usr/sbin/ntpd
   /usr/sbin/tcpdump
   /{,usr/}sbin/dhclient
   docker-default
   lsb_release
   man_filter
   man_groff
   nvidia_modprobe
   nvidia_modprobe//kmod
0 profiles are in complain mode.
32 processes have profiles defined.
32 processes are in enforce mode.
   /usr/sbin/named (736) 
   /usr/sbin/ntpd (8885) 
   /usr/sbin/nginx (32045) docker-default
   /usr/sbin/nginx (32111) docker-default
   /usr/sbin/nginx (32112) docker-default
   /pause (40156) docker-default
   /pause (40257) docker-default
   /pause (40280) docker-default
   /pause (40287) docker-default
   /usr/local/bin/kube-apiserver (40350) docker-default
   /usr/local/bin/etcd (40526) docker-default
   /usr/local/bin/kube-controller-manager (40528) docker-default
   /usr/local/bin/kube-scheduler (40530) docker-default
   /pause (41166) docker-default
   /pause (42818) docker-default
   /pause (57092) docker-default
   /pause (57160) docker-default
   /pause (57167) docker-default
   /coredns (57511) docker-default
   /coredns (57524) docker-default
   /usr/bin/kube-controllers (57965) docker-default
   /pause (61082) docker-default
   /usr/sbin/nginx (62149) docker-default
   /usr/sbin/nginx (62186) docker-default
   /usr/sbin/nginx (62187) docker-default
   /pause (84236) docker-default
   /usr/local/apache2/bin/httpd (84661) docker-default
   /usr/local/apache2/bin/httpd (84692) docker-default
   /usr/local/apache2/bin/httpd (84693) docker-default
   /usr/local/apache2/bin/httpd (84694) docker-default
   /usr/bin/sleep (773935) docker-default
   /pause (3760464) docker-default
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

• apparmor_parser:将AppArmor配置文件加载到内核中
• apparmor_parser # 加载到内核中
• apparmor_parser -r # 重新加载配置
• apparmor_parser -R # 删除配置
• aa-complain:将AppArmor配置文件设置为投诉模式,需要安装apparmor-utils软件包
• aa-enforce:将AppArmor配置文件设置为强制模式,需要安装apparmor-utils软件包
Version:0.9 StartHTML:0000000105 EndHTML:0000001235 StartFragment:0000000141 EndFragment:0000001195

3.2.3 K8s使用AppArmor的先决条件

• K8s版本v1.4+,检查是否支持:kubectl describe node |grep AppArmor

root@VM-12-7-ubuntu:~# kubectl describe node |grep AppArmor 
  Ready                True    Mon, 04 Jul 2022 15:33:22 +0800   Fri, 24 Jun 2022 16:20:04 +0800   KubeletReady                 kubelet is posting ready status. AppArmor enabled

• Linux内核已启用AppArmor,查看 cat /sys/module/apparmor/parameters/enabled

root@VM-12-7-ubuntu:~# cat /sys/module/apparmor/parameters/enabled 
Y

• 容器运行时需要支持AppArmor,目前Docker已支持

3.2.4 AppArmor限制容器对资源访问

AppArmor 目前处于测试阶段,因此在注解中指定AppArmor策略配置文件。

apiVersion: v1
kind: Pod
metadata:
  name: hello-apparmor
  annotations:
    container.apparmor.security.beta.kubernetes.io/<container_name>: localhost/<profile_ref>

示例:
• Pod中容器名称
• Pod所在宿主机上策略名,默认目录/etc/apparmor.d

3.2.5案例:容器文件系统访问限制

3.2.5.1 将自定义策略配置文件保存到/etc/apparmor.d/
cat /etc/apparmor.d/deny-k8s-write
#include <tunables/global>
profile k8s-deny-write flags=(attach_disconnected) {
  #include <abstractions/base>
  file, # 允许所有文件读写
#  deny /bin/** w, # 拒绝所有文件写
  deny /data/www/** w,
}

文件解析:
•第一行:导入依赖,遵循C语言约定
•第二行:指定策略名
•第三行:{} 策略块
![image.png](https://img-blog.csdnimg.cn/img_convert/c05b5b3579c71e32b6666e30dcfaea80.png#clientId=u004b64ad-ce30-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=741&id=u0ea88ad6&margin=[object Object]&name=image.png&originHeight=926&originWidth=946&originalType=binary&ratio=1&rotation=0&showTitle=false&size=218213&status=done&style=none&taskId=u074f9aa7-50b6-4682-ad70-3f7f0e75d8f&title=&width=756.8)

3.2.5.2 加载配置文件到内核:apparmor_parser
apparmor_parser deny-k8s-write

查看:

apparmor_status 
3.2.5.3 Pod注解指定策略配置名
apiVersion: v1
kind: Pod
metadata:
  name: hello-apparmor
  annotations:
    # 告知 Kubernetes 去应用 AppArmor 配置 "k8s-apparmor-example-deny-write"。
    # 请注意,如果节点上运行的 Kubernetes 不是 1.4 或更高版本,此注解将被忽略。
    container.apparmor.security.beta.kubernetes.io/hello: localhost/k8s-deny-write
spec:
  containers:
  - name: hello
    image: busybox:1.28
    command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]

进入容器验证,发觉无法再/data/www创建文件

root@k8s-master:~# kubectl exec -it hello-apparmor -- sh
/ # pwd
/
/ # touch wangjinxiong.txt
/ # cd /data/www
sh: cd: can't cd to /data/www: No such file or directory
/ # mkdir -p /data/www
/ # cd /data/www
/data/www # touch 1.txt
touch: 1.txt: Permission denied

3.2.6 工作流程

![image.png](https://img-blog.csdnimg.cn/img_convert/d2709900dcff542683fb2df6a4f0dec1.png#clientId=u004b64ad-ce30-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=593&id=ud6caa391&margin=[object Object]&name=image.png&originHeight=741&originWidth=1391&originalType=binary&ratio=1&rotation=0&showTitle=false&size=162190&status=done&style=none&taskId=u2f9f5a46-31bb-42ad-bedb-c750d24fc82&title=&width=1112.8)

3.2.7 CKS考试题目

在集群的工作节点上,执行下面准备好的配置文件/etc/apparmor.d/nginx_apparmor 编辑准备好的清单文件/home/candidate/KSSH00401/nginx-deploy.yaml应用于AppArmor文件。 最后,在Pod中应用apparmor策略文件。

# 1.先进入工作节点操作 
ssh kssh00401-worker1 
# 2.确认策略名称
vi /etc/apparmor.d/nginx_apparmor
# nginx-profile-3
或者
apparmor_status | grep nginx
apparmor_parser /etc/apparmor.d/nginx_apparmor # 加载策略
# 3.在管理节点操作
vi /home/candidate/KSSH00401/nginx-deploy.yaml
…
annotations:
container.apparmor.security.beta.kubernetes.io/<容器名称>: localhost/nginx-profile-3
# 4. 执行yaml文件
kubectl apply -f /home/candidate/KSSH00401/nginx-deploy.yaml

参考官方地址:https://kubernetes.io/zh-cn/docs/tutorials/security/apparmor/

CKS学习笔记--AppArmor 介绍 AppArmor(Application Armor)是Linux内核的一个安全模块,AppArmor允许系统管理员将每个程序与一个安全配置文件关联,从而限制程序的功能。 简单的说,AppArmor是与SELinux类似的一个访问控制系统,通过它你可以指定程序可以读、写或运行哪些文件,是否可以打开网络端口等。作为对传统Unix的自主访问控制模块的补充,AppArmor提供了强制访问控制机制,它已经被整合到2.6版本的Linux内核中。 目前Ubuntu已自带了Apparmor。 AppArmor配置文 阅读详情

相关推荐

Kubernetes系统强化:CKS考试核心实践指南

作为Certified Kubernetes Security Specialist (CKS)认证的一个重要组成部分,系统强化是每个Kubernetes管理员都应该精通的技能。本文将详细介绍几个核心的系统强化策略,帮助您快速掌握CKS考试的相关内容,同时提高Kubernetes环境的整体安全性。系统强化是Kubernetes安全的重要组成部分,也是CKS考试的核心内容之一。通过最小化主机操作系统、IAM角色和网络访问,以及适当使用内核强化工具,您可以显著提高Kubernetes环境的安全性。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 369

【Linux】apparmor小记

这是一个linux的内核安全模块,是一个MAC(强制控制存取)系统,和Selinux类似的一种访问控制系统,每个进程都可以相应的有自己的安全配置文件,这文件里面用来指定允许或者禁止某种功能,例如网络端口、访问、文件相关的读写以及执行等,比如linux发行版unbuntu、debian等都是内置的。能限制程序在一组有限的资源,那就能限制容器对资源的访问。需要安装软件包。

zclinux的博客 3409

修勾逃生巨人危机v10.9.9修改版:免广告无限内购与GM工具详解

游戏修改技术是通过对原版游戏程序进行代码层面的调整,实现特定功能的增强或限制解除。其核心原理涉及内存修改、资源替换和API拦截等技术手段,能够有效提升用户体验和测试效率。在移动游戏领域,免广告和无限内购是常见的技术实现方向,通过屏蔽广告SDK调用和修改内购验证逻辑,为用户提供更流畅的游戏体验。这类技术特别适合游戏开发者进行功能测试,以及玩家希望完整体验游戏内容而不受商业模式限制的场景。以修勾逃生巨人危机v10.9.9版本为例,该修改版集成了GM工具开启功能,通过特定操作路径即可激活调试面板,实现了广告去除和

weixin_30855099的博客 2612

【K8S认证】2023年CKS考题-AppArmor访问控制(解析+答案)

【K8S认证】2023年CKS考题-AppArmor访问控制(解析+答案)

u014481728的博客 2039

ros2 humble中使用realsense t265与d435

前提,安装realsense SDK 2.51.1版本并且能成功启动realsense-viewer V2.51.1想要在ros2中使用realsense t265,必须配合realsense SDK v2.51.1使用realsense-ros 4.51.1版本,因为新版本realsense ros2不再对t265支持下面记录源码编译安装 realsense-ros 4.51.1版本。

m0_72797388的博客 956

分位数映射数据后处理-Quantile Mapping后处理 (R语言)

统计后处理器基本上是统计模型,将观察到的关注变量与从气象或水文模型的直接模型输出(DMO)导出的适当预测变量相关联。统计后处理的重要性早已在气象预报中得到认可。早期的工作包括完善的预测(perfect prognosis),模型输出统计(MOS)和模拟方法(analog method)等模型。 近年来,已经提出了许多其他后处理方法,包括秩直方图校准(rank histogram calibrati...

水滴石穿,绳锯木断 1万+

Docker 错误:来自守护进程的响应

拉源码出现了一个这样的错误,我尝试卸载 Docker 并重新安装但它不起作用,我也卸载并重新安装 apparmor 但没有任何效果。看了文档后来发现解决方法是这样。重新配置 AppArmor。

m0_53248090的博客 902

DEMATEL-ISM模型的Python实现——方法介绍以及代码复现

本文参考文献与网络资料,对DEMATEL-ISM方法做了介绍何步骤描述,并给出Python代码进行了计算和绘图。

cros1的博客 2万+

PVE8 虚拟机下,特权容器LXC无法运行Docker的问题的解决

PVE8 虚拟机下特权容器LXC运行Docker报错无法运行:Error response from daemon: AppArmor enabled on system but the docker-default profile could not be loaded: Permission denied; attempted to load a profile while confined? error: exit status 243.

探索平行世界 2109

网络安全实战:从Wireshark到BurpSuite的抓包技巧解析

本文深入解析了Wireshark和BurpSuite在网络安全抓包中的实战技巧,从基础对比到高级过滤、核心模块应用及安全测试避坑指南。通过详细的操作步骤和案例分析,帮助读者掌握数据包抓取与分析的核心技能,提升网络安全防护能力。

weixin_29207533的博客 574

滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法

滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法

jane0819的博客 523

解决ubuntu环境下报apparmor=“DENIED“ operation=“exec“之类的错误

apparmor的权限规则一般默认放在/etc/apparmor.d/目录下,比如tcpdump的规则存放在该目录下的usr.sbin.tcpdump下,其内容有固定的格式,它相当于白名单,规定了该应用对于目录的访问权限。应用要想访问某个目录,则必须在这个文件里加上权限,否则就会报错,比如使用下面的命令: 重启某个服务,这里以docker为例 systemctl restart snap.docker.dockerd 查看日志 journalctl -xe 如果权限不足,会查到报错信息如下: Mar 04

暮暮苒也的博客 2253

跟踪雷达点迹处理

1,点迹定义: 假设研究对象为位置x和速度v,预测值是根据这一时刻的x值、v值来预测下一时刻的x、v;测量值是根据传感器也就是雷达得到的,因为各种误差的存在,这两个值都不准确,所以把他们加权融合,得到一个新的量—状态值。 点迹就是所谓的测量值,由雷达对同一个目标探测到的一系列点(假设目标静止,但由于误差的存在,会扫描出不止一个点),航迹对应状态值,是点迹和预测轨迹的加权融合。 2,雷达信号和点迹处理关系: 3,点迹航迹处理流程 4,仿真 clear all; RealData=G

wangjie36的博客 1万+

[CKS] K8S AppArmor Set Up

最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于AppArmor Pod操作权限的问题。

agjllxchjy的博客 1114

【大语言模型 85】IA3与其他PEFT方法对比

在大语言模型时代,参数高效微调(PEFT)技术成为了降低微调成本的关键。本文深入解析IA3(Infused Adapter by Inhibiting and Amplifying Inner Activations)方法,并与LoRA、AdaLoRA、Prefix Tuning等主流PEFT技术进行全面对比,通过理论分析、代码实现和实验验证,帮助读者理解不同PEFT方法的优劣势和适用场景,为实际项目中的技术选型提供科学依据。

熵数实验室 754

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

CKS认证 | Day3 K8s容器运行环境安全加固

AppArmor(Application Armor) 是一个 Linux 内核安全模块,可用于限制主机操作系统上运行的进程的功能。每个进程都可以拥有自己的安全配置文件。安全配置文件用来允许或禁止特定功能,例如:网络访问、文件读/写/执行权限等。

小安的运维专栏 1192

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【CKS】 考试之 apparmor

切换 Context, ssh 到 node 节点进行操作。创建 Deployment。

sinat_33076015的博客 490

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

k8s学习-CKS真题-利用AppArmor进行应用行为限制

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

关注网络安全、云原生安全 1066

CKS1.23 考试题整理(16)-AppArmor

题目 在cluster的工作节点上,实施位于/etc/apparmor.d/nginx_apparmor的现有APPArmor配置文件。 编辑位于/home/candidate/KSSH00401/nginx-deploy.yaml的现有清单文件以应用AppArmor配置文件。 最后,应用清单文件并创建其中指定的Pod。 参考 使用 AppArmor 限制容器对资源的访问 | Kubernetes 步骤 1 检查下配置文件 vi /etc/apparmor.d/nginx_ap...

april_4的博客 1523

CKS-系统强化-POLP(apparmor)

POLP

weixin_45081220的博客 1006

2024年网络安全最全k8s学习-CKS真题-利用AppArmor进行应用行为限制_container

创建文件 附其他命令: 启用AppArmor: 重新加载AppArmor: 解题 查看配置文件,加载配置文件,查看加载的配置中是否有对应profile 命令 截图 修改yaml文件 命令 在metadata下面添加内容 第一个/后面是容器名称,第二个/后面是cat配置文件时的profile 截图 可以看到创建后确实没有写操作权限 K8S-使用 AppArmor 限制容器对资源的访问 gitlab-apparmor文档零基础入门对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线

2401_84254364的博客 131

CKS 核心知识点概述

笔者曾经在本专栏分享了大量CKA&CKS考点相关的内容,由于某些原因被jubao下架,但考虑到很多网友和群友想进一步了解CKS相关的核心知识,因此在这里把笔者之前的记录整理了一下,希望对大家有一定的帮助。如果想了解跟多相关知识,可以加入K8S&云原生交流Q群(284134230)和大家一起学习进步…......

脚步不能达到的地方,眼光可以达到;眼光不能达到的地方,精神可以飞到 2171

2024年最新k8s学习-CKS真题-利用AppArmor进行应用行为限制_container,2024年最新PDF超过6000页,

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。需要完整版PDF学习资源私我。

2401_84266286的博客 493

终极CKS安全认证练习指南:CK-X Simulator实战安全场景模拟教程 [特殊字符]️

想要在CKS(Certified Kubernetes Security Specialist)认证考试中脱颖而出吗?CK-X Simulator为您提供了一个完整的Kubernetes安全实践平台!这个强大的模拟器专门为CKS安全认证练习设计,通过真实的Kubernetes集群环境和计时考试模式,帮助您掌握Kubernetes安全最佳实践。本文将带您深入了解如何使用CK-X Simulator进

gitblog_00143的博客 802

kubernets CKS内容及题库

kubernets CKS认证及考题教程,包含知识点学习及考题分析,帮助广大网友通过CKS考试

cloud_engineer的博客 6602

CKS 经验分享

12月份通过了CKS考试,分享一下考试经验,有想考这个证的同学可以参考一下。容我贴个图,炫耀一番相较于CKA,CKS考试感觉明显时间有点不够用了。做完题以后大约也就剩下5分钟左右的时间,没有CKA考试的时候那么从容。所以平时练习的时候,一定要提高自己的一次正确率。后期根本没有给你检查修改的时间。

qd89zzx的博客 403
上一篇: K8S相同后端存储在2个K8S集群PVC数据直接拷贝
下一篇: kubernets CKS 3.3 Seccomp 限制容器进程系统调用
cloud_engineer
博客等级 码龄5年 9390粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值