簡體   English   中英

我可以使用大使在Kubernetes集群中對服務到服務通信進行身份驗證嗎?

[英]Can I use the Ambassador to authenticate service-to-service communication inside a Kubernetes cluster?

我有一個提供服務的Kubernetes集群,我使用Ambassador作為外界和我的服務之間的API網關。

通過大使,我知道我可以使用一項服務來檢查傳入請求的身份驗證和授權,但這僅適用於群集外的請求嗎?

我也想攔截服務到服務的呼叫。

如果您不能,我會感到驚訝。

這個答案需要一些術語,以避免迷失在單詞湯中。

  • App-A是集群內Service的使用者,並且將向大使進行身份驗證
  • App-Z是集群內Service的提供者(選擇器將針對其Pod
  • 該K8S Service的應用-Z,我們會打電話給z-servicez命名空間,的FQDN z-service.z.svc.cluster.local

好像你可以使用它的V型主機支持 ,並教它兌現了在集群虛擬主機(上述FQDN),然后更新z-service選擇瞄准吊艙大使 ,而不是底層的應用-Z豆莢。

從app-A的角度來看,唯一要更改的地方是它現在必須提供用於聯系z-service.z.svc.cluster.local身份驗證。

如果不進一步研究Ambassador的設置,就很難知道此時Ambassador是否會正常工作,或者您是否隨后需要“實施” Service -例如z-for-real.z.svc.cluster.local使大使知道如何找到實際的app-Z Pods。

我現在有同樣的問題。 大使會將每個請求路由到身份驗證服務(如果提供),身份驗證服務可以是任何東西。 因此,您可以設置http基本身份驗證,oauth,jwt身份驗證等。 接下來要提到的重要一點是您的服務可能使用基於標頭的路由( https://www.getambassador.io/reference/headers )。 僅當存在承載者(或類似的東西)時,該請求才對您的服務有效,否則將失敗。 在您的服務中,您可以檢查權限等。 因此,所有大使都可以為您提供幫助,但是您仍然需要自己編寫一些程序。

如果您希望從一開始就准備好東西或更高級的東西,可以嘗試https://github.com/ory/oathkeeperhttps://istio.io

如果您已經找到了解決方案,那將很有趣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM