2017-01-02 176 views
1

我在Amazon EB上有一個NodeJS API,在API網關上有一個API。 API網關被配置爲EB的代理。AWS API網關 - Elastic Beanstalk - 受限訪問

我可以調用我的API沒有問題,它的工作,但我不知道如何管理安全。

實際上,如果我使用API​​網關URL,我必須簽署請求(沒關係!),但我可以使用EB網址,而且沒有必要。

在使用API​​網關之前,我使用了JWT,但現在我應該在Node應用程序上做些什麼? API網關正在使用授權標頭來簽署請求,所以我的Node應用程序必須檢查此簽名嗎?或者是其他東西?

回答

2

限制僅對API網關進行後端訪問的建議方法是使用客戶端證書。請參閱documentation here

請注意,如果在ELB中使用客戶端證書,則必須配置ELB爲tcp模式,並終止應用程序服務器上的SSL連接,因爲ELB不支持客戶端證書驗證。

另一種方法是配置您的API網關以添加具有祕密值的標頭,然後在處理請求之前驗證應用程序服務器上的值。這通常被認爲不太安全,因爲攻擊者更容易獲得你的祕密價值。至少,您會希望在API網關和應用程序服務器之間使用SSL,因此祕密不會以純文本格式發送。

+0

希望VPC資源可以在某些時候通過API網關進行代理訪問 - 就像他們已經成爲Lambda函數一樣。這將清理EB應用程序被迫公開的一些Elastic Beanstalk用例。我認爲在很多使用情況下,如果可以通過代理從API網關訪問分佈在私有子網上的ElasticBeanstalk應用程序就足夠了(不確定這是否適用於OP)。 –