我正計劃構建一個包含許多微服務的 K8s 集群(每個都在 pod 中運行,服務確保通信)。我試圖了解如何確保這些微服務之間的通信是安全的。我所說的通信是指微服務 A 和微服務 B 的 API 之間的 HTTP 呼叫。
通常,我會實作一個 OAuth 流程,其中身份驗證服務器將接收一些憑據作為輸入并回傳一個 JWT。然后客戶端可以在任何后續呼叫中使用這個 JWT。
我希望 K8s 有一些可以生成令牌(如 JWT)的內置身份驗證服務器,但我似乎找不到。K8s 確實對其 API 服務器進行了身份驗證,但這似乎只對執行 Kubernetes 特定操作的呼叫進行身份驗證,例如擴展 pod 或獲取機密等。但是,沒有提到簡單地驗證 HTTP 呼叫(GET POST 等)。
我應該創建自己的身份驗證服務器并通過服務訪問它,還是有一種簡單而干凈的方法可以在 Kubernetes 中自動驗證 API 呼叫?
uj5u.com熱心網友回復:
不知道如何回答這個龐大的問題,但是,我會盡力而為。
您可以應用多種解決方案,但同樣在 K8s 中沒有任何內容可供您使用。
要么您必須設定第三方 OAuth 服務器或 IAM 服務器等,要么您撰寫和創建自己的微服務。
有不同的領域你不能合并,
對于服務A到服務 B的服務互連,最好使用Istio和LinkerD之類的服務網格,它們為安全性提供相互 TLS支持并且也易于設定。
因此,服務之間的連接將是HTTPS并且是安全的,但您可以自行管理和設定它。
如果您只是在后端運行普通流量,則可以遵循您描述的相同方法。
在后端服務中傳遞帶有 jwt 有效負載的普通HTTP 。
Keycloak也是使用 OAuth 服務器的好主意,我還建議查看Oauth2-proxy
列出幾篇可能有幫助的文章
https://medium.com/codex/api-authentication-using-istio-ingress-gateway-oauth2-proxy-and-keycloak-a980c996c259
我自己的文章關于 Keycloak 和 Kubernetes 上的 Kong API 網關
https://faun.pub/securing-the-application-with-kong-keycloak-101-e25e0ae9ec56
POC 的 GitHub 檔案:https ://github.com/harsh4870/POC-Securing-the--application-with-Kong-Keycloak
K8s 上的 Keycloak 部署:https ://github.com/harsh4870/Keycloack-postgres-kubernetes-deployment
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/424290.html
標籤:安全 验证 Kubernetes oauth-2.0
