共用方式為


Azure Arc 所啟用 AKS 中的容器安全性

適用於:Azure Local 22H2 上的 AKS、Windows Server 上的 AKS

本文說明各種方法來保護用來封裝和部署應用程式的容器,並避免在 Azure Arc 所啟用的 AKS 中引入安全性弱點。

容器可提供作業和安全性優點,因為應用程式和服務會在環境中分開。 容器也有助於降低全系統失敗的影響,因為它們的抽象概念,可確保運行時間並防止可能會危害應用程式或服務的攻擊。 容器通常會在主機操作系統之上的抽象層上執行,而抽象概念提供一些分離障礙,以及套用分層防禦模型的機會。

您也可以藉由保護容器管線、應用程式和容器部署環境,來設定持續容器安全性。 下列各節說明實作容器安全性的一些建議做法。

保護映像

若要防止未經授權的存取,請在安全且受信任的登錄上裝載映射。 映像應該具有具有受信任根 CA 的 TLS 憑證,而登錄應該使用具有強身份驗證的角色型訪問控制 (RBAC)。 設計容器組建和傳遞的 CI/CD 時,您應該包含映射掃描解決方案。 映射掃描解決方案可協助識別常見的弱點和暴露程度,並確保不會在沒有補救的情況下部署可惡意探索的映像。

強化主機環境

容器安全性的一個重要層面是強化容器執行中系統的安全性,以及在運行時間執行方式。 容器安全性應著重於整個堆疊,包括您的主機和精靈。 您應該從非重要主機中移除服務,而且不應該在環境中部署不符合規範的容器。 如此一來,只能透過容器進行存取,而控制會集中至容器精靈,從受攻擊面移除主機。 當您使用 Proxy 伺服器來存取您的容器時,這些步驟特別有用,這可能會意外略過您的容器安全性控制。

限制容器資源

當容器遭到入侵時,攻擊者可能會嘗試使用基礎主機資源來執行惡意活動。 最好設定記憶體和CPU使用量限制,以將缺口的影響降到最低。

正確保護秘密

秘密是一個物件,其中包含可能需要在主機與容器之間傳遞的敏感性資訊;例如,密碼、SSL/TLS 憑證、SSH 私鑰、令牌、連接字串 和其他不應以純文本傳輸或未加密的數據。 您應該將所有秘密從映像中保留出來,並透過容器協調流程引擎或外部秘密管理員加以掛接。

練習隔離

使用隔離,且不會使用特殊許可權的使用者或根使用者,在容器中執行應用程式。 避免以特殊許可權模式執行容器,因為這樣做可讓攻擊者在容器遭到入侵時輕鬆提升許可權。 瞭解容器中根使用者的 UID(唯一識別碼)和 GID(群組識別碼),可讓攻擊者存取和修改主電腦上根目錄所寫入的檔案。 此外,也必須使用最低許可權原則,其中應用程式只能存取所需的秘密。 您可以建立應用程式使用者來執行應用程式程式。

部署運行時間安全性監視

由於即使在採取防範基礎結構攻擊的預防措施之後,仍有可能遭到入侵,因此請務必持續監視和記錄應用程式的行為,以防止和偵測惡意活動。 Prometheus 之類的工具提供有效的方法來監視您的基礎結構。

下一步