首页 > 解决方案 > 如何通过 Virtual-Hosted-Style 访问触发 Object Lambda Access Point

问题描述

我有一个为具有公共访问权限的静态 Web 托管配置的 AWS S3 存储桶。

我为存储桶创建了一个访问点,创建了一个 Lambda 函数来提供一些基本的 GET 验证,并通过对象 Lambda 访问点配置将访问点绑定到 Lambda。由于 AWS 不容易找到,因此需要进行大量挖掘,但您应该能够通过以下网站端点访问访问点:

https://<ACCESS_POINT_NAME>-<CUSTOMER_ID>.s3-accesspoint.<REGION>.amazonaws.com

这应该有望在任何 GET 请求期间触发 Lambda。

但是,当我在浏览器中访问我的地址时,我收到一个 XML 错误,并显示以下消息:

The authorization mechanism you have provided is not supported. Please use Signature Version 4.

根据文档(

https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-restrictions-limitations.html

) 只有 REST API 需要签名验证,但接入点也不支持匿名访问。

我对这些看似矛盾的信息感到困惑。为什么网站端点可用但不允许匿名访问。但是,如果通过浏览器访问接入点不是 REST API,为什么它会抱怨签名要求。

我的设计是否可以使用通过访问点访问的公共 S3 存储桶以及通过 Lambda 提供的控制级别?如果是这样,需要哪些配置才能完成这项工作?

标签: amazon-web-servicesamazon-s3aws-lambda

解决方案


推荐阅读