审计日志

APIServer 请求认证流程

graph LR A[authrization] B[authtication] C[admission] D[audit] A -->|认证| B -->|鉴权| C -->|准入控制| D -.->|审计|C

审计日志 按照时间顺序记录了每个用户操作记录,并可以将日志存储在文件或 webhook。 【注意】会增加api-server内存消耗

为k8s管理员提供了:

  • 发生了什么?
  • 什么时候发生的?
  • 谁触发的?
  • 活动发生在哪个(些)对象上?
  • 在哪观察到的?
  • 它从哪触发的?
  • 活动的后续处理行为是什么?

每个请求都可被记录其相关的阶段(stage)。已定义的阶段有:

  • RequestReceived - 此阶段对应审计处理器接收到请求后, 并且在委托给其余处理器之前生成的事件。
  • ResponseStarted - 在响应消息的头部发送后,响应消息体发送前生成的事件。 只有长时间运行的请求(例如 watch)才会生成这个阶段。
  • ResponseComplete - 当响应消息体完成并且没有更多数据需要传输的时候。
  • Panic - 当 panic 发生时生成。

第一个匹配规则设置事件的审计级别(Audit Level)。 已定义的审计级别有:

  • None - 符合这条规则的日志将不会记录。
  • Metadata - 记录请求的元数据(请求的用户、时间戳、资源、动词等等), 但是不记录请求或者响应的消息体。
  • Request - 记录事件的元数据和请求的消息体,但是不记录响应的消息体。 这不适用于非资源类型的请求。
  • RequestResponse - 记录事件的元数据,请求和响应的消息体。这不适用于非资源类型的请求。

开始实践

  • 在apiserver中开启配置

    保留最近7天的审计日志,日志达到2048MB 自动轮转一个新的日志文件,日志文件最多保留三份

    --audit-policy-file=/etc/kubernetes/audit-policy.yaml \
    --audit-log-path=/var/log/audit.log \
    --audit-log-maxage=7 \
    --audit-log-maxbackup=3 \
    --audit-log-maxsize=2048
    
  • 编写policy审计规则

    语法

    cat /etc/kubernetes/audit-policy.yaml
    apiVersion: audit.k8s.io/v1
    kind: Policy
    omitStages: []
    rules:
      - level:
        users: []
        userGroups: []
        verbs: []
        resources: []
        resourceNames: []
        namespaces: []
        nonResourceURLs: []
        omitStages: []
    

    示例:

    apiVersion: audit.k8s.io/v1
    kind: Policy
    rules:
    # 
    - level: Request  # 可选 None Metadata Request RequestResponse
      users:
      - "kubernetes-admin"
      userGroups:
      - "system:masters"
      verbs:
      - watch  # "get", "list", "watch" "create", "update", "delete","patch","deletecollection 允许批量删除资源","exec","proxy","*"
      resources:
      - group: ""
        resources:
        - pods
        - services
      resourceNames:
      - "test"
      namespaces:
      - "default"
    - level: Metadata
      nonResourceURLs:
      - "api*"
      omitStages:
      - "RequestRecevied"
    
posted @ 2024-01-23 19:37  mingtian是吧  阅读(12)  评论(0编辑  收藏  举报