溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

發(fā)布時間:2020-04-30 13:49:39 來源:億速云 閱讀:208 作者:三月 欄目:云計算

本文主要給大家簡單講講實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析主題吧,希望可以給大家?guī)硪恍嶋H幫助。

前言

微服務(wù)架構(gòu)提供了更好的靈活性、可伸縮性以及服務(wù)復(fù)用的能力,但,微服務(wù)也有特殊的安全需求,Istio Security嘗試提供全面的安全解決方案。為了提供靈活的服務(wù)訪問控制,需要雙向 TLS 和細(xì)粒度的訪問策略。Istio 提供兩種類型的身份驗證:傳輸身份驗證和來源身份驗證。通過配置不同級別的認(rèn)證策略,可以快速控制不同的安全訪問粒度。

典型的使用場景:

1.在未啟用雙向TLS的安裝好 Istio 的 Kubernetes 集群中,需要快速啟用全網(wǎng)格雙向TLS;

2.網(wǎng)格內(nèi)某些服務(wù)之間需要使用雙向TLS,可以將這些服務(wù)放入同一命名空間并在命名空間啟用雙向TLS;

3.當(dāng)單個服務(wù)需要啟用TLS時,可以在配置策略中通過spec字段指定;

認(rèn)證策略是對服務(wù)收到的請求生效的,要在雙向 TLS 中指定客戶端認(rèn)證策略,需要在DetinationRule 中設(shè)置 TLSSettings,每個認(rèn)證策略需要和目的地規(guī)則共同生效。下面通過實例來演示在不同存儲范圍內(nèi)配置傳輸身份認(rèn)證策略的過程,來源身份驗證通過spec中的origins字段指定。

環(huán)境準(zhǔn)備:裝好istio的集群,禁用全局雙向TLS;Httpbin應(yīng)用鏡像和sleep應(yīng)用鏡像

1.創(chuàng)建命名空間、部署應(yīng)用

創(chuàng)建3個命名空間:foo、bar、legacy,foo和bar中部署帶sidecar的httpbin應(yīng)用和sleep應(yīng)用,legacy中部署不帶sidecar的httpbin應(yīng)用和sleep應(yīng)用。

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

將sleep作為客戶端,httpbin作為服務(wù)端,驗證客戶端服務(wù)端可達(dá)性

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

2.驗證系統(tǒng)中目前不存在認(rèn)證策略

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

可以看到在foo、bar和legacy命名空間中沒有任何策略和規(guī)則

3.為網(wǎng)格中的所有服務(wù)啟用雙向TLS認(rèn)證

配置網(wǎng)格認(rèn)證策略:

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

配置目的地規(guī)則:

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

需要注意的是,網(wǎng)格范圍內(nèi)的認(rèn)證策略名稱必須是default,其它名稱的策略都會被拒絕和忽視,它的策略類型是MeshPolicy,不同于其它級別的策略類型

這些認(rèn)證策略和目的地規(guī)則有效地配置了所有的sidecars,使服務(wù)在雙向TLS模式下收發(fā)請求。但是對不帶sidecar的服務(wù)并不適用。

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

可以看到上面有兩種連接不適用:從帶有 sidecar 的客戶端到不帶 sidecar 的服務(wù)端的連接以及從不帶 sidecar 的客戶端到帶有 sidecar 的服務(wù)端的連接。

①   為了修復(fù)從帶有 sidecar 的客戶端到不帶 sidecar 的服務(wù)端的連接,可以專門為這些服務(wù)端添加目的地規(guī)則來覆蓋 TLS 設(shè)置:

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

重新測試連接

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

當(dāng)啟用全局雙向 TLS 認(rèn)證時,這種方法也可以用來配置 Kubernetes 的 API 云服務(wù)器。

②   從不帶 sidecar 的客戶端到帶有 sidecar 的服務(wù)端(工作在雙向 TLS 模式)的連接,唯一的選擇是從雙向 TLS 模式切換到 PERMISSIVE 模式,該模式允許服務(wù)端接收 HTTP 或(雙向) TLS 流量

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

從 sleep.legacy 到 httpbin.foo 的請求應(yīng)當(dāng)是成功的,但是到 httpbin.bar 的請求依然會失敗。

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

  1. 為一個命名空間中的所有服務(wù)啟用雙向TLS

可以配置策略為每一個命名空間單獨(dú)啟用雙向 TLS 而不必啟用全局雙向 TLS:
實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

注意:命名空間范圍內(nèi)的策略必須命名為 default,并且不限定任何特定的服務(wù)(沒有 targets 設(shè)置域)

添加相應(yīng)的目的地規(guī)則:
實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

測試連接:

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

由于當(dāng)前配置的策略和目的地規(guī)則只對命名空間foo有效,可以看到,只有從不帶 sidecar 的客戶端 (sleep.legacy) 到 httpbin.foo 的請求會失敗。

5.為單個服務(wù)啟用雙向TLS

你也可以為某個特定的服務(wù)設(shè)置認(rèn)證策略和目的地規(guī)則。執(zhí)行以下命令只為 httpbin.bar 服務(wù)新增一項策略。

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

配置目的地規(guī)則:

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

  1. 同時啟用命名空間層級和服務(wù)層級

假設(shè)我們已經(jīng)為命名空間 foo 中所有的服務(wù)添加了啟用雙向 TLS 的命名空間層級的策略并且觀察到從 sleep.legacy 到 httpbin.foo 的請求都失敗了(見上文)。現(xiàn)在專門為 httpbin 服務(wù)添加額外的策略來禁用雙向 TLS (peers 域留空):

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析

可以看到服務(wù)層級的策略覆蓋了命名空間層級的策略,連接成功。

對于以上關(guān)于實現(xiàn)Istio13:Istio基礎(chǔ)認(rèn)證講析,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會喜歡上這些內(nèi)容的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI