共用方式為


已啟用 Azure Arc 的 Kubernetes 治理、安全性和合規性基準

本文提供建置已啟用 Azure Arc 的 Kubernetes 部署時應使用之安全性、治理和合規性的重要設計考慮和最佳做法。 雖然企業級登陸區域文件涵蓋治理和安全性為個別主題,但這些重要的設計區域會合併為已啟用 Azure Arc 的 Kubernetes 的單一主題。

Azure 原則 和 適用於雲端的 Microsoft Defender 是雲端原生工具,可讓您大規模實作護欄、控制、報告、警示和補救工作。 藉由將它們與已啟用 Azure Arc 的 Kubernetes 結合,您可以將治理原則和安全性檢查延伸至內部部署和/或多重雲端環境中的任何 Kubernetes 叢集。

架構

下圖顯示概念參考架構,描述已啟用 Azure Arc 的 Kubernetes 的安全性、合規性和治理設計區域:

此圖顯示已啟用 Azure Arc 的 Kubernetes 企業級安全性、治理和合規性。

設計考量

當您的混合式和多重雲端資源成為 Azure Resource Manager 的一部分時,您可以從 Azure 管理和管理它們。 本節包含您在規劃已啟用 Azure Arc 的 Kubernetes 叢集資源的安全性與治理時,應該牢記的設計考慮。

檢閱 Azure 登陸區域的安全性治理 設計區域,以評估已啟用 Azure Arc 的 Kubernetes 對整體治理和安全性模型的影響。

代理程式布建

定義布 建已啟用 Azure Arc 的 Kubernetes 代理程式 的策略,並在建立上線服務主體時使用最低許可權原則。 請考慮使用自動化進行大量註冊。

代理程式管理

已啟用 Azure Arc 的 Kubernetes 代理程式在已啟用 Azure Arc 的 Kubernetes 叢集混合式作業中扮演重要角色,因為它們可讓您從 Azure 管理叢集。 實作追蹤 代理程式連線狀態的解決方案。 請務必定義升級已啟用 Azure Arc 的 Kubernetes 代理程式的程式。

角色型存取控制 (RBAC)

定義組織中負責混合式叢集中日常作業的管理、作業和開發人員角色。 將每個小組對應至動作和責任,可決定 Azure 角色型訪問控制 (RBAC) 角色和 Kubernetes ClusterRoleBinding 和 RoleBinding。

請考慮使用 RACI 矩陣來支援這項工作,並將控件建置到您根據資源一致性和庫存管理指導方針定義的管理範圍階層中。

如需詳細資訊,請參閱 已啟用 Azure Arc 的 Kubernetes 身分識別和存取管理。

秘密和憑證管理

使用 Azure 金鑰保存庫,並透過容器記憶體介面 (CSI) 在已啟用 Azure Arc 的 Kubernetes 叢集中部署其擴充功能來保護秘密和憑證

資料落地

請考慮您打算在其中布建已啟用 Azure Arc 的 Kubernetes 叢集的 Azure 區域。 根據貴組織的數據落地需求,瞭解 從您的資源 收集哪些數據並據以規劃。

啟用及保護 GitOps 組態

GitOps 組態會強制執行所需的系統狀態,而且是追蹤已啟用Arc的 Kubernetes 叢集合規性的重要工具。 使用 GitOps 組態時,請考慮透過適當的網路和訪問控制來保護原始檔控制系統的存取權。

原則管理和報告

定義混合式 Kubernetes 叢集的治理計劃,以轉譯為 Azure 原則,以大規模稽核及強制執行組織標準。 例如,您可以將 sourceControlConfiguration 原則強制執行至 Kubernetes 叢集,以確保叢集從定義的 Git 存放庫取得工作負載和組態的真相來源,並使用 Azure 原則 追蹤合規性。

記錄管理原則

檢閱 管理專業領域的重要設計區域設計考慮和建議 ,並計劃從混合式資源收集計量和記錄到Log Analytics工作區,以進一步分析和稽核。

威脅防護和雲端安全性狀態管理

強制執行威脅防護,並引進控件來偵測安全性設定錯誤並追蹤合規性。 使用 Azure 的情報 來保護混合式工作負載免於威脅。 為包含已啟用 Azure Arc 的 Kubernetes 的所有訂用帳戶啟用安全性基準監視、安全性狀態管理和威脅防護,方法是啟用 適用於容器的 Defender Microsoft。

保護叢集存取

規劃保護對 Kubernetes API 的存取。 已啟用 Azure Arc 的 Kubernetes 叢集連線功能 可讓您連線到 API 伺服器,而不需要啟用任何輸入埠。

改善微服務可觀察性和安全性

服務網格的實作可協助驗證、授權、安全性和微服務型應用程式的可見度。 已啟用 Azure Arc 的 Kubernetes 可簡化 Open Service Mesh (OSM) 作為延伸模組部署。

設計建議

本節包含您應該遵循的設計建議,同時規劃已啟用 Azure Arc 的 Kubernetes 叢集資源的安全性和治理。

代理程式布建

  • 定義將叢集上線到 Azure Arc 的策略,包括大量註冊的自動化方法。 建立將部署範圍納入考慮的正式計劃,並包含目標、選擇準則、成功準則、訓練計劃、復原和風險。

  • 您可以使用 服務主體 來整合代理程式布建,作為持續整合和持續部署 (CI/CD) 管線的一部分。 您應該限制此服務主體的許可權,並只指派將 Kubernetes 上線至 Azure 所需的角色(「Kubernetes 叢集 - Azure Arc 上線」角色),因為它只能用來將 Kubernetes 上線,而不是復原程式或刪除資源。

代理程式管理

Azure Arc 代理程式是已啟用 Azure Arc 的 Kubernetes 的重要元件,其中包含數個邏輯元件,在安全性、治理和管理作業中扮演角色。

如果代理程式停止將活動訊號傳送至 Azure、離線或失去與 Azure 的連線,則您無法對它執行作業工作。 開發計劃,以了解這些案例發生時如何通知您,以及組織應如何回應。

您可以使用 Azure 活動記錄來設定資源健康情況警示,並隨時掌握代理程式 Pod 的目前和歷程記錄健康情況狀態。 若要瞭解如何正確管理代理程式,請檢閱 管理關鍵設計區域

如果服務尚未收到代理程式活動訊號 15 分鐘, 已啟用 Azure Arc 的 Kubernetes 叢集會顯示為離線。 若要確保您的代理程式可以安全地連線到 Azure Arc 端點,請檢閱 已啟用 Azure Arc 的 Kubernetes 連線關鍵設計區域

角色型存取控制 (RBAC)

將 Kubernetes 叢集上線之後,您可以將 Azure RBAC 指派給已啟用 Azure Arc 的 Kubernetes 叢集資源。

指派「參與者」或「擁有者」等角色時,請遵循最低許可權原則,以執行執行動作為 「ClusterAdmin」且具有全叢集效果的擴充功能等作業。 這些角色應謹慎使用,以限制可能的「爆炸半徑」,或最終由自定義角色取代。

您應該將相同的 RBAC 原則套用至傳送至 Azure 監視器 Log Analytics 工作區的敏感數據。 已啟用 Azure Arc 的 Kubernetes 提供 RBAC 存取 Log Analytics 代理程式所收集的記錄數據,並儲存在叢集註冊的 Log Analytics 工作區中。 若要瞭解如何實作細微的Log Analytics工作區存取,請檢閱 設計 Azure 監視器記錄部署

將已啟用 Azure Arc 的 Kubernetes 叢集與 Microsoft Entra ID 整合,可讓您使用 Azure 角色指派,更細微地控制已啟用 Azure Arc 的 Kubernetes 叢集資源的存取權和許可權。

注意

此整合會以原生方式搭配 Kubernetes ClusterRoleBinding 和 RoleBinding 物件類型運作,並有效地合併 Kubernetes 叢集的授權,並以 Microsoft Entra ID 作為中央身分識別和存取管理服務。 藉由使用Microsoft Entra 識別符,您可以取得叢集中所做的變更以及任何授權事件的完整稽核和追蹤。

與 Microsoft Entra ID 整合也可讓您存取進階安全性功能,您應該使用這些功能來設定:

  • 具有 Microsoft Entra 識別符的條件式存取。 您可以在條件式存取概觀中找到條件式存取的詳細資訊。
  • 需要提高許可權之工作的 Just-In-Time (JIT) 存取規則。 讓某些用戶能夠存取 Kubernetes 中的敏感性資訊或重要網路組態設定,可建立遭入侵帳戶或內部威脅活動的潛在路徑。 特殊許可權存取管理可協助您保護組織免於缺口,並藉由限制敏感數據的常設存取權或對重要組態設定的存取,協助您符合合規性最佳做法。

秘密和憑證管理

請勿將秘密或憑證儲存在應用程式程式代碼或檔案系統中。 秘密應該儲存在金鑰存放區中,並視需要在運行時間提供給容器。

請考慮使用 Azure 金鑰保存庫 擴充功能來管理已啟用 Azure Arc 的 Kubernetes 叢集上的秘密和憑證。 金鑰保存庫 延伸模組可讓您管理 Kubernetes 部署上的憑證生命週期,如下圖所示。

顯示已啟用 Azure Arc 的 Kubernetes 和 金鑰保存庫 整合的圖表。

啟用及保護 GitOps 組態

GitOps 是任何採用完全自動化作業方法之IT策略的重要元件。 GitOps 提供任何部署的規模、一致性、追蹤和稽核功能。

使用 GitOps 可以簡化跨叢集和環境部署多個應用程式,同時使用 Git 以宣告方式追蹤並強制執行系統所需的狀態。 當您使用 Git 作為單一事實來源,以及作為所有部署的中央工具時,它成為追蹤叢集狀態、考慮一段時間的變更和核准、促進錯誤調查,以及跨分散式環境啟用自動化的最佳方式。

當您新增 GitOps 組態時,請確定您安全存取存放庫及其密鑰,並設定分支許可權。 如需詳細資訊,請檢閱 GitOps 的重要設計區域。

原則管理和報告

原則驅動的治理是雲端原生作業和 Azure Microsoft 雲端採用架構的基本準則。 Azure 原則 提供機制來強制執行公司標準,並大規模評估合規性。 透過 Azure 原則,您可以實作部署、合規性、控制成本、安全性狀態的一致性治理。 在其合規性儀錶板中,您可以看到大規模環境整體狀態的匯總檢視,並尋找叢集層級的補救功能。

已啟用 Azure Arc 的 Kubernetes 支援在 Azure 資源管理層 Azure 原則,以及藉由擴充 Open Policy Agent 的 Gatekeeper 來強制執行叢集內原則。 您可以實作任何 內建原則 ,以大規模達成合規性和強制執行。 下圖說明 Azure 原則 如何將大規模強制執行和保護套用至已啟用 Azure Arc 的 Kubernetes 叢集。

顯示已啟用 Azure Arc 的 Kubernetes 原則的圖表。

瞭解 Azure 原則的範圍,以及您可以套用它的位置(管理群組、訂用帳戶、資源群組或個別資源層級)。 針對已啟用 Azure Arc 的 Kubernetes,請使用 Azure 原則 的內建連結庫。 根據 雲端採用架構 企業規模指導方針中所述的建議做法,建立管理群組設計。

  • 判斷您需要哪些 Azure 原則,以符合貴組織的商務、法規和安全性需求,以大規模啟用 Azure Arc 的 Kubernetes。
  • 強制執行標記並實 作補救工作
  • 使用 Azure 原則 來強制執行 GitOps,並大規模套用設定。
  • 瞭解和評估已啟用 Azure Arc 的 Kubernetes Azure 原則 內建定義。
  • Azure 原則 的 DeployIfNotExists 原則,以程式設計方式將延伸模組/管理服務代理程式大規模部署到已啟用 Arc 的叢集,包括 Azure 監視器。
  • 啟用 Azure 監視器 Container Insights ,以符合已啟用 Azure Arc 的 Kubernetes 叢集的合規性和作業監視。

記錄管理原則

設計和規劃Log Analytics工作區部署,這是收集數據、匯總及稍後分析的記憶體。 由於 Log Analytics 工作區代表數據的地理位置,因此為了支持數據保留等設定的隔離等級和範圍,您必須判斷所需的工作區數目,以及它們如何對應至您的組織結構。

使用單一 Azure 監視器 Log Analytics 工作區來管理集中式 RBAC、可見度和報告,如管理與監視 雲端採用架構 的最佳做法中所述

如需詳細資訊,請檢閱設計 Azure 監視器記錄部署最佳做法。

威脅防護和雲端安全性狀態管理

  • 適用於雲端的 Microsoft Defender 提供統一的安全性管理平臺,作為雲端安全性狀態管理(CSPM)和雲端工作負載保護平臺(CWPP)。 若要提高混合式登陸區域的安全性,您必須保護裝載於 Azure 和其他地方的數據和資產。
  • Microsoft適用於容器的 Defender 會將 適用於雲端的 Microsoft Defender 的功能延伸至已啟用 Azure Arc 的 Kubernetes。 若要提高混合式登陸區域的安全性,請考慮:
    • 使用已啟用 Azure Arc 的 Kubernetes 擴充功能,在 適用於雲端的 Microsoft Defender 中將已啟用 Arc 的 Kubernetes 資源上線。
    • 為所有訂用帳戶啟用適用於容器的 Microsoft Defender 方案。 根據預設,方案會設定為在上線至相同訂用帳戶的任何已啟用Arc的 Kubernetes 叢集上自動部署Defender擴充功能。 您可以選擇性地修改此組態。
    • 確認 Defender 擴充功能已部署在叢集上。
    • 使用安全性資訊和事件管理 (SIEM) 與 適用於雲端的 Microsoft Defender 和 Microsoft Sentinel 整合。

下圖說明已啟用 Azure Arc 的 Kubernetes 叢集資源上 適用於雲端的 Microsoft Defender 的概念參考架構。

描繪已啟用 Azure Arc 的 Kubernetes Microsoft Defender 的圖表。

如果您使用 Microsoft Container Registry 作為儲存和管理容器映像的中央私人 Docker 登錄,您應該 使用適用於容器的 Defender Microsoft 掃描映射是否有弱點

請務必檢閱 網路拓撲和連線能力關鍵設計區域

保護叢集存取

Kubernetes API 會接收要求,以在叢集中執行動作。 由於這是與叢集互動和管理的核心方式,Kubernetes API 是您應該保護的重要部分。 使用 已啟用 Azure Arc 的 Kubernetes 叢集連線,您可以隨時隨地安全地連線到已啟用 Azure Arc 的 Kubernetes 叢集,而不需要在防火牆上啟用任何輸入埠。 存取已啟用 Azure Arc 的 Kubernetes API 伺服器可提供下列優點:

  • 啟用互動式偵錯和疑難解答。
  • 可讓您使用 Azure Pipelines、GitHub Actions 或任何其他裝載 CI/CD 服務的託管代理程式/執行器,而不需要自我裝載的代理程式。
  • 提供 Azure 服務的叢集存取權,以取得 自定義位置 及其上建立的其他資源。

微服務可觀察性和安全性

實作服務網格可讓您對服務連線引進驗證和授權,這會強制執行最低許可權原則,並建立更安全的環境。 根據預設,Pod 會位於一般信任的網路上。 在服務網格實作中,會部署一組側車,做為網路 Proxy。 這些側車會管理東西方通訊、加密流量,以及整體改善流量可觀察性。

服務網格實作可以防範:

  • 未經授權的存取
  • 嗅探攻擊
  • 資料外流
  • 模擬

如需詳細資訊,請檢閱 Open Service Mesh 實作重要設計區域。

下一步

如需混合式和多重雲端雲端旅程的詳細資訊,請參閱下列文章。