bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

idou老師教你學(xué)Istio16:如何用Istio實(shí)現(xiàn)微服務(wù)間的訪問控制

摘要
使用 Istio 可以很方便地實(shí)現(xiàn)微服務(wù)間的訪問控制。本文演示了使用 Denier 適配器實(shí)現(xiàn)拒絕訪問,和 Listchecker 適配器實(shí)現(xiàn)黑白名單兩種方法。

目前創(chuàng)新互聯(lián)建站已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、江門網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

使用場(chǎng)景

有時(shí)需要對(duì)微服務(wù)間的相互訪問進(jìn)行控制,比如使?jié)M足某些條件(比如版本)的微服務(wù)能夠(或不能)調(diào)用特定的微服務(wù)。

訪問控制屬于策略范疇,在 Istio 中由 Mixer 組件實(shí)現(xiàn)。

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

Mixer拓?fù)鋱D,來源官方文檔

如上圖所示,服務(wù)的外部請(qǐng)求會(huì)被 Envoy 攔截,每個(gè)經(jīng)過 Envoy 的請(qǐng)求都會(huì)調(diào)用 Mixer,為 Mixer 提供一組描述請(qǐng)求和請(qǐng)求周圍環(huán)境的屬性。Mixer 進(jìn)行前置條件檢查和配額檢查,調(diào)用相應(yīng)的 adapter 做處理,并返回相應(yīng)結(jié)果。Envoy分析結(jié)果,決定是否執(zhí)行請(qǐng)求或拒絕請(qǐng)求。從而實(shí)現(xiàn)了策略控制。

環(huán)境準(zhǔn)備

在 Kubernetes 集群上部署 Istio

部署 Bookinfo 示例應(yīng)用

配置 Bookinfo 應(yīng)用各個(gè)微服務(wù)的 destinationrule 和 virtualservice。其中 reviews 服務(wù)的 destinationrule 和 virtualservice 配置如下:

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

按上圖配置后,對(duì)于 reviews 服務(wù)的請(qǐng)求,來自用戶 “kokokobe” 的請(qǐng)求會(huì)被路由到v2 版本,其他用戶的請(qǐng)求會(huì)被路由到 v3 版本。

使用 Denier 適配器實(shí)現(xiàn)簡(jiǎn)單的訪問控制

使用 Istio 對(duì)微服務(wù)進(jìn)行訪問控制時(shí),可以使用 Mixer 中的任何屬性。這是一種簡(jiǎn)單的訪問控制,實(shí)現(xiàn)基礎(chǔ)是通過 Mixer 選擇器拒絕某些條件下的請(qǐng)求。

比如,上文所述的 Bookinfo 應(yīng)用中的 ratings 服務(wù)會(huì)被多個(gè)版本的 reviews 服務(wù)訪問。下面的示例中我們將會(huì)切斷來自 v3 版本的 reviews 服務(wù)對(duì) ratings 服務(wù)的調(diào)用。

  1. 用瀏覽器打開 Bookinfo 的 productpage(http://$GATEWAY_URL/productpage)

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

如上圖所示,如果用 “kokokobe” 的用戶登錄,能看到每條 review 下面的黑色星星,說明此時(shí) ratings 服務(wù)被 v2 版本的 reviews 服務(wù)調(diào)用。

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

從上面兩張圖可以看出,如果使用其他用戶登錄(或未登錄),能看到每條 review 下面的紅色星星,說明此時(shí) ratings 服務(wù)被 v3 版本的 reviews 服務(wù)調(diào)用。

  1. 創(chuàng)建 denier 適配器,拒絕來自 v3 版本的 reviews 服務(wù)對(duì) ratings 服務(wù)的調(diào)用

編輯 mixer-rule-deny-label.yaml 內(nèi)容如下:

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

這也是Mixer的adapter的標(biāo)準(zhǔn)配置格式,一般需要配置三種類型的資源:

  1. 配置一組 handler。Handler是配置好的 adapter 的實(shí)例,adapter 封裝了 Mixer 和特定基礎(chǔ)設(shè)施后端之間的接口。

  2. 基于 template 配置一組 instance。Instance 定義了如何將 Envoy 提供的請(qǐng)求屬性映射到 adapter 的輸入。

  3. 配置一組規(guī)則。這些規(guī)則描述了何時(shí)調(diào)用特定的 handler 及 instance。

在這里其中定義了一條名為 denyreviewsv3 的規(guī)則,一個(gè) denier 類型的 handler,一個(gè)checknothing 類型的模板的實(shí)例。

在 denyreviewsv3 規(guī)則中,方框內(nèi)的條件表達(dá)式匹配的條件是:來自 reviews 服務(wù),version 為 v3 ,目標(biāo)為 ratings 服務(wù)的請(qǐng)求。這條規(guī)則使用 denier 適配器拒絕來自 v3 版本的 reviews 服務(wù)的請(qǐng)求。

這個(gè) denier 適配器會(huì)拒絕符合上述規(guī)則的請(qǐng)求。可以預(yù)先指定 denier 適配器的狀態(tài)碼和消息,如方框中所示。

然后執(zhí)行如下命令創(chuàng)建上述規(guī)則的 denier 適配器:

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

  1. 在瀏覽器中刷新 productpage 頁(yè)面

如果已經(jīng)登出或者使用不是 “kokokobe” 的用戶身份登錄,不再看到紅色星星,因?yàn)関3版本的 reviews 服務(wù)對(duì) ratings 服務(wù)的訪問已經(jīng)被拒絕了。

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

相反,如果使用 “kokokobe” 用戶登錄,仍然能夠看到黑色星星。因?yàn)樵撚脩羰褂玫氖?v2 版本的 reviews 服務(wù),不符合拒絕的條件。

通過listchecker適配器實(shí)現(xiàn)黑白名單

Istio 也支持基于屬性的黑名單和白名單。下面的白名單配置和上一節(jié)的 denier 配置是等價(jià)的,拒絕來自 v3 版本的 reviews 服務(wù)的請(qǐng)求。

  1. 刪除上一節(jié)配置的 denier 規(guī)則

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

  1. 在登出狀態(tài)下瀏覽 Bookinfo 的 productpage(http://$GATEWAY_URL/productpage)

此時(shí)能看到紅星圖標(biāo)。在完成下述步驟之后,只有在使用 “kokokobe” 的身份登錄之后才能看到星形圖標(biāo)。

  1. 創(chuàng)建包含 v2 版本白名單的 listchecker 適配器

編輯 whitelist-handler.yaml 內(nèi)容如下:

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

通常會(huì)在外部維護(hù)黑白名單的列表,然后指定 providerUrl 參數(shù)進(jìn)行異步獲取。在這個(gè)例子中,我們使用 overrides 字段提供一個(gè)靜態(tài)的黑白名單列表。

然后運(yùn)行如下命令創(chuàng)建 listchecker 適配器:

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

  1. 創(chuàng)建一個(gè) listentry 模板的實(shí)例

Listentry 模板可以用來判別一個(gè)字符串是否存在于一個(gè)列表中,本例中我們使用它來判別版本標(biāo)簽是否存在于白名單中。

編輯 appversion-instance.yaml 內(nèi)容如下:

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

然后運(yùn)行如下命令:

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

  1. 為 ratings 服務(wù)啟用 whitelist 檢查功能

編輯 checkversion-rule.yaml 內(nèi)容如下:

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

然后運(yùn)行如下命令:

idou老師教你學(xué)Istio 16:如何用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制

  1. 在瀏覽器中刷新 productpage 頁(yè)面

如果已經(jīng)登出或者使用不是 “kokokobe” 的用戶身份登錄,看不到星形圖標(biāo);如果使用 “kokokobe” 用戶登錄,仍然能夠看到黑色星星。

總結(jié)

通過上述示例,可以發(fā)現(xiàn)使用 Istio 實(shí)現(xiàn)微服務(wù)間的訪問控制非常方便。既可以使用denier 適配器實(shí)現(xiàn)簡(jiǎn)單的訪問控制,也可以通過listchecker 適配器實(shí)現(xiàn)較復(fù)雜的黑白名單。

相關(guān)服務(wù)請(qǐng)?jiān)L問https://support.huaweicloud.com/cce/index.html?cce_helpcenter_2019

網(wǎng)站題目:idou老師教你學(xué)Istio16:如何用Istio實(shí)現(xiàn)微服務(wù)間的訪問控制
本文地址:http://vcdvsql.cn/article28/gjoejp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航定制開發(fā)域名注冊(cè)軟件開發(fā)定制網(wǎng)站App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司