cks-1.32考题

1、修复 kubelet 和 etcd 不安全问题

你必须连接到正确的主机,不这样做可能会导致零分。

[candidate@base] $ ssh cks001091

Context

针对 kubeadm 创建的 cluster 运行 CIS 基准测试工具时,发现了多个必须立即解决的问题。

Task

通过配置修复所有问题并重新启动受影响的组件以确保新的设置生效。

修复针对 kubelet 发现的所有以下违规行为:

1.1.1 确保将 anonymous-auth 参数设置为 false FAIL

1.1.2 确保 --authorization-mode 参数未设置为 AlwaysAllow FAIL

注意:尽可能使用 Webhook 身份验证/授权。

修复针对 etcd 发现的所有以下违规行为:

2.1.1 确保 --client-cert-auth 参数设置为 true FAIL

2、TLS Secret

你必须连接到正确的主机。不这样做可能导致零分

[candidate@base] $ ssh cks000040

Context

您必须使用存储在 TLS Secret 中的 SSL 文件,来保护 Web 服务器的安全访问。

Task

在 clever-cactus namespace 中为名为 clever-cactus 的现有 Deployment 创建名为 clever-cactus 的 TLS Secret 。

使用以下 SSL 文件:

证书 ~/ca-cert/web.k8s.local.crt

密钥 ~/ca-cert/web.k8s.local.key

Deployment 已配置为使用 TLS Secret。

请勿修改现有的 Deployment。

3、Dockerfile 安全最佳实践

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks001094

Task

分析和编辑给定的 Dockerfile /cks/docker/Dockerfile

并修复在文件中拥有的突出的安全/最佳实践问题的一个指令

分析和编辑给定的清单文件 /cks/docker/deployment.yaml ,

并修复在文件中拥有突出的安全/最佳实践问题的一个字段

注意:请勿添加或删除配置设置;只需修改现有的配置设置让以上两个配置设置都不再有安全/最佳实践问题。

注意:如果您需要非特权用户来执行任何项目,请使用用户 ID 65535 的用户 nobody 。

4、访问/dev/mem 的 Pod

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks000026

Context

Pod 行为不当,对系统构成安全威胁。

Task

属于应用程序 ollama 的一个 Pod 出现异常。它正从敏感文件/dev/mem 直接访问系统的内存读取数据。

首先,识别访问/dev/mem 行为不当的 Pod。

接下来,将行为不当 Pod 的 Deployment 缩放为零副本。

注意:

除缩小副本外,不要修改 Deployment 其他内容。

不要修改任何其他 Deployment。

不要删除任何 Deployment。

5、安全上下文 Container Security Context

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks001097

Context

您必须更新一个现有的 Pod,以确保其容器的不变性。

Task

修改 sec-ns namespace 里的名为 secdep 的 Deployment,以便其容器:

​ 使用用户 ID 30000 运行

​ 使用只读根文件系统

​ 禁止特权提升

您可以在 ~/sec-ns_deployment.yaml 找到 Deployment 的清单文件。

6、日志审计 log audit

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks001098

Context

您必须为 kubeadm 配置的集群实施审计。

Task

首先,重新配置集群的 PAI 服务器,以便:

位于 /etc/kubernetes/logpolicy/sample-policy.yaml 的基本审计策略被使用

​ 日志存储在 /var/log/kubernetes/audit-logs.txt

​ 最多保留 2 个日志,保留时间为 10 天

注意:基本策略仅指定不记录的内容。

然后,编辑并扩展基本策略以记录:

​ RequestResponse 级别的 persistentvolumes 事件

​ front-apps namespace 中的 configmaps 事件的请求正文

​ Metadata 级别的所有 namespace 中的 ConfigMap 和 Secret 的更改

​ Metadata 级别记录所有其他请求

注意:确保 API 服务器使用扩展后的策略。

7、网络策略 Deny 和 Allow

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks000031

Context

您必须实施 NetworkPolicy 来控制现有的 Deployments 跨 namespace 的流量。

Taks

首先,为了阻止所有入口流量,在 prod namespace 中创建一个名为 deny-policy 的 NetworkPolicy。

PS: prod namespace 被标记为 env: prod

然后,为了仅允许来自 prod namespace 中 Pod 的入口流量,在 data namespace 中创建一个名为 allow-from-prod 的 NetworkPolicy。

使用 prod namespace 的标签来允许流量。

PS: data namespace 被标记为 env: data

注意:请勿修改或删除任何 namespace 或 Pod。仅创建必须得 NetworkPolicy。

8、使用 ingress 公开 https 服务

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks000032

Context

您必须使用 HTTPS 路由来公开 web 应用程序。

Task

在 prod02 namespace 创建一个名为 web 的 Ingress 资源,并按照如下方式配置它:

​ 将主机 web.k8sng.local 和所有路径的流量路由到现有的 web Service。

​ 使用现有的 web-cert Secret 来启用 TLS 终止。

​ 将 HTTP 请求重定向到 HTTPS

PS: 你可以使用以下命令测试 Ingress 配置:

[candidate@cks000032] $ curl -Lk https://web.k8sng.local

9、关闭 API 凭据自动挂载

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks000033

Context

安全审计发现某个 Deployment 有不合规的服务账号令牌,这可能导致安全漏洞。

Task

首先,修改 monitoring namespace 中现有的 stats-monitor-sa ServiceAccount,以关闭 API 凭据自动挂载。

然后,修改 monitoring namespace 中现有的 stats-monitor Deployment,

以注入装载在/var/run/secrets/kubernetes.io/serviceaccount/token 的 ServiceAccount 令牌。

使用名为 token 的投射卷,来注入 ServiceAccount 令牌,并确保它以只读方式挂载。

PS: 部署的清单配置文件可以在以下位置找到:

~/stats-monitor/deployment.yaml

10、升级集群节点

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks000034

Context

kubeadm 配置的集群最近进行了升级,由于工作负载兼容性问题,将一个节点保留在稍旧的版本上。

Task

升级集群节点 node02 以匹配 control plane 节点的版本。

使用如下所示命令连接到此计算节点:

[candidate@cks000034] ssh node02

PS: 不要修改集群中的任何正在运行的工作负责。

11、bom 工具生成 SPDX 文档

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks000035

Task

在 alpine namespace 中的 alpine Deployment,有三个运行不同版本的 alpine 镜像的容器。

首先,找出 alpine 镜像的哪个版本包含版本为 3.1.4-r5 的 libcrypto3 软件包。

其次,使用预安装的 bom 工具,在 ~/alpine.spdx 为找出的镜像版本创建一个 SPDX 文档。

最后,更新 alpine Deployment 并删除 使用找出的镜像版本的容器。

Deployment 的清单文件可以在~/alipine-deployment.yaml 中找到。

PS: 请勿修改 Deployment 的任何其他容器。

12、限制性 Pod 安全标准

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks000036

Context

为了符合要求,所有用户命名空间都强制执行受限的 Pod 安全标准。

Task

在 confidential namespace 中包含一个不符合限制性的 Pod 安全标准的 Deployment。因此,其 Pod 无法被调度。

修改这个 Deployment 以符合标准,并验证 Pod 可以正常运行。PS: 部署的清单文件可以在 ~/nginx-unprivileged.yaml 找到。

13、Docker 守护进程

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks000037

Task

执行以下任务,以保护集群节点 cks000037

从 docker 组中删除用户 developer

PS: 不要从任何其他组中删除用户

重新配置并重启 Docker 守护程序,以确保位于/var/run/docker.sock 的套接字文件由 root 组拥有。

重新配置并重启 Docker 守护进程,以确保它不监听任何 TCP 端口。

PS: 完成工作后,确保 Kubernetes 集群保持健康状态。

14、Cilium 网络策略

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks000039

Context

这道题,您参考网址:

CiliumNetworkPolicy

Task

使用 Cilium 执行以下任务,以保护现有应用程序的内部和外部网络流量。

PS: 您可以使用浏览器访问 Cilium 的文档。

首先,在 nodebb namespace 里创建一个名为 nodebb 的 L4 CiliumNetworkPolicy,并按照如下方式配置它:

​ 允许 ingress-nginx namespace 中运行的所有 Pod 访问 nodebb Deployment 的 Pod

​ 要求相互身份验证

然后,将前一步创建的网络策略扩展如下:

​ 允许主机访问 nodebb Deployment 的 Pod

​ 不要使用相互身份验证

15、容器镜像策略 ImagePolicyWebhook

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks001094

Context

您必须将容器镜像扫描完全集成到 kubeadm 配置的集群中。

Task

假设位于 /etc/kubernetes/epconfig 中的不完整的配置,

以及具有 HTTPS 端点 https://image-bouncer-webhook.default.svc:1323/image_policy 的功能性容器镜像扫描器,

请执行以下任务,来实现验证(Validating)准入控制器。

首先,重新配置 API 服务器,以启用所有准入插件,以支持提供的 AdmissionConfiguration

其次,重新配置 ImagePolicyWebhook 以在后端失效时拒绝镜像。

最后,为了测试配置,部署在 ~/web1.yaml 中定义的测试资源,该资源使用应被拒绝的镜像。

您可以根据需要删除和重新创建这个资源。

16、启用 API server 身份验证

你必须连接到正确的主机。不这样做可能导致零分。

[candidate@base] $ ssh cks001092

Context

出于测试目的,由 kubeadm 创建的 cluster 的 Kubernetes API 服务器临时配置为,允许未经身份验证和未经授权的访问。

Task

首先,按照以下方式配置集群的 API 服务器,以确保其安全:

​ 禁止匿名身份验证

​ 使用授权模式 Node,RBAC

​ 使用准入控制器 NodeRestriction

注意:所有 kubectl 配置环境/文件也被配置使用未经身份验证和未经授权的访问。

你不必更改它,但请注意,一旦完成集群的安全加固, kubectl 的配置将无法工作。

您可以使用集群位于 /etc/kubernetes/admin.conf 的原始 kubectl 配置文件来访问受保护的集群。

然后,请删除 ClusterRoleBinding system:anonymous 来进行清理。

内容概要:文章基于4A架构(业务架构、应用架构、数据架构、技术架构),对SAP的成本中心利润中心进行了详细对比分析。业务架构上,成本中心是成本控制的责任单元,负责成本归集与控制,而利润中心是利润创造的独立实体,负责收入、成本利润的核算。应用架构方面,两者都依托于SAP的CO模块,但功能有所区分,如成本中心侧重于成本要素归集预算管理,利润中心则关注内部交易核算获利能力分析。数据架构中,成本中心与利润中心存在多对一的关系,交易数据通过成本归集、分摊利润计算流程联动。技术架构依赖SAP S/4HANA的内存计算ABAP技术,支持实时核算与跨系统集成。总结来看,成本中心利润中心在4A架构下相互关联,共同为企业提供精细化管理决策支持。 适合人群:从事企业财务管理、成本控制或利润核算的专业人员,以及对SAP系统有一定了解的企业信息化管理人员。 使用场景及目标:①帮助企业理解成本中心利润中心在4A架构下的运作机制;②指导企业在实施SAP系统时合理配置成本中心利润中心,优化业务流程;③提升企业对成本利润的精细化管理水平,支持业务决策。 其他说明:文章仅阐述了理论概念,还提供了具体的应用场景技术实现方式,有助于读者全面理解并应用于实际工作中。
### CKS 认证中 Falco 相关真题及答案解析 在 Kubernetes 安全领域,Falco 是一款广泛使用的开源工具,用于检测告警潜在的安全威胁。以下是关于 Falco 的几道典型 CKS 考试题目及其解答。 #### 题目一:安装并配置 Falco 进行安全监控 问题描述如下: 给定一个运行中的 Kubernetes 集群,在该集群上部署 Falco 并设置其监听特定类型的事件(如特权容器启动),并将日志发送至远程服务器。 解决方案概述: 为了实现上述需求,可以按照以下方式操作: 1. 使用 Helm Chart 或 YAML 文件来部署 Falco; 2. 修改 `falco.yaml` 中的日志输出位置以及目标地址; 3. 编写自定义规则文件以匹配所需条件; 具体命令如下所示[^1]: ```bash helm repo add falcosecurity https://falcosecurity.github.io/charts helm install falco falcosecurity/falco \ --set auditLogSource.enabled=true \ --set output.file.path=/var/log/falco.log \ --set outputs="stdout,syslog:server=udp://remote.server.com:514" ``` 对于编写自定义规则,则可以通过编辑 `/etc/falco/rules.d/custom_rules.yaml` 来完成。例如添加一条针对特权模式容器创建的通知规则[^2]: ```yaml - list: container_privileged items: - 'spawned a privileged container' - macro: is_container_privileged_event condition: evt.type = container and container.privileged - rule: Privileged Container Created desc: > Detects when a new privileged container has been created. condition: is_container_privileged_event output: "Privileged container detected (command=%proc.cmdline user=%user.name)" priority: WARNING ``` #### 题目二:理解 Falco 日志格式与字段含义 此部分考察考生能否正确解读由 Falco 产生的日志条目,并从中提取有用信息的能力。通常情况下,每条记录都包含了丰富的上下文数据,比如进程名称、参数列表、时间戳等。 样例日志片段展示: ``` {"output":"17:09:06.876677000: Warning File below /etc modified (user=root command=\"touch /tmp/test\" file=\"/etc/hosts\")","priority":2,"rule":"File below etc changed"} ``` 这里的关键在于识别同属性的意义,像 `output`, `priority`, `rule` 字段分别代表了什么内容?如何利用这些元数据来进行进一步分析? 解释说明: - **Output**: 描述触发报警的具体行为细节。 - **Priority**: 表示严重程度级别,分为 DEBUG/INFO/WARNING/ERROR 四级。 - **Rule**: 对应于哪条预设或用户自定义的规则被触发展开动作。 通过掌握以上知识点可以帮助更好地理解处理来自 Falco 的各类通知消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值