2017-07-17 47 views
1

如何設置只能由其他內部服務調用的微服務。微服務不應該公開訪問,因爲它可以訪問具有祕密信息的數據庫。我已經試着用spring security來確保微服務的安全,但在這種情況下,我在FeignClient中遇到了有關授權的問題。春天 - 只能在內部訪問微服務

+0

你的微服務和它所涉及的所有數據庫應該在防火牆後面。我不會只依賴Spring Security。 – duffymo

+0

那麼最後唯一不在防火牆後面的是api網關嗎?感謝您的回答 –

+0

我會有一個可以驗證和重定向的網關。 – duffymo

回答

0

假設你是無法解決這個問題,基礎設施 (這是解決這個問題的唯一正確途徑), 有幾個(壞)技術,您可以使用:

  1. IP地址白列表 - 創建一個良好的IP地址列表,拒絕來自不在列表中的地址的任何請求。
  2. IP地址區域 - 白名單的變化。創建部分IP地址列表,並拒絕與其中一個部分地址不匹配的任何請求。
  3. 僅限非路由IP - IP地址區域的變化。只接受來自非路由IP地址的請求(這些只能在本地網絡上)。這是一個Wiki page of non-routing IP addresses
  4. 魔法令牌。只接受包含特定令牌的請求。這特別糟糕,因爲有人可以看你的流量並發現令牌。

可能有其他的選擇,但隨着基礎設施去。

0

這實際上是一個基礎設施問題。通常情況下,您希望在內部擁有一個包含所有資源的專用網絡 - 所謂的De-Militarized-Zone或DMZ--然後擁有提供外部訪問的第二個網絡或端點網橋。內部網絡不應該從互聯網上到達。端點可以是單個服務器或作爲bastion主機實現的服務器陣列,並且將驗證和授權呼叫者並將呼叫轉發到合法的專用網絡。

API網關(或邊緣服務器)模式通常用於實現此目的。網關的良好配置非常重要。

這是一個article如何與亞馬遜雲做到這一點。

這裏是Kong的一個link,這是一個您可以自己部署的通用API網關。