跳到主要內容

Access private API gateway from another account

最近在做一個 PoC 驗證說怎麼在現有的架構下,把一些 public API 移到 VPC 裡面,只讓特定網路的人可以存取。

當然最直覺的想法就是,建一個新的 VPC ,加上 execute-api VPC endpoint 然後這個 VPC 再跟特定網路做 Peering,建一個 Private API Gateway 在新的 VPC 裡面。

這樣新的 VPC 可以透過 VPC endpoint 去存取 API Gateway,然後再加一個 ALB ,裡面的 target group 指向 VPC endpoint 的 IP和 443 port,ALB 設定好 Domain Listener,API Gateway 也加上相同的 Custom Domain Name,這樣子 ALB 就可以當成特定網路 access 的 entry point,一但 Peering 完成後,從特定網路來的 request 就可以經由 ALB -> API GW 跨 VPC 存取原本環境的 backend resource。

但我一直在想,Peering 是必要的嗎? 沒想到隔天就看到這個教學 How can I access an API Gateway private REST API in another account using an interface VPC endpoint? 裡面的做法突破了原本我直覺上的盲點! 就是即使是 Internal API Gateway 似乎只要設定好了 resource policy 就可以允許其他 account 的 VPC endpoint 跨帳號存取!

所以例子裡面的 private API Gateway 是建立在 B 帳號裡面,A 帳號的 VPC 只是啟用了 VPC endpoint,一但 B 帳號的 private API Gateway 在 resource policy 設定好允許 A 帳號的 VPC endpoint 存取,即使兩個帳號之間沒有 peering 也是可以互通的!

雖然說這樣子要帶 hostname header or api-gw-id 但是 原本架構上的 ALB 也是為了 VPC endpoint 可以知道要 forward request 給哪個 API Gateway 才加上的... 

但至少是一個不想要建 VPC Peering 的選項之一.... :p

Reference:


留言

這個網誌中的熱門文章

Safety Razor Murker 38C and Edwin Jagger DE89

繼入手第一隻 Murker 38C 傳統式刮鬍刀後,現在每天都很期待刮鬍子。還收集了很多刀片 Astra / Derby Extra / Derby Premium,然後又手滑買了第二隻,也是幾乎都會推薦給新手使用的 DE89 ,比較常聽到的名字可能是 Muhle R89 根據我看到的說法是,Muhle 和 Edwin Jagger 共同開發這個刀頭,所以只有兩家各自出的手柄握把不一樣,刀頭都是相同的。那為什麼選 Edwin Jagger 呢?因為 Amazon CA 只有賣 Edwin Jagger ... Orz... Edwin Jagger 的刀頭設計和 38C 一樣雖然也是 close combat 但他的刀片露出就比 Murker 38C 多一些。刮起來也是很順暢,但是第3刮的 Against The Grain 就噴血了..lol...不知道是刀片太利了還是 DE89 攻擊性比較強.... 但也有可能是我技術太差... 所以又換回 38C 刮刮看,確認 Murker 38C 真的比較溫和,但似乎不像 DE89 可以刮得很乾淨。現在都會乖乖用 pre shave cream 這樣子容錯率比較高... 有了兩隻比較以後,已經可以分辨出,刀頭設計,二件式,三件式,握把長短,握把重量等等的差異。像 38C 就屬於長握把約 10cm,重量約 100g 。 DE89 就是一般的短握把,約 8cm,重量也較輕。但這兩款的確都很適合新手,所謂的噴血也只是有小血珠冒出,不是割痕,用鬚後水塗完就沒感覺了。 現在慢慢體會到傳統濕式刮鬍的魅力有一部分是刮鬍刀本身設計很漂亮,刀片有很多選擇,不會卡鬍渣,刮鬍手感很棒。另一部份就是塗 pre shave cream,從刮鬍皂用刮鬍刷打出刮鬍泡塗在臉上,並沒有想像中的麻煩,現在反而有點期待這整個過程。 這是還沒用過傳統刮鬍刀前我完全沒想到的! 繼續收集研究刮鬍刀和刀片,還有各種不同的刮鬍皂/膏…刮鬍子現在變的很有趣 :)

[Android] Trigger

This app Trigger formerly known as NFC Task Launcher. You can trigger tasks (change profile) not only by NFC by also Wifi, Bluetooth status....etc... So, give it a try, it's great! NFC Smart Tags! http://www.youtube.com/watch?v=LfkFgtoQtFQ

automation testing

我覺得 想想自動化測試-開始(一) 的論點很不錯.... 原則 1: 針對重點業務,進行回歸的自動化測試 原則 2 :針對穩定的業務(或接口),在環境比較穩定的情況,前期投入腳本開發,有利於減少後期維護成本 原則 3 :自動化測試主要是為了保證主要功能完整可用,而不是為了多發現缺陷 原則 4 :自動化測試並不能減少測試的人力成本,而是為了加快測試反饋,提升測試質量 原則 5 :不要對錄制回放抱有幻想了,可視化也不是一個好的想法 原則 6: 開發參與自動化測試,讓開發和測試融合在一起 什麼都想做,就什麼都做不好。 確保主功能沒問題,就可以釋放出人力在其他事情上, 也可以控制意外的損害範圍… 千萬不要期待 automation 可以發現新問題…