您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么使用Sidecar代理加強Kubernetes安全性,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
導語
Sidecar可以幫助簡化應用程序開發,但是每種方法都有其自身的安全注意事項。
典型的應用程序需要共同的功能,例如日志記錄,監視,跟蹤,配置和安全性。這些功能可以作為應用程序代碼的一部分實現,也可以作為單獨的進程在應用程序代碼之外運行。
每種選擇都有優點和缺點,但是在現代的云原生方法中,趨勢是將那些常見任務與應用程序核心功能代碼分離。這種脫鉤的原理是在應用程序堆棧常見任務中創建一致性,這在大型分布式應用程序中至關重要。它還消除了對每種語言的依賴和維護專用庫的需要,從而使編程語言的選擇更加靈活。
專為微服務而設計的容器架構是單獨維護的,并用不同的語言編寫,從而使開發人員無需重寫相似的開發代碼來實現單個功能。
例如,如果開發團隊正在用Go編寫主應用程序,并且存在用Python編寫的現有功能來收集日志和指標,那么將Python代碼卸載到Sidecar中的效率要比要求開發團隊將其重寫為走。通用任務與部署在任何核心應用程序服務旁邊的獨立統一服務的解耦稱為“ sidecar”架構。
邊車在很大程度上取決于主要應用。附加在sidecar中的外圍任務只有在附加到主應用程序后才能實現,因此對于應用程序的每個實例,sidecar實例都與它并排部署。裝載在Sidecar上的每個外圍任務都是單獨的功能,可以獨立添加或刪除,以任何語言編寫和單獨更新,而不會影響主應用程序代碼。
它們獨立于運行時和編程語言運行,并且可以訪問與主應用程序相同的資源。在Kubernetes集群中,可以將sidecar部署為Kubernetes DaemonSet或sidecar代理。這些選項各有利弊。
守護程序集
Kubernetes中的經典方法是使用DaemonSet。DaemonSet是Pod的副本,群集中的所有節點都在此Pod上運行。創建包含共享功能(例如日志記錄指標,性能或配置)的容器或容器時,它將在群集中的每個節點上運行,并將這些功能提供給共享該節點的其他容器。
實際上,例如,在收集度量標準時,一個DaemonSet Pod會為共享同一節點的所有Pod提供服務,而不管它們的類型,功能以及它們是否正在運行副本集或彼此獨立。
Sidecar代理
Sidecar代理提供了更精細的方法。Sidecar代理中的功能在每個Pod中分別提供微服務。代理容器在包含微服務的Pod內部運行,并且僅承載該微服務所需的功能,從而使代理保持輕量級。
DaemonSet與Sidecar代理
結構上的考慮:在高度分隔雜物箱的環境中(例如,一個用于日志記錄的容器,另一個用于度量收集的容器和另一個用于性能的容器),每個吊艙必須攜帶三個雜物容器。這導致資源利用效率低下,因為大部分資源正在完成相同的常見任務,而不是為核心應用程序提供服務。在這種情況下,使用DaemonSet而不是每個吊艙使用多個容器更為有效。
可用性:部署新的Sidecar容器需要重新啟動整個Pod。每個吊艙中都有多個容器,要保持交付效率,就需要專注于核心服務的DevOps團隊與從事常見任務以及此類同步的DevOps團隊之間保持緊密的同步。實現這種同步無疑是很難實現的。
如果開發周期不同步,則在部署新的DaemonSet或更新現有的DaemonSet時會導致潛在的停機時間。
DaemonSets的安全性
使用DaemonSet,可以在容器級別配置安全設置,其中包含特權定義,卷訪問權限,資源分配,二進制授權以及與容器部署相關的任何內容的詳細信息。
但是,在DaemonSet環境中,容器作為特權容器運行。盡管它簡化了容器部署或容器的主機保護的驗證,但它對容器行為的監視提出了挑戰,因為相同的容器(也稱為副本集)可能在不同的節點上運行。
當對多個容器應用類似的策略時,惡意行為者在容器之間橫向移動將構成永久風險。它還無法解決用于節點間通信的基于網絡的隔離和隧道加密。
Sidecar代理的安全性
為了保護網絡層,sidecar代理是理想的。從主應用程序卸載后,它們:
與語言無關,因此無需使加密適應庫中的每種語言。
支持創建統一和/或目標特定策略和特權訪問。
管理隧道加密。
管理內部集群通信。
但是,這些代理沒有DaemonSet功能來監視和驗證容器級別的安全設置。
最大化容器安全
為了充分利用Sidecar代理和DaemonSet安全功能的優勢,可以使用Kubernetes本機機制,稱為準入控制器。將專用的準入控制器與Sidecar代理結合使用,可以創建解決所有潛在容器威脅選項的整體安全套件。
使用Kubernetes,準入控制器用戶可以為Pod創建和部署設置細粒度的授權。在容器級別,可以利用它來阻止容器作為根容器運行,或者確保容器的根文件系統被鎖定為只讀模式。它可以限制僅從批準的特定注冊表中提取圖像,并拒絕未知的圖像注冊表。
使用Kubernetes準入控制器和服務網格控制器
為了增強運行時安全性,使用專用的準入控制器可以管理關鍵的安全功能,例如:
二進制授權:策略執行的瓶頸,將您環境中的部署限制為已簽名和授權的映像
連續漏洞掃描:在部署之前和之后,連續掃描檢查是否存在超出預定義閾值的漏洞
在Pod部署設置中配置Pod安全策略(PSP)
使用Selinux,Seccom和AppArmor管理Pod部署
下一代Kubernetes工作負載保護解決方案從CI / CD管道的上游啟動,自動識別合法工作負載。運行時策略確保僅將這些工作負載部署到群集。
這樣,通過使用與網絡基礎架構分離的基于身份的自動工作負載安全性替換多個碎片化的防火墻,安全組和ACL,可以簡化和加速應用程序的安全性。
看完上述內容,你們對怎么使用Sidecar代理加強Kubernetes安全性有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。