全部產品
Search
文件中心

Container Service for Kubernetes:日誌審計

更新時間:Jun 19, 2024

Container Service Kubernetes 版對K8s多種組件日誌和審計提供採集和分析能力,包括API Server、Ingress、管控平面組件和K8s關鍵Events事件等,以便在出現安全問題或叢集問題時進行根因分析和溯源。

使用叢集審計功能

在Kubernetes叢集中,API Server的審計日誌可以協助叢集管理員記錄或追溯不同使用者的日常操作,是叢集安全營運中重要的環節。關於通過Log Service收集、分析審計日誌、為審計日誌設定自訂的警示規則、關閉叢集審計功能,請參見使用叢集API Server審計功能

阿里雲服務容器ACK的審計策略如下:

說明

關於審計日誌欄位說明的更多資訊,請參見audit-k8s-io-v1-Event

apiVersion: audit.k8s.io/v1beta1 # This is required.
kind: Policy
#不要為RequestReceived階段中的所有請求產生審核事件。
omitStages:
- "RequestReceived"
rules:
# 以下請求被手動確定為高容量和低風險,因此請取消這些請求。
- level: None
  users: ["system:kube-proxy"]
  verbs: ["watch"]
  resources:
    - group: "" # core
      resources: ["endpoints", "services"]
- level: None
  users: ["system:unsecured"]
  namespaces: ["kube-system"]
  verbs: ["get"]
  resources:
    - group: "" # core
      resources: ["configmaps"]
- level: None
  users: ["kubelet"] # legacy kubelet identity
  verbs: ["get"]
  resources:
    - group: "" # core
      resources: ["nodes"]
- level: None
  userGroups: ["system:nodes"]
  verbs: ["get"]
  resources:
    - group: "" # core
      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: "" # core
      resources: ["endpoints"]
- level: None
  users: ["system:apiserver"]
  verbs: ["get"]
  resources:
    - group: "" # core
      resources: ["namespaces"]
#不要記錄這些唯讀URL。
- level: None
  nonResourceURLs:
    - /healthz*
    - /version
    - /swagger*
#不要記錄事件請求。
- level: None
  resources:
    - group: "" # core
      resources: ["events"]
# 機密、配置映射和令牌審查可以包含敏感和位元據,
# 因此,只能在中繼資料層級進行日誌記錄。
- level: Metadata
  resources:
    - group: "" # core
      resources: ["secrets", "configmaps"]
    - group: authentication.k8s.io
      resources: ["tokenreviews"]

- level: Request
  verbs: ["get", "list", "watch"]
  resources:
    - group: "" # core
    - 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"
# 已知API的預設層級。
- level: RequestResponse
  resources:
    - group: "" # core
    - 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"
    - group: "autoscaling.alibabacloud.com"
# 所有其他請求的預設層級。
- level: Metadata

開啟exec容器內部活動審計

通過exec命令進入容器並發起進一步的橫向攻擊是攻擊者在Kubernetes叢集中發起攻擊的典型路徑。在成功進入容器內部後,預設的叢集Apiserver審計日誌將無法記錄攻擊者發起的攻擊指令。此時可以通過使用容器內部Action Trail功能,協助安全營運人員擷取攻擊者進入容器執行個體後發起的攻擊命令審計,助力針對安全事件的溯源和止血。

利用審計中繼資料

Kubernetes審計日誌包括兩個注釋,用於指示請求是否獲得授權authorization.k8s.io/decision,以及作出決定的原因authorization.k8s.io/reason。使用這些屬性來確定允許特定API調用的原因。

使用NPD結合SLS的Kubernetes事件中心監控叢集可疑事件

NPD(node-problem-detector)是阿里雲Container ServiceACK維護的Kubernetes節點診斷的工具,可以將節點的異常,例如Docker Engine Hang、Linux Kernel Hang、網路出網異常、檔案描述符異常轉換為Node的事件,結合kube-eventer可以實現節時間點事件警示的閉環。除了NPD檢測到的叢集節點即時問題和故障,Kubernetes叢集自身也會因為叢集狀態的切換產生各種事件,例如Pod驅逐、鏡像拉取失敗等異常情況。另外,對於普通使用者使用exec登入到指定容器等可疑營運操作,SLS(Log Service)Log Service的Kubernetes事件中心即時匯聚Kubernetes中的所有事件並提供儲存、查詢、分析、可視化、警示等能力,協助安全營運管理員及時發現叢集穩定性風險。具體操作,請參見事件監控

開啟Ingress Dashboard監控

阿里雲Ingress組件支援將您的所有HTTP請求日誌記錄到標準輸出中。同時,阿里雲打通Ingress組件訪問Log Service與阿里雲Log Service,從而您可以使用Log Service快速建立日誌分析和監控大盤。在Ingress的可視化儀錶盤中,您可以方便地查看Ingress的整體狀態,包括:PV、UV、流量、響應延遲、Top URL統計等關鍵資訊,協助您即時掌控業務流量動態、及時發現惡意訪問和DOS攻擊。具體操作,請參見Ingress Dashboard監控

開啟CoreDNS日誌

阿里雲Container ServiceACK部署了CoreDNS作為叢集內的DNS伺服器,您可以通過查看CoreDNS日誌來分析CoreDNS解析慢、訪問高危請求網域名稱等問題。在Log Service儀錶盤中可以看到關於CoreDNS的日誌分析報表,您可以及時發現可疑的高危網域名稱請求。具體操作,請參見分析和監控CoreDNS日誌