iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
0

前言:

  • 前幾天有稍微介紹過Istio 憑證當時有提到一個內部憑證的東西,今天就來說說有關於內部憑證與如何更新內部憑證的內容以及更新憑證機制與心得。

什麼是內部憑證

  • 顧名思義Istio是一個安全性高的傳輸且建構在Sidecar上的一種網路政策,既然在服務上有了Istio-proxy傳輸,那想當然而傳輸就需要加密,在Istio中做到了服務間的流動也可以透過憑證的機制去做到服務間的加密,這可說是大大提升了安全性的等級。

如何查看內部憑證更換憑證

  • Istio官方文件有提供一隻shell可以實踐查看憑證與更換憑證的實作

1.前置作業下載官方shell

wget https://raw.githubusercontent.com/istio/tools/release-1.5/bin/root-transition.sh
chmod +x root-transition.sh

2.查看憑證到期時間(如先前幾天提過的憑證時間的計算還需要去看看寬限期的設定可參照Istio憑證

./root-transition.sh check-root

3.確認Istio版本 (在Istio 1.0.8 1.1.8以前無法更新憑證)

./root-transition.sh check-version

4.更換憑證(這邊可以說說 更換需要注意的是,即便Istio支援熱更新憑證這件事但當Envoy熱重啟可能會影響到你的cluster內連線中斷的狀況另外更換憑證每個服務時間不一,通常需要一些些時間,所以若需要更換憑證建議在維護時候更換這點滿重要的,可減去不必要的問題發生)

./root-transition.sh root-transition

5.查看是否更新完成(Citadel傳播證書需要一些時間,若有失敗稍等一下即可)

./root-transition.sh verify-certs

6.查看Envoy是否已收到新證書

kubectl exec [YOUR_POD] -c istio-proxy -n [YOUR_NAMESPACE] -- curl http://localhost:15000/certs | head -c 1000

結語:

  • 在Istio中其實我認為憑證的更換是安全的,但也是一件麻煩的事情因為必須注意憑證時間上的到期日,因為憑證會在Istio系統中自動的更新進而導致了你無法確認更換憑證的時間點是否是你需要的時間,這邊通常都會在維護時間以手動方式強制更換,不過在Istio 1.6.X以上版本似乎解決了這問題,這邊埋個伏筆後面再來談談Istio的轉變~

上一篇
Istio 金絲雀
下一篇
Istio rate limit
系列文
淺談 Istio30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言