使用 CloudFront 时,S3 上的自定义重定向规则返回 403

2024-03-23

我在 S3 上为我的存储桶有一个自定义重定向规则:

<RoutingRules>
  <RoutingRule>
    <Condition>
      <KeyPrefixEquals/>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
    </Condition>
    <Redirect>
      <Protocol>https</Protocol>
      <HostName>example2.com</HostName>
      <ReplaceKeyPrefixWith>services/create?key=</ReplaceKeyPrefixWith>
      <HttpRedirectCode>307</HttpRedirectCode>
    </Redirect>
  </RoutingRule>
</RoutingRules>

我的桶有一个正确的策略:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::example.com/*"
        }
    ]
}

当我通过其内部 url 访问它时,效果很好http://example.com.s3-website-us-east-1.amazonaws.com它正确地将我重定向到我的其他服务器。

但是,它不适用于我的 CloudFront 设置。当我尝试直接访问它时(http://example.com/images/dummy.jpg),我收到一个403 拒绝访问.


显然,当使用默认的 S3 存储桶作为源时 - 它不会遵守重定向规则。

默认情况下,它尝试使用:

example.com.s3.amazonaws.com,但您应该将其强制为自定义原点:

example.com.s3-website-us-east-1.amazonaws.com反而。

一旦我强迫它,它就开始起作用了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 CloudFront 时,S3 上的自定义重定向规则返回 403 的相关文章

  • AWS AppSync 授权

    我计划使用 AWS Appsync 迁移 lambda 函数中的 graphQL 终端节点 该函数由 API 网关的 POST 触发 我研究 AppSync 主要是因为订阅 我无法使用 Lambda 函数创建订阅 我的身份验证机制基于 Au
  • Amazon DynamoDB 吞吐量如何计算和限制?

    是每秒平均吗 每分钟 每小时 例如 如果我支付 10 个 读取单元 允许每秒 10 次高度一致的读取 那么如果我尝试在一秒钟内执行 20 次读取 即使这是仅发生的 20 次读取 我是否会受到限制 最后一个小时 在我能找到的任何地方 亚马逊文
  • Alexa Skill - 以编程方式更新意图

    我正在尝试创建一个 Alexa 技能 它可以使用相当广泛的可能的短语数量 手写太多了 我可能可以通过编程方式生成列表 但它经常更改 因此我希望它经常更新 我是否可以调用 Amazon API 来更新自定义槽类型的可能值 而无需始终手动登录并
  • 如何在没有终端节点令牌的情况下确认 Amazon SNS 的订阅?

    在我的 JAVA 应用程序中 我使用 Amazon SNS 向客户发送电子邮件 一旦我将一位客户 电子邮件 ID 订阅到我的 SNS 主题 它要求客户确认订阅以接收电子邮件 有什么方法可以在您的应用程序本身中确认订阅 无需客户的帮助 不 这
  • Django 尝试使用错误的数据库用户

    已解决 我使用的是 USERNAME 而不是之前尝试使用 Postgres 驱动程序时使用的 USER 我正在尝试将我的 django 项目连接到 RDS MySQL 数据库 我可以在 MySQL Workbench 和 mysql 命令行
  • kubernetes + coreos 集群 - 替换证书

    我有一个 coreos kubernetes 集群 我是按照这篇文章开始的 AWS 上的 kubernetes coreos 集群 https coreos com kubernetes docs latest kubernetes on
  • 如何使用 boto3 指定 core-os ec2 实例的根卷大小?

    我无法弄清楚文档 http boto3 readthedocs org en latest reference services ec2 html EC2 ServiceResource create instances以及如何定义根设备大
  • 将文件从 url 上传到 s3 存储桶

    我有一个在 Heroku 中运行的 Nodejs 程序 它为我提供了文件的 URL 这些文件需要存储在 s3 存储桶中 据我了解 无法将文件从 url 直接上传到 s3 存储桶 您建议我如何将文件从 URL 获取到 s3 存储桶 我见过有关
  • 使用 CMK 的 SQS 加密

    我正在尝试从加密的 SQS 读取消息 对象落在 S3 存储桶上 gt 触发 S3 事件 gt 消息发送到 SQS gt SQS 触发 Lambda 进行处理 我已经使用 AWS 托管的 CMK 完成了这项工作 但是 我无法使用 AWS 拥有
  • 从 Power BI Web 刷新 AWS RDS 数据库

    我在 Power BI Desktop 中创建了一个报表 连接到 AWS RDS 数据库 并将其发布到 Power BI Web 应用程序 目的是从 Web 应用程序刷新数据集 我尝试使用 MySQL 和 SQL Server 在 RDS
  • Terraform:如何附加服务器计数并将服务器分配给多个可用区?

    main tf resource aws instance service ami lookup var aws winamis var awsregion count var count key name var key name ins
  • 如何连接两个 Ec2 实例以便它们可以相互通信[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想将两个 EC2 实例相互连接 以便它们可以相互通信 第一个将安装 Wordpress 第二个将配置数据库 例如 Mysql Mar
  • AWS SES模板html部分是多行

    我正在使用 AWS SES 按照文档发送电子邮件https docs aws amazon com ses latest DeveloperGuide send personalized email api html https docs
  • 同一区域内但属于不同账户的AWS数据传输费用如何?

    如果 S3 gt EC2 或 EC2 gt EC2 位于同一 AWS 区域 则数据传输费用似乎是免费的 S3价格注意事项 您需要为进出 Amazon S3 的所有带宽付费 except对于以下情况 当Amazon Elastic Compu
  • 在describe-vpcs中按标签过滤的正确语法是什么?

    我试图理解 aws ec2 cli 调用 我希望描述所有 VPC 然后在自定义标记上描述文件管理器 vpcname myvpc 但是在尝试多种组合后 我不断收到有关 filters 的格式和使用的冲突错误 使用作为参考 http docs
  • 避免在 AWS Lambda 上使用 netcore2.0 和 Serilog 进行两次日志记录

    将我的 netcore 项目升级到 2 0 后 当我的应用程序在使用 Serilog 框架的 AWS Lambda 上运行时 我会看到双日志 请参阅下面我的设置 public void ConfigureServices IServiceC
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • AWS-PHP-SDK / SNS 直接寻址返回错误

    您好 我正在使用 Laravel 4 设置来利用 AWS SNS 向我的 iOS 设备发送推送消息 从 AWS 控制台向我的设备发布命令效果很好 然后我尝试从 PHP sns AWS get sns sns gt publish array
  • AWS 无法验证提供的访问凭证。 AuthFailed 仅在特定区域

    我正在尝试通过 linux aws CLI 执行一些操作 我的凭据文件 100 正确 用户拥有 EC2FullAccess 和 Amdinistrative 最高级别 权限 我能够执行所有命令 问题是以下区域产生 AuthFailed 错误
  • 使用随机目录结构重命名传入的 S3 文件

    我有一个可以将文件发送到 s3 存储桶的应用程序 不幸的是 我无法更改它在 s3 中发送到的路径 因此我必须找到一种方法来获取该文件 mys3bucket apps region 020 07 14T22 24 34Z details cs

随机推荐