跳至主要内容

建立自訂基準版本以執行叢集掃描

每個基準版本都定義了一組測試配置檔案,這些檔案定義了由 kube-bench 工具執行的合規測試。 rancher-compliance 應用程式安裝了一些預設的基準版本,這些版本列在合規應用程式選單下。

但在以下情況下,可能需要自訂配置或修復:

  • 非標準檔案位置:當 Kubernetes 二進位檔案、配置或憑證路徑偏離上游基準預設值時。 範例:與傳統 Kubernetes 不同,K3s 將控制平面元件打包到單一二進位檔案中。因此,應在 K3s 的日誌(journalctl)中驗證 --anonymous-auth 標誌的存在和配置,而不是透過 kube-apiserver 程序檢查(ps)。

  • 替代風險緩解措施:如果設定不符合檢查要求,但具有同等有效的補償控制措施並有理由說明。或者僅僅因為其設計而不關注檢查要求。 範例:預設情況下,K3s 將 api server 嵌入到 k3s 程序中。沒有 API server pod 規格檔案,因此不需要驗證後者的檔案權限。

1. 準備自訂基準版本 ConfigMap​

要建立自訂基準版本,首先您需要建立一個包含基準版本配置檔案的 ConfigMap,並將其上傳到您想要執行掃描的 Kubernetes 叢集。

要準備自訂基準版本 ConfigMap,假設我們想要新增一個名為 foo 的自訂基準版本。

  1. 建立一個名為 foo 的目錄,並在此目錄中放置 kube-bench 工具查找的所有配置 YAML 檔案。例如,這裡是 Generic CIS 1.5 基準版本的配置 YAML 檔案 https://github.com/aquasecurity/kube-bench/tree/master/cfg/cis-1.5

  2. 放置完整的 config.yaml 檔案,其中包括應該測試的所有元件。

  3. 將基準版本名稱新增到 config.yaml 的 target_mapping 區段:

    target_mapping:
    "foo":
    - "master"
    - "node"
    - "controlplane"
    - "etcd"
    - "policies"
  4. 透過建立 ConfigMap 將此目錄上傳到您的 Kubernetes 叢集:

    kubectl create configmap -n <namespace> foo --from-file=<path to directory foo>

2. 將自訂基準版本新增到叢集​

  1. 在左上角,點擊 ☰ > Cluster Management。
  2. 在 Clusters 頁面上,前往您想要新增自訂基準的叢集,然後點擊 Explore。
  3. 在左側導航列中,點擊 Compliance > Benchmark Version。
  4. 點擊 Create。
  5. 為您的自訂基準版本輸入 Name 和描述。
  6. 選擇您的基準版本適用的叢集提供商。
  7. 從下拉選單中選擇您已上傳的 ConfigMap。
  8. 新增適用的最低和最高 Kubernetes 版本限制(如果有)。
  9. 點擊 Create。

3. 為自訂基準版本建立新配置檔​

要使用您的自訂基準版本執行掃描,您需要新增一個指向此基準版本的新配置檔。

  1. 在左上角,點擊 ☰ > Cluster Management。
  2. 在 Clusters 頁面上,前往您想要新增自訂基準的叢集,然後點擊 Explore。
  3. 在左側導航列中,點擊 Compliance > Profile。
  4. 點擊 Create。
  5. 提供 Name 和描述。在此範例中,我們將其命名為 foo-profile。
  6. 從下拉選單中選擇基準版本。
  7. 點擊 Create。

4. 使用自訂基準版本執行掃描​

一旦建立了指向您的自訂基準版本 foo 的配置檔,您就可以建立新的掃描來執行基準版本中的自訂測試配置。

要執行掃描:

  1. 在左上角,點擊 ☰ > Cluster Management。
  2. 在 Clusters 頁面上,前往您想要新增自訂基準的叢集,然後點擊 Explore。
  3. 在左側導航列中,點擊 Compliance > Scan。
  4. 點擊 Create。
  5. 選擇新的叢集掃描配置檔。
  6. 點擊 Create。

結果: 會生成包含掃描結果的報告。要查看結果,請點擊出現的掃描名稱。