idou老師教你學istio 21:基於角色的訪問控制

istio的授權功能,也稱爲基於角色的訪問控制(RBAC),它爲istio服務網格中的服務提供命名空間級別、服務級別和方法級別的訪問控制。基於角色的訪問控制具有簡單易用、靈活和高性能等特性。本文介紹如何在服務網格中爲服務進行授權控制。

·前置條件·

•安裝istio的k8s集羣,啓用認證功能、雙向TLS認證

•部署bookinfo示例應用

下面基於bookinfo應用實例具體介紹如何啓用授權並配置訪問控制策略:

  1. 創建service accout,啓用訪問控制

我們在service account的基礎上啓用訪問控制,爲了給不同的微服務授予不同的訪問權限,需要建立不同的service account,在本例中:

idou老師教你學istio 21:基於角色的訪問控制

創建Service account: bookinfo-productpage,並用它部署 productpage;

創建 Service account:bookinfo-reviews,並用它部署 reviews(其中包含 reviews-v2 和 reviews-v3 兩個版本)。

清理所有現存RBAC規則:

idou老師教你學istio 21:基於角色的訪問控制

此時,用瀏覽器打開bookinfo的productpage頁面,會看到:

idou老師教你學istio 21:基於角色的訪問控制

  1. 啓用Istio授權

使用 RbacConfig 對象啓用 Istio Authorization:

idou老師教你學istio 21:基於角色的訪問控制

idou老師教你學istio 21:基於角色的訪問控制

此時,bookinfo的productpage頁面,會看到:

idou老師教你學istio 21:基於角色的訪問控制

  1. 設置命名空間級的訪問控制

idou老師教你學istio 21:基於角色的訪問控制

這一策略創建service-viewer 的 ServiceRole,通過constraints指定了允許訪問的服務範圍:

idou老師教你學istio 21:基於角色的訪問控制

創建 ServiceRoleBinding 對象,用來把 service-viewer 角色指派給所有 istio-system 和 default 命名空間的服務:

idou老師教你學istio 21:基於角色的訪問控制

用瀏覽器打開bookinfo的productpage頁面,會看到完整的頁面:

idou老師教你學istio 21:基於角色的訪問控制

  1. 配置服務級的訪問控制

清除命名空間級的訪問控制

idou老師教你學istio 21:基於角色的訪問控制

下面在bookinfo中逐步爲服務加入訪問:

1) 允許到productpage服務的訪問

idou老師教你學istio 21:基於角色的訪問控制

這條策略中創建了名稱爲 productpage-viewer的ServiceRole,它允許到 productpage 服務的讀取訪問,並創建命名爲 productpage-viewer的 ServiceRole,將 productpage-viewer 角色賦予給所有用戶和服務

idou老師教你學istio 21:基於角色的訪問控制

此時,用瀏覽器打開bookinfo的productpage頁面,會顯示 Error fetching product details 和 Error fetching product reviews 的錯誤信息:

idou老師教你學istio 21:基於角色的訪問控制
出現上述現象是因爲我們還沒有給productpage授權訪問details 和 reviews 服務,下面兩步修復這個問題。

2) 允許對details和reviews服務的訪問

idou老師教你學istio 21:基於角色的訪問控制

details-reviews-viewer:允許對 details 和 reviews 服務進行只讀訪問

bind-details-review: 把 details-reviews-viewer 角色授予給productpage 服務的 Service account

idou老師教你學istio 21:基於角色的訪問控制
3) 允許對ratings服務的訪問

idou老師教你學istio 21:基於角色的訪問控制

ratings-viewer: 允許對ratings服務的訪問

rind-ratings: 將ratings-viewer角色指派給bookinfo-reviews這個Service account

idou老師教你學istio 21:基於角色的訪問控制

此時,用瀏覽器打開bookinfo的productpage頁面,會看到完整的頁面。

總結:通過上述步驟,我們可以快捷的啓用授權功能,並靈活定製訪問控制策略來滿足不同的安全訪問需求。

相關服務請訪問https://support.huaweicloud.com/cce/index.html?cce_helpcenter_2019

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章