[CKS]启用apiserver身份验证

目前的所有题目为2024年10月后更新的最新题库,考试的k8s版本为1.31.1

​ 专栏其他文章:

BackGround

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

Task

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

  • 禁止匿名身份验证
  • 使用授权模式 Node,RBAC
  • 使用准入控制器 NodeRestriction

注意:所有kubectl 配置环境/文件也被配置使用未经身份验证和未经授权的访问。
你不必更改它,但请注意,一旦完成集群的安全加固, kubectl 的配置将无法工作。
您可以使用集群位于 /etc/kubernetes/admin.conf 的原始kubectl配置文件来访问受保护的集群。

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

Practice

Step 1 : 配置集群的API服务器

vi /etc/kubernetes/manifests/kube-apiserver.yaml

如图,将--authorization-mode设置为Node,RBAC--enable-admission-plugins设置为NodeRestriction --anonymous-auth设置为false
在这里插入图片描述
然后重启kubelet

systemctl daemon-reload
systemctl restart kubelet

Step 2: 删除clusterrolebinding

kubectl --kubeconfig=/etc/kubernetes/admin.conf delete clusterrolebinding system:anonymous
### 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 的各类通知消息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葡萄皮Apple

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值