您好,登錄后才能下訂單哦!
本文主要給大家簡單講講部署Istio實現雙向TLS遷移講析,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔部署Istio實現雙向TLS遷移講析主題吧,希望可以給大家帶來一些實際幫助。
在Istio中,雙向TLS是傳輸身份驗證的完整堆棧解決方案,它為每個服務提供可跨集群的強大身份、保護服務到服務通信和最終用戶到服務通信,以及提供密鑰管理系統。本文闡述如何在不中斷通信的情況下,把現存Istio服務的流量從明文升級為雙向TLS。
使用場景
在部署了Istio的集群中,使用人員剛開始可能更關注功能性,服務之間的通信配置的都是明文傳輸,當功能逐漸完善,開始關注安全性,部署有sidecar的服務需要使用雙向TLS進行安全傳輸,但服務不能中斷,這時,一個可取的方式就是進行雙向TLS的遷移。
下面通過實例演示如何進行雙向TLS的遷移。
環境準備
? 已經部署好Istio的集群,沒有啟用雙向TLS
? 創建三個命名空間,分別是 foo、bar 以及 legacy
? 在 foo、bar 中分別部署注入 Istio sidecar 的 httpbin 以及 sleep 應用,在legacy中部署未注入sidecar的sleep應用
檢查部署情況
可以看到,從任意一個命名空間選一個sleep應用,發送http請求到httpbin.foo,都能請求成功。這個時候,使用的是明文傳輸。
檢查系統中的認證策略和目標規則:
可以看到,系統中在foo、bar 以及 legacy命名空間下沒有認證策略和目標規則。
下面開始通過配置服務端和客戶端來升級傳輸過程:
向服務端注入以下策略:
上圖策略中,模式為PERMISSIVE,這個模式讓云服務器能夠同時接收明文和雙向TLS流量,具體使用哪種方式由實際配置決定。再次驗證網絡通信,可以看到所有請求都成功,目前使用的還是明文的方式。
通過設置下圖所示DestinationRule,為服務端添加目的地規則:
這些規則生效后,客戶端sleep.foo 和 sleep.bar 就會開始使用雙向 TLS 和 httpbin.foo 進行通信了,而sleep.legacy因為沒有注入sidecar,因此不受DestinationRule 配置影響,還是使用明文來和httpbin.foo通信。
通過發送請求驗證上述分析,可以看到三個應用都訪問成功:
通過上述方式,可以把不同的客戶端和服務端之間流量都遷移到雙向TLS。當系統中的流量都遷移完畢,并且希望所有應用之間都通過雙向TLS進行安全傳輸,我們可以將應用間的傳輸鎖定為雙向TLS。具體操作方式如下:將配置的認證策略mtls的模式修改為STRICT,這樣,服務端就只運行使用雙向TLS這一種方式接收流量。
鎖定之后,再發送請求驗證通信,可以看到,sleep.legacy 的請求失敗,這是因為sleep.legacy沒有注入sidecar,無法進行雙向TLS傳輸。
總結:通過上述演示,可以了解到,將服務通信從明文流量傳輸遷移到雙向TLS傳輸的過程是十分方便的,可以根據服務的實際需求按需配置,不會對服務的正常通信產生任何影響。
部署Istio實現雙向TLS遷移講析就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。