CKS 题库 5、日志审计 log audit

file

Task

在cluster中启用审计日志。为此,请启用日志后端,并确保:

  • 日志存储在 /var/log/kubernetes/audit-logs.txt
  • 日志文件能保留 10
  • 最多保留 2 个旧审计日志文件

/etc/kubernetes/logpolicy/sample-policy.yaml 提供了基本策略。它仅指定不记录的内容。

注意:基本策略位于 cluster 的 master 节点上。


编辑和扩展基本策略以记录:

  • RequestResponse 级别的 persistentvolumes 更改
  • namespace front-appsconfigmaps 更改的请求体
  • Metadata 级别的所有 namespace 中的 ConfigMap 和 Secret 的更改

此外,添加一个全方位的规则以在 Metadata 级别记录所有其他请求。

注意:不要忘记应用修改后的策略。


继续阅读“CKS 题库 5、日志审计 log audit”

CKS 题库 4、RBAC - RoleBinding

file

Context

绑定到 Pod 的 ServiceAccount 的 Role 授予过度宽松的权限。完成以下项目以减少权限集。

Task

一个名为 web-pod 的现有 Pod 已在 namespace db 中运行。
编辑绑定到 Pod 的 ServiceAccount service-account-web 的现有 Role,仅允许只对 services 类型的资源执行 get 操作。
在 namespace db 中创建一个名为 role-2 ,并仅允许只对 namespaces 类型的资源执行 delete 操作的新 Role。
创建一个名为 role-2-binding 的新 RoleBinding,将新创建的 Role 绑定到 Pod 的 ServiceAccount。

注意:请勿删除现有的 RoleBinding。


继续阅读“CKS 题库 4、RBAC - RoleBinding”

CKS 题库 3、默认网络策略

file

Context

一个默认拒绝(default-deny)的NetworkPolicy可避免在未定义任何其他NetworkPolicy的namespace中意外公开Pod。

Task

为所有类型为 Ingress+Egress 的流量在 namespace testing 中创建一个名为 denypolicy 的新默认拒绝 NetworkPolicy 。
此新的 NetworkPolicy 必须拒绝 namespace testing 中的所有的 Ingress + Egress 流量。
将新创建的默认拒绝 NetworkPolicy 应用在 namespace testing 中运行的所有 Pod 。

你可以在 /cks/net/p1.yaml 找到一个模板清单文件。


继续阅读“CKS 题库 3、默认网络策略”

CKS 题库 2、Pod指定ServiceAccount

file

Context

您组织的安全策略包括:

  • ServiceAccount不得自动挂载API凭据
  • ServiceAccount名称必须以“-sa”结尾

清单文件 /cks/sa/pod1.yaml 中指定的Pod由于ServiceAccount指定错误而无法调度。

请完成以下项目:

Task
  1. 在现有namespace qa 中创建一个名为 backend-sa 的新ServiceAccount,
    确保此ServiceAccount不自动挂载API凭据。
  2. 使用 /cks/sa/pod1.yaml 中的清单文件来创建一个Pod。
  3. 最后,清理 namespace qa 中任何 未使用的 ServiceAccount。

继续阅读“CKS 题库 2、Pod指定ServiceAccount”

CKS 题库 1、kube-bench 修复不安全项

file

Context:

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

Task:

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

修复针对 API 服务器发现的所有以下违规行为:
1.2.7 Ensure that the --authorization-mode argument is not set to AlwaysAllow FAIL
1.2.8 Ensure that the --authorization-mode argument includes Node FAIL
1.2.9 Ensure that the --authorization-mode argument includes RBAC FAIL
1.2.18 Ensure that the --insecure-bind-address argument is not set FAIL (1.25中这项题目没给出,但最好也检查一下,模拟环境里需要改)
~~1.2.19 Ensure that the --insecure-port argument is set to 0 FAIL ~~(1.25中这项题目没给出,不需要再修改了)

修复针对kubelet发现的所有以下违规行为:
Fix all of the following violations that were found against the kubelet:
4.2.1 Ensure that the anonymous-auth argument is set to false FAIL
4.2.2 Ensure that the --authorization-mode argument is not set to AlwaysAllow FAIL
注意:尽可能使用 Webhook 身份验证/授权。

修复针对etcd发现的所有以下违规行为:
Fix all of the following violations that were found against etcd:
2.2 Ensure that the --client-cert-auth argument is set to true FAIL


继续阅读“CKS 题库 1、kube-bench 修复不安全项”