成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 Istio 保護(hù)您的微服務(wù)

開(kāi)發(fā) 開(kāi)發(fā)工具
Istio 是一個(gè)開(kāi)源項(xiàng)目,旨在管理云上微服務(wù)之間的通信。它獨(dú)立于平臺(tái),但通常且主要與 Kubernetes 一起使用。Istio 提供了多項(xiàng)關(guān)鍵功能,例如流量管理、安全性和可觀察性。

 

本文轉(zhuǎn)載自微信公眾號(hào)「新鈦云服」,作者祝祥 。轉(zhuǎn)載本文請(qǐng)聯(lián)系新鈦云服公眾號(hào)。

介紹

Istio 是一個(gè)開(kāi)源項(xiàng)目,旨在管理云上微服務(wù)之間的通信。它獨(dú)立于平臺(tái),但通常且主要與 Kubernetes 一起使用。Istio 提供了多項(xiàng)關(guān)鍵功能,例如流量管理、安全性和可觀察性。

在本文中,我們將重點(diǎn)介紹 Istio 的安全能力,包括增強(qiáng)認(rèn)證、透明 TLS 加密、身份驗(yàn)證和授權(quán)。我們將 Istio 部署在 Kubernetes 集群上,并逐步介紹 Istio 安全功能,討論這些功能如何保護(hù)您的服務(wù)。

示例

我們使用 Istio 提供的示例應(yīng)用 Bookinfo[1] 來(lái)演示本文中 Istio 的功能。讓我們來(lái)看看 Istio 安全和 Bookinfo 的架構(gòu)。

ISTIO 安全架構(gòu)

Istio 安全涉及多個(gè)組件;下圖顯示了該架構(gòu)。在控制平面的 Istiod 組件中,我們有一個(gè) CA(Certificate Authority)來(lái)管理證書(shū),相關(guān)配置通過(guò) API 服務(wù)器發(fā)送到數(shù)據(jù)平面(Envoy)。Envoy 作為策略執(zhí)行點(diǎn) (PEP) 來(lái)保護(hù)網(wǎng)格中客戶端和服務(wù)器之間或網(wǎng)格外部和內(nèi)部之間的通信安全。

Bookinfo應(yīng)用架構(gòu)

Bookinfo 應(yīng)用程序分為四個(gè)獨(dú)立的微服務(wù):

  • productpage:調(diào)用詳細(xì)信息和評(píng)論微服務(wù)
  • details:包含書(shū)籍詳細(xì)信息
  • eviews:調(diào)用 ratings 微服務(wù)生成書(shū)評(píng)
  • ratings:包含伴隨書(shū)評(píng)的排名信息

評(píng)論微服務(wù)共有三個(gè)版本;productpage 以循環(huán)方式訪問(wèn)這些版本:

· 版本 v1 不調(diào)用ratings服務(wù)。

· 版本 v2 調(diào)用ratings服務(wù)并將每個(gè)評(píng)級(jí)顯示為 1 到 5 顆黑星。

· 版本 v3 調(diào)用ratings服務(wù)并將每個(gè)評(píng)級(jí)顯示為 1 到 5 顆紅星。

該應(yīng)用程序的端到端架構(gòu)如下所示。這些是沒(méi)有 Istio sidecar 部署的原始純服務(wù)。

ISTIO 認(rèn)證

如果您已經(jīng)安裝了 Istio,則無(wú)需對(duì)應(yīng)用程序進(jìn)行任何更改即可運(yùn)行示例。或者,您可以簡(jiǎn)單地在支持 Istio 的環(huán)境中配置和運(yùn)行服務(wù),并在每個(gè)服務(wù)旁邊注入 Envoy sidecar。生成的部署如下所示:

這里我們特意部署了沒(méi)有 sidecar 的 review-v2 和其他有 sidecar 的服務(wù)。這可以通過(guò)設(shè)置 Kubernetes 命名空間標(biāo)簽“istio-injection=enabled/disabled”輕松控制。一旦我們?yōu)?Pod 注入一個(gè) sidecar 或者只是設(shè)置一個(gè)單一的邊緣代理作為入口網(wǎng)關(guān),Istio 身份就會(huì)生效。

Istio 身份模型使用一流的服務(wù)身份來(lái)確定請(qǐng)求來(lái)源的身份。在 Kubernetes 上,Istio 使用 Kubernetes 服務(wù)帳戶作為身份。下圖展示了 Istio 的身份配置工作流程。

  • 啟動(dòng)一個(gè)注入了 Istio 的 Pod,它還會(huì)啟動(dòng)一個(gè) Envoy 實(shí)例作為 Pod 的 sidecar。
  • 當(dāng)工作負(fù)載啟動(dòng)時(shí),Envoy 通過(guò) Envoy secret發(fā)現(xiàn)服務(wù) (SDS) API 從 Istio 代理請(qǐng)求證書(shū)。
  • Istio 代理將證書(shū)簽名請(qǐng)求 (CSR) 及其憑據(jù) (JWT) 發(fā)送到 istiod 進(jìn)行簽名。
  • Istio 代理將從 istiod 收到的以 SPIFFE 格式簽名的證書(shū)通過(guò) Envoy SDS API 發(fā)送給 Envoy。

這里的證書(shū)是x.509,SPIFFE格式的URL作為x.509證書(shū)的擴(kuò)展字段進(jìn)行識(shí)別。SPIFFE 是開(kāi)源的;k8s環(huán)境下Istio身份的格式類似于“spiffe:///ns//sa/”。我們可以通過(guò)使用 Istioctl 工具并手動(dòng)解析證書(shū)中的 Spiffe URL 來(lái)獲取證書(shū)。我們還可以轉(zhuǎn)儲(chǔ)并檢查 sidecar 的配置以驗(yàn)證 URL 是否已注入其中。

雙向 TLS

Istio 支持雙向 TLS 來(lái)加密服務(wù)之間傳輸?shù)臄?shù)據(jù)。在 Bookinfo 應(yīng)用程序中,所有服務(wù)最初都是基于純 HTTP 協(xié)議相互通信的,其中數(shù)據(jù)沒(méi)有加密。當(dāng)一個(gè)工作負(fù)載使用雙向 TLS 認(rèn)證策略向另一個(gè)工作負(fù)載發(fā)送請(qǐng)求時(shí),工作負(fù)載和 sidecar 之間的數(shù)據(jù)仍然是純文本的,而客戶端 Envoy 和服務(wù)器端 Envoy 建立雙向 TLS 連接。

對(duì)等認(rèn)證

應(yīng)用對(duì)等身份驗(yàn)證策略(如上所示)后,Istio 會(huì)自動(dòng)將兩個(gè) PEP 之間的所有流量升級(jí)為雙向 TLS。由于默認(rèn)情況下啟用了 Istio 的自動(dòng) mTLS,因此仍然可以通過(guò) HTTP 訪問(wèn) Reviews-v2。Istio 中的 Auto-mTLS 有助于確定客戶端 Sidecar 可以發(fā)送的流量類型:

如果配置了 DestinationRule,則信任它

如果服務(wù)器有 sidecar 并允許 mTLS,發(fā)送 mTLS – review-v1 & v3

否則,發(fā)送純文本 – review-v2

對(duì)等身份驗(yàn)證僅定義服務(wù)器sidecar可以接收哪種類型的流量。Reviews-v2 沒(méi)有 sidecar,所以客戶端向它發(fā)送純文本。服務(wù)器端默認(rèn)處于 PERMISSIVE 模式,這意味著服務(wù)器端可以接受純文本和 mTLS。這在開(kāi)始將集群與服務(wù)網(wǎng)格集成時(shí)非常有用,因?yàn)椴僮鲉T通常無(wú)法同時(shí)為所有客戶端安裝 Istio sidecar,或者甚至沒(méi)有權(quán)限在某些客戶端上這樣做。

目的規(guī)則

與對(duì)等身份驗(yàn)證相比,目標(biāo)規(guī)則定義了客戶端 Sidecar 可以發(fā)送的流量類型。應(yīng)用目標(biāo)規(guī)則策略(如上所示)后,review-v2 無(wú)法再訪問(wèn),因?yàn)槟繕?biāo)規(guī)則限制 productpage sidecar 發(fā)送 mTLS 流量,而 review-v2 只能接收純文本。

保護(hù)入口流量

Istio 支持通過(guò)入口網(wǎng)關(guān)將安全的 HTTPS 服務(wù)暴露給外部流量,因此無(wú)需更改內(nèi)部協(xié)議。它總共支持四種模式來(lái)在入口啟用 TLS。SIMPLE/MUTUAL 和 ISTIO_MUTUAL 對(duì)傳入的請(qǐng)求執(zhí)行 TLS 終止;它們用于配置對(duì) HTTP 服務(wù)的

HTTPS 入口訪問(wèn)。PASSTHROUGH 和 AUTO_PASSTHROUGH 僅按原樣傳遞入口流量,而不是使用 TLS 終止。

授權(quán)入口流量

添加要求最終用戶 JWT 用于入口網(wǎng)關(guān)的請(qǐng)求身份驗(yàn)證策略。如果您在授權(quán)標(biāo)頭中提供令牌(其隱式默認(rèn)位置),則 Istio 將使用公鑰集驗(yàn)證令牌,并在不記名令牌無(wú)效時(shí)拒絕請(qǐng)求。但是,接受沒(méi)有令牌的請(qǐng)求。

要拒絕沒(méi)有有效令牌的請(qǐng)求,請(qǐng)?zhí)砑右粋€(gè) AuthorizationPolicy 規(guī)則,為具有請(qǐng)求主體的請(qǐng)求指定 ALLOW 操作,在上面的示例中顯示為 requestPrincipals。requestPrincipals 僅在提供有效的 JWT 令牌時(shí)可用。因此,該規(guī)則只允許具有有效令牌的請(qǐng)求。

應(yīng)用RequestAuthentication,如上圖:

  • 使用有效的 JWT 令牌請(qǐng)求 √
  • 請(qǐng)求沒(méi)有 JWT 令牌 √
  • 使用無(wú)效的 JWT 令牌請(qǐng)求 ×

應(yīng)用AuthorizationPolicy,如上圖

  • 使用有效的 JWT 令牌請(qǐng)求 √
  • 沒(méi)有 JWT 令牌的請(qǐng)求 ×
  • 使用無(wú)效的 JWT 令牌請(qǐng)求 ×

網(wǎng)格流量中的授權(quán)

AuthorizationPolicy 不僅可以應(yīng)用于入口網(wǎng)關(guān),還可以用于控制網(wǎng)格內(nèi)部的訪問(wèn)。授權(quán)策略規(guī)范包括選擇器、操作和規(guī)則列表:

· 選擇器字段指定策略的目標(biāo)

· action 字段指定是允許還是拒絕請(qǐng)求;默認(rèn)值為“允許”

· 規(guī)則指定何時(shí)觸發(fā)動(dòng)作

  • 規(guī)則中的 from 字段指定請(qǐng)求的來(lái)源
  • 規(guī)則中的 to 字段指定請(qǐng)求的操作
  • when 字段指定應(yīng)用規(guī)則所需的條件

如果應(yīng)用拒絕所有 AuthorizationPolicy,則默認(rèn)命名空間下的服務(wù)之間的所有請(qǐng)求都將被拒絕。如果您隨后應(yīng)用 productpage-viewer 如下例所示,它允許對(duì) productpage 服務(wù)進(jìn)行“GET”操作。

與productpage-viewer AuthorizationPolicy相比,reviews-viewer在spec規(guī)則的source字段多了一項(xiàng)配置;它指定只允許具有“[“cluster.local/ns/default/sa/bookinfo-productpage”]”服務(wù)帳戶的服務(wù)發(fā)送“GET”請(qǐng)求。一一應(yīng)用其他 AuthorizationPolicy 并測(cè)試產(chǎn)品頁(yè)面。Bookinfo 服務(wù)提供的不同信息都會(huì)再次出現(xiàn)在您的網(wǎng)頁(yè)上。圖片

概括:Istio 自動(dòng)提供強(qiáng)大的識(shí)別功能。它還具有雙向 TLS,可對(duì)流量進(jìn)行加密以抵御中間人攻擊。Auto-mTLS 幫助您加入 Istio,PeerAuthentication 和 DestinationRule 簡(jiǎn)化了對(duì)配置進(jìn)行細(xì)微調(diào)整的過(guò)程。此外,Istio 提供了靈活的服務(wù)訪問(wèn)控制,因此您可以使用 RequestAuthentication、AuthorizationPolicy 等來(lái)設(shè)置細(xì)粒度的訪問(wèn)策略。

參考

· Istio 官方文檔:https ://istio.io/latest/docs/

· https://istio.io/latest/docs/examples/bookinfo/

原文

https://01.org/blogs/luyaozhong/2021/secure-your-microservices-istio

 

責(zé)任編輯:武曉燕 來(lái)源: 新鈦云服
相關(guān)推薦

2022-08-16 08:19:04

Sentinel微服務(wù)

2023-05-08 07:05:26

2019-01-10 13:17:15

微服務(wù)容器微服務(wù)架構(gòu)

2023-10-04 19:01:44

微服務(wù)雪崩故障

2021-11-14 11:53:05

Linux 系統(tǒng)攻防Linux 系統(tǒng)

2021-10-19 14:02:12

服務(wù)器SpringSecurity

2012-03-01 11:47:01

2020-08-10 08:07:59

IstioK8s微服務(wù)

2022-02-12 21:08:56

微服務(wù)SpringIstio

2016-09-08 14:40:44

2019-09-25 07:17:42

KubernetesIstio測(cè)試

2022-07-17 11:45:39

微服務(wù)架構(gòu)

2018-11-07 10:00:00

微服務(wù)Service MesIstio

2023-01-30 15:55:08

2017-07-03 09:50:07

Spring Clou微服務(wù)架構(gòu)

2021-12-26 23:34:00

微服務(wù)Istio壓縮

2012-06-14 10:11:05

2022-05-13 14:01:46

微服務(wù)架構(gòu)安全微服務(wù)

2024-03-14 11:12:28

2022-12-20 16:10:31

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久久91精品国产一区二区三区 | 亚洲精品91| 99在线免费视频 | 欧美视频xxx| 亚洲成人免费 | 欧美激情精品久久久久 | 亚洲一级黄色 | 国产伦精品一区二区三区高清 | 一级片免费网站 | 久久午夜精品福利一区二区 | 国产日韩欧美一区 | 老司机67194精品线观看 | 午夜亚洲| 国产中的精品av涩差av | 欧美日韩在线视频一区 | 中文字幕 在线观看 | 日韩免费在线 | 日本人和亚洲人zjzjhd | 欧美又大粗又爽又黄大片视频 | 国产99精品 | 91麻豆精品国产91久久久资源速度 | 欧美亚洲视频 | 久久久久久艹 | 国产精品成人一区二区三区夜夜夜 | 日韩久久久久 | 亚洲视频免费观看 | 四虎精品在线 | 久久久精品一区 | 欧美一级欧美三级在线观看 | 国产四虎 | 久久久久久久国产精品视频 | 久久久久av | 亚洲一区有码 | 中文字幕av在线 | 97色在线观看免费视频 | 欧美xxxx做受欧美 | 在线观看视频你懂得 | 国产中文字幕在线观看 | 国产精品久久久久久吹潮 | 欧美福利一区 | 中文日本在线 |