跳至主要内容

在下游叢集中啟用 API 稽核日誌

Kubernetes 稽核提供了有關叢集的一組與安全相關的按時間順序的記錄。Kube-apiserver 執行稽核。請求在其執行的每個階段都會生成一個事件,然後根據特定政策進行預處理並寫入後端。政策決定了記錄什麼,後端則保留記錄。

您可能希望將稽核日誌設定為符合網際網路安全中心(CIS)Kubernetes 基準控制的一部分。

有關設定詳細資訊,請參閱官方 Kubernetes 文件。

方法 1(建議):在 machineGlobalConfig 中設定 audit-policy-file​

您可以在設定檔案中設定 audit-policy-file。Rancher 將檔案傳送到控制平面節點中的路徑 /var/lib/rancher/rke2/etc/config-files/audit-policy-file,並在 RKE2 伺服器中設定適當的選項。

範例:

apiVersion: provisioning.cattle.io/v1
kind: Cluster
spec:
rkeConfig:
machineGlobalConfig:
audit-policy-file: |
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: RequestResponse
resources:
- group: ""
resources:
- pods

方法 2:使用指令 machineSelectorFiles 和 machineGlobalConfig​

備註

此功能在 Rancher v2.7.2 及更高版本中可用。

您可以使用 machineSelectorFiles 將稽核政策檔案傳送到控制平面節點,並使用 machineGlobalConfig 在 kube-apiserver 上設定選項。

作為先決條件,您必須建立 secret 或 configmap 作為稽核政策的來源。

secret 或 configmap 必須滿足以下要求:

  1. 它必須位於 Cluster 物件所在的 fleet-default 命名空間中。
  2. 它必須具有註解 rke.cattle.io/object-authorized-for-clusters: <cluster-name1>,<cluster-name2>,允許目標叢集使用它。
提示

Rancher Dashboard 提供了一個易於使用的表單來建立 secret 或 configmap。

範例:

apiVersion: v1
data:
audit-policy: >-
IyBMb2cgYWxsIHJlcXVlc3RzIGF0IHRoZSBNZXRhZGF0YSBsZXZlbC4KYXBpVmVyc2lvbjogYXVkaXQuazhzLmlvL3YxCmtpbmQ6IFBvbGljeQpydWxlczoKLSBsZXZlbDogTWV0YWRhdGE=
kind: Secret
metadata:
annotations:
rke.cattle.io/object-authorized-for-clusters: cluster1
name: <name1>
namespace: fleet-default

透過在 YAML 中編輯叢集並使用 machineSelectorFiles 和 machineGlobalConfig 指令來啟用和設定稽核日誌。

範例:

apiVersion: provisioning.cattle.io/v1
kind: Cluster
spec:
rkeConfig:
machineGlobalConfig:
kube-apiserver-arg:
- audit-policy-file=<customized-path>/dev-audit-policy.yaml
- audit-log-path=<customized-path>/dev-audit.logs
machineSelectorFiles:
- fileSources:
- configMap:
name: ''
secret:
items:
- key: audit-policy
path: <customized-path>/dev-audit-policy.yaml
name: dev-audit-policy
machineLabelSelector:
matchLabels:
rke.cattle.io/control-plane-role: 'true'
提示

您也可以使用指令 machineSelectorConfig 與適當的 machineLabelSelectors 來實現相同的效果。

有關叢集設定的更多資訊,請參閱 RKE2 叢集設定參考頁面。