套用多個 Policy Controller 套裝組合

本頁說明如何啟用 Policy Controller 套裝組合。

如要進一步瞭解如何套用及使用政策套裝組合,請使用左側導覽選單,閱讀您想套用套裝組合的操作說明。如要進一步瞭解政策套裝組合,請參閱「Policy Controller 套裝組合」總覽。

如果您使用 Google Cloud 控制台安裝 Policy Controller,系統預設會安裝政策基本套裝組合,但您可以啟用更多套裝組合。

事前準備

套用政策套裝組合

控制台

如要使用 Google Cloud 控制台在叢集上套用一或多個政策套裝組合,請完成下列步驟:

  1. 在 Google Cloud 控制台中,前往「Posture Management」(狀態管理) 專區下方的 GKE Enterprise「Policy」(政策) 頁面。

    前往「政策」

  2. 在「設定」分頁的叢集表格中,選取「編輯設定」欄中的「編輯」

  3. 在「新增/編輯政策套裝組合」選單中,確認範本庫已開啟。

  4. 如要啟用所有政策套裝組合,請將「新增所有政策套裝組合」切換鈕設為開啟

  5. 如要啟用個別政策套裝組合,請開啟要啟用的每個政策套裝組合。

  6. 選用:如要豁免命名空間,請展開「顯示進階設定」選單。在「Exempt namespaces」(豁免命名空間) 欄位中,提供有效命名空間的清單。

    最佳做法

    豁免系統命名空間,避免環境發生錯誤。如要瞭解如何排除命名空間,以及查看 Google Cloud 服務建立的常見命名空間清單,請前往「排除命名空間」頁面。

  7. 選取「儲存變更」

如要查看政策涵蓋範圍和違規情形的詳細資訊,請使用 Policy Controller 資訊主頁

gcloud

如要套用政策組合,請完成下列步驟:

  1. 如果您要套用的任何套件使用參照限制,就必須啟用參照限制支援功能:

    gcloud container fleet policycontroller update --referential-rules
    

    您可以在「政策套裝組合總覽」中,查看套裝組合是否需要支援參照限制。

  2. 針對要安裝的每個套件組合,執行下列指令:

    gcloud container fleet policycontroller content bundles set BUNDLE_NAME
    

    BUNDLE_NAME 替換為要安裝的套件組合名稱。名稱是套件前置字元,例如 cis-k8s-v1.5.1。您可以在「政策組合總覽」中查看名稱清單。

  3. 選用:如要免除命名空間的強制執行,請執行下列指令:

    gcloud container fleet policycontroller content bundles set BUNDLE_NAME \
      --exempted-namespaces=NAMESPACES
    

    NAMESPACES 替換為以半形逗號分隔的命名空間清單,這些命名空間不應強制執行,例如 kube-system,gatekeeper-system

    如要進一步瞭解如何新增可排除的命名空間,請參閱「將命名空間排除在政策控制器之外」。

  4. 如要移除套裝組合,請執行下列指令:

    gcloud container fleet policycontroller content bundles remove BUNDLE_NAME
    

疑難排解

您無法修改直接安裝的政策套裝組合,請按照本頁的說明操作。如果政策套裝組合有問題,需要進行編輯,請使用個別政策套裝組合頁面上的其中一種方法安裝套裝組合。這些方法會從 Git 存放區提取政策套件,方便您進行變更。舉例來說,如要編輯 CIS Kubernetes 基準 1.5,請按照「使用 CIS Kubernetes 基準 1.5.1 版政策限制」的說明操作,而非本頁的說明。

後續步驟

  • 進一步瞭解如何套用個別限制
  • 請參閱這篇教學課程,瞭解如何在 CI/CD 管道中使用政策套裝組合,將安全防護措施提前納入開發流程。