amazon-web-services - 如何通过 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 提供的控制级别?如果是这样,需要哪些配置才能完成这项工作?
解决方案
推荐阅读
- r - 嵌套数据框上的函数向量算术
- ruby-on-rails - 设计:如何在更新用户信息时跳过电子邮件验证?
- acumatica - Acumatica - 由于图像而设置网格行高
- php - 您指定的 PHP exe 文件未正确运行:C:\xampp\php\php.exe 。我已附加我的 php.ini 文件我应该更改什么
- php - PHP:foreach循环将数组的值分配给连接的字符串和变量
- powershell - 第一个实例后的 Powershell FileSystemWatcher 错误
- python - 信任链在哪里?[python] asn1crypto 和 pkcs11 阿拉丁 USB eToken
- rabbitmq - rabbitmqctl stop_app 只是挂起
- environment-variables - NextJS - 在应用程序启动时设置动态环境变量
- python - 捕获和处理流程的输出