我在GCP中有云功能,当使用SNS通知在s3桶中接收到任何对象时,都会触发云函数。SNS是以这种方式配置的,当任何对象进入s3桶时,它都会使用http触发器(Https url)通知GCP云函数。到目前为止,云功能终结点是公开的,如果有人拥有url,那么它可以从任何地方触发,甚至可以从web浏览器中触发,这是一个很大的安全问题。因此,我想使它私有,并希望它只能通过AWS SNS访问,但不知道如何做。
发布于 2020-04-06 16:52:37
您不能阻止用户调用HTTP端点,因为您必须使端点公开,以便Amazon能够调用您的端点。可以验证不想处理的请求和拒绝请求(返回401未经授权的请求)。
有几种方法可以验证请求。我列出了从最不安全到最安全的方法(也是最容易实现的)。
检查HTTP请求标头中所期望的x-amz-sns-topic-arn或x-amz-sns-subscription-arn值。
将SNS配置为使用用户名和密码进行基本身份验证。验证这两个值。
验证SNS通知签名。此方法需要下载Amazon证书并验证每个请求的签名。
https://stackoverflow.com/questions/61064124
复制相似问题