簡體   English   中英

如何通過 http 觸發器從 AWS SNS 觸發 GCP 雲功能(私有)

[英]How to trigger GCP cloud function(private) from AWS SNS over http trigger

我在 GCP 中有雲 function,當使用 SNS 通知在 s3 存儲桶中收到任何 object 時觸發。 SNS 已以這種方式配置,當任何 object 進入 s3 存儲桶時,它會使用 http 觸發器(https url)通知 GCP 雲 function。 截至目前,雲 function 端點是公開的,因此如果有人擁有 url,它可以從任何地方觸發,甚至可以從 web 瀏覽器觸發,這是一個很大的安全問題。 因此,我想將其設為私有並希望它只能通過 AWS SNS 訪問,但不知道如何完成。

您無法阻止用戶調用您的 HTTP 終端節點,因為您必須將終端節點設為公開,以便 Amazon SNS 能夠調用您的終端節點。 您可以驗證請求並拒絕您不想處理的請求(返回 401 Unauthorized)。

有幾種方法可以驗證請求。 我列出了從最不安全到最安全(也是最容易到最難實現)的方法。

檢查x-amz-sns-topic-arnx-amz-sns-subscription-arn以獲取您期望在 HTTP POST 請求標頭中的值。

使用用戶名和密碼將 SNS 配置為使用基本身份驗證。 驗證這兩個值。

驗證 SNS 通知簽名。 此方法需要下載 Amazon 證書並驗證每個請求的簽名。

使用 Amazon SNS 以 HTTP/s 終端節點作為訂閱者的系統到系統消息傳遞

驗證 POST 請求標頭將停止處理雲 function 內的代碼,但這仍然是一個安全問題,因為 gcf 是公開的,任何知道 url 的人都可以保持循環並點擊它。

暫無
暫無

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

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