kubernetes--kubernetes审计日志(api访问日志)

这篇具有很好参考价值的文章主要介绍了kubernetes--kubernetes审计日志(api访问日志)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、审计日志介绍:

二、事件和阶段:

三、Kubernetes审计日志:

四、审计日志的启用:

五、收集审计日志方案:


一、审计日志介绍:

       在Kubernetes集群中,API Server的审计日志记录了哪些用户、哪些服务请求操作集群资源,并且可以编写不通规则,控制忽略、存储的操作日志。

       审计日志采用JSON输出,每条日志报包含丰富的元数据,例如请求的URL、HTTP的方法、客户端来源登,你可以使用监控服务来分析API流量,以检测趋势或可能存在的安全隐患。

这些服务会访问API Serve:

  1. 管理节点(controller-manager scheduler)
  2. 工作节点(kubelt、kube-proxy)
  3. 集群服务(CoreDNS、Calico、HPA等)
  4. kubectl、API、Dashboard

二、事件和阶段:

audit-policy.yaml,kubenetes,kubernetes,java,容器

当客户端向API Server发出请求时,该请求将经历一个或多个阶段:

阶段

说明

RequestReceived

审核处理程序已收到请求

ResponseStarted

已发送 响应标头,但尚未发送响应正文

ResponseComplete

响应正文已完成,不再发送任何字节

Panic

内部服务器出错,请求未完成

三、Kubernetes审计日志:

       Kubernetes审核策略文件包含一系列规则,描述了记录日志的级别,采集哪些日志,不采集哪些日志。

规则级别如下表所示:

级别

说明

None

不为事件创建日志条目

Metadata

创建日志条目。包括元数据,但不包括请求正文或响应正文

Request

创建日志条目。包括元数据和请求正文,但不包括响应正文

RequestResponse

创建日志条目。包括元数据、请求正文和响应正文

参考资料:https://kubernetes.io/zh/docs/tasks/debug-application-cluster/audit/

示列:

audit-policy.yaml,kubenetes,kubernetes,java,容器

日志示列格式:

 audit-policy.yaml,kubenetes,kubernetes,java,容器

四、审计日志的启用:

审计日志支持写入本地文件和Webhook(发送到外部HTTP API)两种方式。

启用审计日志功能:

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

…
- --audit-policy-file=/etc/kubernetes/audit/audit-policy.yaml 
- --audit-log-path=/var/log/k8s_audit.log  
- --audit-log-maxage=30
- --audit-log-maxbackup=10
- --audit-log-maxsize=100
...
volumeMounts:
...
- mountPath: /etc/kubernetes/audit/audit-policy.yaml
  name: audit
- mountPath: /var/log/k8s_audit.log
  name: audit-log
volumes:
- name: audit
  hostPath:
    path: /etc/kubernetes/audit/audit-policy.yaml
    type: File
- name: audit-log
  hostPath:
    path: /var/log/k8s_audit.log
    type: FileOrCreate

参数说明

audit-policy-file

审计日志策略文件

audit-log-path

审计日志输出文件

audit-log-maxage

审计日志保留的最大天数

audit-log-maxbackup

审计日志最大分片存储多少个日志文件

audit-log-maxsize

单个审计日志最大大小,单位MB

注:需要使用hostpath数据卷将宿主机策略文件和日志文件挂载到容器中。

【】vi  /etc/kubernetes/audit/audit-policy.yaml#简略版自定义

apiVersion: audit.k8s.io/v1 # 这是必填项。
kind: Policy
# 不要在 RequestReceived 阶段为任何请求生成审计事件。
omitStages:
  - "RequestReceived"
rules:
  # 在日志中用 RequestResponse 级别记录 Pod 变化。
  - level: RequestResponse
    resources:
    - group: ""
      # 资源 "pods" 不匹配对任何 Pod 子资源的请求,
      # 这与 RBAC 策略一致。
      resources: ["pods"]
  # 在日志中按 Metadata 级别记录 "pods/log"、"pods/status" 请求
  - level: Metadata
    resources:
    - group: ""
      resources: ["pods/log", "pods/status"]

  # 不要在日志中记录对名为 "controller-leader" 的 configmap 的请求。
  - level: None
    resources:
    - group: ""
      resources: ["configmaps"]
      resourceNames: ["controller-leader"]

  # 不要在日志中记录由 "system:kube-proxy" 发出的对端点或服务的监测请求。
  - level: None
    users: ["system:kube-proxy"]
    verbs: ["watch"]
    resources:
    - group: "" # core API 组
      resources: ["endpoints", "services"]

  # 不要在日志中记录对某些非资源 URL 路径的已认证请求。
  - level: None
    userGroups: ["system:authenticated"]
    nonResourceURLs:
    - "/api*" # 通配符匹配。
    - "/version"

  # 在日志中记录 kube-system 中 configmap 变更的请求消息体。
  - level: Request
    resources:
    - group: "" # core API 组
      resources: ["configmaps"]
    # 这个规则仅适用于 "kube-system" 名字空间中的资源。
    # 空字符串 "" 可用于选择非名字空间作用域的资源。
    namespaces: ["kube-system"]

  # 在日志中用 Metadata 级别记录所有其他名字空间中的 configmap 和 secret 变更。
  - level: Metadata
    resources:
    - group: "" # core API 组
      resources: ["secrets", "configmaps"]

  # 在日志中以 Request 级别记录所有其他 core 和 extensions 组中的资源操作。
  - level: Request
    resources:
    - group: "" # core API 组
    - group: "extensions" # 不应包括在内的组版本。

  # 一个抓取所有的规则,将在日志中以 Metadata 级别记录所有其他请求。
  - level: Metadata
    # 符合此规则的 watch 等长时间运行的请求将不会
    # 在 RequestReceived 阶段生成审计事件。
    omitStages:
      - "RequestReceived"

【】cat /var/log/audit/audit.log#以json格式输出的

audit-policy.yaml,kubenetes,kubernetes,java,容器

#以json格式输出的安全jq用来解析json,老版本会是json

【】yum -y install jq

【】cat /var/log/k8s_audit.log |jq

audit-policy.yaml,kubenetes,kubernetes,java,容器

简略版配置

【】vi  /etc/kubernetes/audit/audit-policy.yaml#简略版自定义只记录pod操作


apiVersion: audit.k8s.io/v1
kind: Policy
# 忽略步骤,不为RequestReceived阶段生成审计日志
omitStages:
  - "RequestReceived"
rules:
# 不记录日志
  - level: None
    users:
    - system:apiserver
    - system:kube-controller-manager
    - system:kube-scheduler
    - system:kube-proxy
    - kubelet
# 针对资源记录日志
  - level: Metadata
    resources: 
    - group: ""
      resources: ["pods"]
# - group: "apps"
# resources: ["deployments"]
# 其他资源不记录日志
    - level: None

重启kubelet以生效

【】systemctl  restart  kubelet#若不生效则删一下apiserver的pod文章来源地址https://www.toymoban.com/news/detail-692562.html

五、收集审计日志方案:

  1. 审计日志文件+filebeat  比较实际
  2. 审计webhook+logstash
  3. 审计webhook+falco

到了这里,关于kubernetes--kubernetes审计日志(api访问日志)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Code-Audit(代码审计)习题记录

    介绍: 自己懒得搭建靶场了,靶场地址是 GitHub - CHYbeta/Code-Audit-Challenges: Code-Audit-Challenges为了方便在公网练习,可以随地访问,本文所有的题目均来源于网站HSCSEC-Code Audit 1、习题一  题目内容如下:   查看题目,发现是对$flag 参数进行了一系列加密,得到字符1wMDEyY2U2YTY0M2

    2024年02月22日
    浏览(44)
  • 【Oracle】设置FGA(Fine-Grained Audit)细粒度审计

    【声明】文章仅供学习交流,观点代表个人,与任何公司无关。 编辑|SQL和数据库技术(ID:SQLplusDB) 收集Oracle数据库内存相关的信息 【Oracle】ORA-32017和ORA-00384错误处理 FGA(Fine-Grained Audit)细粒度审计是Oracle提供的一种数据库审计方法,用于创建定制的审计设置。 可以通过调用Or

    2024年01月24日
    浏览(39)
  • kubernetes网络之网络策略-Network Policies

    Kubernetes 中,Network Policy(网络策略)定义了一组 Pod 是否允许相互通信,或者与网络中的其他端点 endpoint 通信。 NetworkPolicy 对象使用标签选择Pod,并定义规则指定选中的Pod可以执行什么样的网络通信,规则通常由如下三类信息组合而成: 允许访问的其他容器组(容器组不能

    2024年02月15日
    浏览(29)
  • 云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行

    Kubernetes是一个开源的, 用于编排云平台中多个主机上的容器化的应用,目标是让部署容器化的应用能简单并且高效的使用, 提供了应用部署,规划,更新,维护的一种机制 。其核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着,管理员可

    2024年02月08日
    浏览(82)
  • 日志审计-syslog日志外发

    不同的 Linux 版本,syslog 服务名可能为 syslog,也可能为 rsyslog;以下以 syslog 为例说明。 Linux 主机所有的日志文件一般都在/var/log 下,默认只是不记录 FTP 的 活 动 , Linux系统的日志文件是可以配置的,Linux syslog设备依据两个重要的文件:/etc/syslogd 守护进程和/etc/syslog.conf 配置

    2024年02月05日
    浏览(40)
  • 安全审计——等级保护日志审计要求的一种解决方案

        在网络安全等级保护中,对日志有着一系列的要求,通常以部署日志审计系统来满足等保的要求,此处我们选择syslog来实现日志的集中收集,统一管理。     在这里我们主要目标是满足安全区域边界、安全管理中心里的下面两条的要求。其中安全管理中心的日志

    2024年02月16日
    浏览(53)
  • 云原生安全日志审计

    记得添加,把配置文件挂载进去 /etc/kubernetes/manifests/kube-apiserver.yaml  具体配置文件如下 策略文件如下所示    移动云帮助中心 云原生安全-从k8s日志审计视角检测自动化工具攻击 http://elkeid.bytedance.com/docs/ElkeidData/k8s_rule.html https://github.com/jetstack/kubernetes.github.io/blob/master/docs/

    2024年02月06日
    浏览(40)
  • 日志审计系统简介

    日志审计系统简介 什么是日志审计? 综合日志审计平台,通过集中采集信息系统中的系统安全事件、用户访问记录、系统运行日志、系统运行状态等各类信息,经过规范化、过滤、归并和告警分析等处理后,以统一格式的日志形式进行集中存储和管理,结合丰富的日志统计

    2024年02月11日
    浏览(39)
  • 一键式开启:IDaaS 日志接入 SLS日志审计发布

    应用身份服务 IDaaS (Identity as a Service)是阿里云原生身份管理系统,可以统一管理 各应用 中分散的账号,并集中分配 应用 访问控制权限,降低低效、重复的账号访问配置和运维工作。IDaaS 旗下的EIAM(Enterprise IAM)面向政企内部身份管理,其服务对象为企业员工、实习生、合作

    2023年04月26日
    浏览(43)
  • 日志审计与分析练习题

    1.  ( 单选题) 【单选题】以下关于日志的描述不正确的是( ) A. 日志是在事故发生后查明“发生了什么”的一个很好的“取证”信息来源,但无法为审计进行跟踪 B. 日志是由各种不同的实体产生的“安全记录”的集合 C. 通常为计算机系统、设备、软件等在某种情况下记录的信息

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包