如何通过HTTP触发器从AWS SNS触发GCP云功能(私有)

时间:2020-04-06 16:11:52

标签: amazon-web-services google-cloud-platform google-cloud-functions amazon-sns hybrid-cloud

我在GCP中具有云功能,该功能会在S3桶中使用SNS通知接收到任何对象时触发。 SNS的配置方式是,当任何对象进入s3存储桶时,它都会使用http触发器(https url)将其通知给GCP云功能。截至目前,云功能端点是公共的,因此,如果有人拥有非常安全的URL,则可以从任何地方从Web浏览器触发它。因此,我想将其设为私有,并希望仅通过AWS SNS对其进行访问,但不知道如何实现。

1 个答案:

答案 0 :(得分:2)

您不能阻止用户调用您的HTTP端点,因为您必须将端点公开以使Amazon SNS能够调用您的端点。您可以验证不想接受的请求和拒绝请求(返回401未经授权)。

有几种验证请求的方法。我列出了从最不安全到最安全(也最容易到最难实现)的方法。

x-amz-sns-topic-arnx-amz-sns-subscription-arn中检查HTTP POST请求标头中期望的值。

配置SNS以使用用户名和密码使用基本身份验证。验证两个值。

验证SNS通知签名。此方法需要下载Amazon证书并在每个请求上验证签名。

Using Amazon SNS for system-to-system messaging with an HTTP/s endpoint as a subscriber