容器服务 集群审计

这篇说说如何将注册集群的审计日志接入腾讯云日志服务CLS,包括在Master节点配置审计策略和API Server参数,以及通过控制台开启审计功能,并支持公网或内网投递日志。 配置审计策略:在Master节点创建/etc/kubernetes/audit-policy.yaml文件,按需定义审计规则。 配置API Server:修改kube-apiserver.yaml,添加审计相关command和Volume挂载参。

相关产品
容器服务 产品页,含版本规格、价格与购买入口。

这里说明如何将注册集群的审计日志接入到 腾讯云日志服务 CLS。

一、简介

集群审计是基于 Kubernetes Audit 对 kube-apiserver 产生的可配置策略的 JSON 结构日志的记录存储及检索功能。本功能记录了对 kube-apiserver 的访问事件,会按顺序记录每个用户、管理员或系统组件影响集群的活动。

二、使用须知

·已经 创建注册集群,且注册集群的状态为运行中。

·目前注册集群的审计日志仅支持投递至 腾讯云日志服务 CLS,暂不支持其他日志消费端。

·注册集群开启审计功能,需要用户自行登录集群的 Master 节点配置相关审计策略和 API Server 相关参数。

·开启集群审计功能,默认会同步开启集群日志采集功能。

·若使用集群审计功能,请确认 Kubernetes 集群内节点能够访问日志消费端。这里我们提供公网和内网两种方式进行日志投递,用户可以根据业务情况自行选择:

·公网投递:集群审计日志将通过公网的方式进行投递至日志服务 CLS ,需要集群中的节点具有访问公网的能力。

·内网投递:集群审计日志将通过内网的方式进行投递至日志服务 CLS ,需要集群内的节点与腾讯云日志服务 CLS 内网互通。选择该选项前,请 联系我们 进行确认。

三、在集群 Master 节点上配置审计策略

依次登录集群的所有 Master 节点,配置审计策略文件/etc/kubernetes/audit-policy.yaml。你可以根据业务的实际情况,按需修改。

apiVersion: audit.k8s.io/v1beta1kind: PolicyomitStages: – "RequestReceived"rules: – level: None users: ["system:kube-proxy"] verbs: ["watch"] resources: – group: "" resources: ["endpoints", "services"] – level: None users: ["system:unsecured"] namespaces: ["kube-system"] verbs: ["get"] resources: – group: "" resources: ["configmaps"] – level: None users: ["kubelet"] verbs: ["get"] resources: – group: "" resources: ["nodes"] – level: None userGroups: ["system:nodes"] verbs: ["get"] resources: – group: "" resources: ["nodes"] – level: None users: – system:kube-controller-manager – system:kube-scheduler – system:serviceaccount:kube-system:endpoint-controller verbs: ["get", "update"] namespaces: ["kube-system"] resources: – group: "" resources: ["endpoints"] – level: None users: ["system:apiserver"] verbs: ["get"] resources: – group: "" resources: ["namespaces"] – level: None nonResourceURLs: – /healthz* – /version – /swagger* – level: None resources: – group: "" resources: ["events"] – level: Metadata resources: – group: "" # core resources: ["secrets", "configmaps"] – group: authentication.k8s.io resources: ["tokenreviews"] – level: Request verbs: ["get", "list", "watch"] resources: – group: "" – group: "admissionregistration.k8s.io" – group: "apps" – group: "authentication.k8s.io" – group: "authorization.k8s.io" – group: "autoscaling" – group: "batch" – group: "certificates.k8s.io" – group: "extensions" – group: "networking.k8s.io" – group: "policy" – group: "rbac.authorization.k8s.io" – group: "settings.k8s.io" – group: "storage.k8s.io" – level: RequestResponse resources: – group: "" – group: "admissionregistration.k8s.io" – group: "apps" – group: "authentication.k8s.io" – group: "authorization.k8s.io" – group: "autoscaling" – group: "batch" – group: "certificates.k8s.io" – group: "extensions" – group: "networking.k8s.io" – group: "policy" – group: "rbac.authorization.k8s.io" – group: "settings.k8s.io" – group: "storage.k8s.io" – level: Metadata

四、在 Master 节点上配置 API Server 参数

依次登录集群所有的 Master 节点,修改/etc/kubernetes/manifests/kube-apiserver.yaml文件。

1. 添加相关 command 参数,内容如下:

spec: containers: – command: – kube-apiserver – –audit-log-maxbackup=10 – –audit-log-maxsize=100 – –audit-log-path=/var/log/kubernetes/kubernetes.audit – –audit-log-maxage=30 – –audit-policy-file=/etc/kubernetes/audit-policy.yaml

2. 添加相关的 Volume 参数,将 /etc/kubernetes/audit-policy.yaml 挂载到 API Server Pod,内容如下:

spec: containers: – command: – kube-apiserver – –audit-log-maxbackup=10 – –audit-log-maxsize=100 – –audit-log-path=/var/log/kubernetes/kubernetes.audit – –audit-log-maxage=30 – –audit-policy-file=/etc/kubernetes/audit-policy.yaml … … volumeMounts: – mountPath: /var/log/kubernetes name: k8s-audit – mountPath: /etc/kubernetes/audit-policy.yaml name: audit-policy readOnly: true … … volumes: – hostPath: path: /var/log/kubernetes type: DirectoryOrCreate name: k8s-audit – hostPath: path: /etc/kubernetes/audit-policy.yaml type: FileOrCreate name: audit-policy …

五、开启集群审计

1. 登录 腾讯云容器服务控制台,选择左侧导航中的运维功能管理。

2. 在“功能管理”页面上方选择地域和注册集群,单击希望开启集群审计的集群右侧的设置。如下:


3. 在弹出的“设置功能”窗口,单击“集群审计”功能右侧的编辑。


4. 勾选开启集群审计,选择投递方式和存储审计日志的日志集、日志主题,推荐选择自动创建日志主题。


5. 单击确定即可开启注册集群审计功能。

六、审计仪表盘

容器服务为用户提供了开箱即用的审计仪表盘。在集群开启集群审计功能后,TKE 将自动为该集群配置审计总览、节点操作总览、K8S 对象操作概览、聚合检索仪表盘。还支持用户自定义配置过滤项,同时内置 CLS 的全局检索,方便用户观测和检索各类集群操作,以便于及时发现和定位问题。更多详细介绍,请参考 审计仪表盘。

赞 (0)
上一篇 4天前
下一篇 4天前