如何禁用 Amazon S3 原始终端节点访问

2024-03-22

假设您想在 S3 上托管一个静态网站:

  1. 您创建一个名为 name 的存储桶your-website.com并将其设置为网络托管;
  2. 您在域的区域文件中添加 CNAME 以指向您的 S3 存储桶。

伟大的。当您访问时一切正常http://your-website.com。但您不希望原始/“裸”端点可访问。

存储桶中是否有任何设置来禁止直接访问http://your-website.com.s3-website.your-region.amazonaws.com ?

原因是,如果您的网站可以通过以下方式访问http://your-website.com and http://your-website.com.s3-website.your-region.amazonaws.com会损害你的搜索引擎优化(重复内容)


您提到您最关心的是 SEO。为此,您可以使用其他技术,这些技术可能比您最初询问的技术更容易实现。

处理重复内容的主要技术之一是使用rel=canonical,这可能相当容易实现。有关更多信息,请参阅http://googlewebmastercentral.blogspot.com.br/2013/04/5-common-mistakes-with-relcanonical.html http://googlewebmastercentral.blogspot.com.br/2013/04/5-common-mistakes-with-relcanonical.html

如果您坚持需要禁用对存储桶的访问,除非客户端通过您的 CNAME 连接,那么您最好的选择是使用 CloudFront。您禁用存储桶上的 S3 网站托管选项,将您的 S3 存储桶设置为私有(即删除允许公开读取的存储桶策略或 ACL),创建 CloudFront 分配,将您的存储桶定义为源,在分配上配置 CNAME,更改您的存储桶DNS 记录指向您的分配而不是存储桶,创建一个原始访问身份 (OAI)并授予该 OAI 对该存储桶的访问权限。唷。

通过执行所有这些操作,用户将无法访问 S3 存储桶上的内容(显然,除非他们拥有有权读取存储桶并发送签名请求的 AK/SK)。唯一的方法是通过您的域。

欲了解更多详情来源访问身份, see http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html

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

如何禁用 Amazon S3 原始终端节点访问 的相关文章

  • Docker Build 找不到 pip

    尝试关注一些 1 https aws amazon com blogs aws run docker apps locally using the elastic beanstalk eb cli 2 http docs aws amazo
  • AWS 存储桶和区域

    该应用程序结合使用载波carrierwave aws宝石 在迁移 Rails 版本 升至 4 2 Ruby 版本 2 2 3 并重新部署到同一临时服务器时遇到了障碍 AWS 存储桶最初是在免费套餐中创建的 即俄勒冈州 us west 2 但
  • Jackson反序列化SNS消息错误MismatchedInputException

    我正在编写一个通过 SNS HTTP 请求处理来自 Amazon Simple Email Service 的回调的功能 我想将亚马逊提供的消息解析为本地对象结构 问题是 SNS 将 JSON 消息包装成字符串 并且 Jackson 无法解
  • 超时后无法部署到 AWS Elastic Beanstalk

    我是 AWS Elastic Beanstalk 的新手 这是我第一次遇到此问题 我尝试通过将我的应用程序 zip 上传到实例来部署新版本 更新完成后出现错误 已完成 但命令行超时 我增加了配置文件中的超时并重新部署 之后我收到了此消息 在
  • 使用 Spot 队列自动扩展而不是具有现货价格的 AutoScaling 组有什么优势?

    最近 亚马逊 AWS 发布了针对 Spot 队列的 Auto Scaling https aws amazon com blogs aws new auto scaling for ec2 spot fleets https aws ama
  • 如何找到 JAR:/home/hadoop/contrib/streaming/hadoop-streaming.jar

    我正在练习有关 Amazon EMR 的复数视角视频教程 我被困住了 因为我收到此错误而无法继续 Not a valid JAR home hadoop contrib streaming hadoop streaming jar 请注意
  • 获取一个 jar 及其源代码和 javadoc

    随着以下内容在ivy xml
  • 在 AWS Glue 中覆盖动态框架中的镶木地板文件

    我使用动态框架在 S3 中写入镶木地板文件 但如果文件已存在 我的程序会附加一个新文件而不是替换它 我用的句子是这样的 glueContext write dynamic frame from options frame table con
  • 如何在 RTMP 流中嵌入 pic_timing SEI 挂钟时间码?

    我需要将我的桌面流式传输到 AWS MediaLive 服务 并且根据要求 我必须在流中包含挂钟时间码 AWS 支持人员善意地通知我 对于 h 264 编码流 我需要提供时间码作为 pic timing SEI 消息 我在 Windows
  • 为什么只有 50 个实例在 AWS lambda 上运行?

    我在用context logStreamName识别 lambda 实例 并发设置为无保留 但日志显示只有 50 个实例正在运行 我是否误解了logStream pre logStream pre实例 我从那里得到的信息这个博客 https
  • 如何处理自动缩放期间网络流量的突然激增

    我在 ELB 后面和 Auto Scaling 组中有两个 EC2 实例 扩大规模政策如下 CPUUtilization gt 70 持续 300 秒 添加一台服务器 当 Atoscaling 活动正在进行时 现有实例上的负载已达到 99
  • AWS CloudWatchLog 限制

    我正在尝试找到集中式解决方案来将我的应用程序日志记录从数据库 RDS 中移出 我本想使用 CloudWatchLog 但注意到 PutLogEvents 请求有限制 PutLogEvents 请求的最大速率为每秒 5 个请求 每个日志流 即
  • S3 的 Rails 回形针默认图像

    我尝试在应用程序中使用default url 但我使用S3 存储图像 我不确定我需要在那里输入什么 URL 或者我是否必须创建一个假图像才能将所有内容放在那里 由于我的图像总是通过 S3 渲染 所以我不知道如果我只是在公共文件夹中放入一些默
  • 具有行为路径重定向的多个 Cloudfront 起源

    我有两个 S3 存储桶用作我的 Cloudfront 源服务器 example bucket 1 example bucket 2 两个存储桶的内容都位于这些存储桶的根中 我正在尝试将我的 Cloudfront 发行版配置为基于 URL 模
  • boto3 资源(例如 DynamoDB.Table)的类型注释

    The boto3库提供了几种返回资源的工厂方法 例如 dynamo boto3 resource dynamodb Table os environ DYNAMODB TABLE 我想注释这些资源 以便我可以获得更好的类型检查和完成 但我
  • 将 CSV 复制到 Amazon RDS 托管的 Postgresql 数据库

    我有一个使用 Amazon 的 RDS 服务托管的数据库 我正在尝试编写一个 Web 服务来更新所述数据库 我遇到的问题是它不允许我使用 COPY 命令 因为我收到此错误 错误 必须是超级用户才能复制到文件或从文件复制 我正在使用我为数据库
  • AWS CLI s3 复制失败并出现 403 错误,尝试管理用户上传的对象

    尝试将文件从 S3 存储桶复制到我的本地计算机 aws s3 cp s3 my bucket name audio 0b7ea3d0 13ab 4c7c ac66 1bec2e572c14 wav fatal error An error
  • 如何更改AWS ECS集群中的实例类型?

    我在 AWS EC2 容器服务中有一个集群 设置完毕后 我使用了 t2 micro 实例 因为这些实例足以进行开发 现在我想使用更强大的实例 例如 m4 large 我想知道是否可以仅更改实例类型 这样我就不需要重新创建整个集群 我找不到如
  • 无法正确停止我的 AWS EC2 实例

    作为 AWS 新手 我有一个支持我的 Elastic Beanstalk 应用程序的 t2 micro EC2 实例 它是在我将 WAR 文件部署到 Elastic Beanstalk 时创建的 我的 EB 应用程序不需要每天 24 小时运
  • 在AWS S3中部署react-redux应用程序

    我在堆栈溢出中遇到了很多类似的问题one https stackoverflow com questions 16267339 s3 static website hosting route all paths to index html

随机推荐

  • sizeof如何知道操作数数组的大小?

    这可能是一个愚蠢的问题 但是当您不传入数组中的元素数量时 sizeof 运算符如何知道数组操作数的大小 我知道它不会返回数组中的总元素 而是返回字节大小 但为了得到它 它仍然必须知道数组何时结束 只是好奇这是如何工作的 sizeof在编译时
  • 从标准 cookie 格式转换为 LibCurl cookie jar 格式

    有没有方便的工具 代码可以转换标准 cookie 字符串格式 e g NAME1 VALUE1 NAME2 VALUE2 to the libCURL cookie jar 格式 e g netscape com TRUE FALSE 94
  • 二维宇宙飞船运动数学

    我正在尝试制作一款自上而下的太空飞船游戏 我希望动作更加真实 360度 有惯性 重力等 我的问题是我可以毫无问题地让船以惯性移动 360 但我需要做的是限制发动机的运行速度 同时不限制其他推 拉船的力 因此 如果发动机速度最大为 500 并
  • Java 哈希表与对象引用的问题

    我有一个哈希表 例如 HashTable ht 1 1 2 1 3 1 现在 我像 Integer foo Integer 1 一样实现它 并像这样声明哈希表 HashTable ht foo foo 2 foo 3 foo 现在 据我了解
  • 如何在多地点场景下配置Prometheus?

    我喜欢使用 Prometheus 进行监控和警报 到目前为止 我的所有目标 节点和容器 都与监控服务器位于同一网络上 但现在我面临一个场景 我们将应用程序堆栈 作为一堆 Docker 容器 部署到网络中的多台客户端计算机 几乎所有客户端网络
  • ActiveRecord::未知属性错误?

    我刚刚将一个应用程序推送到 Heroku 生产环境 基本上有一个Bus模型 它有一个seats属性 class Bus lt ActiveRecord Base attr accessible seats other attributes
  • Blazor 客户端 - 错误 NETSDK1082:“浏览器-wasm”

    我创建了一个简单的 blazor wa 项目 并选择了托管选项 在项目的客户端 它自动附带
  • 如何通过 Android 设备上的后台服务使屏幕闪烁/闪烁?

    我计划做后台服务 这将使屏幕闪烁 闪烁 直到用户触摸屏幕 我不知道如何使屏幕闪烁的方法 只知道可以通过生成的活动通过亮度和控制来完成 想要在屏幕上进行颜色变化 即黑白或屏幕开 关 的闪烁 以使其比亮度更明显 我用它来闪烁屏幕 在这段代码中我
  • 使用 python 中的 selenium webdriver 从父 xpath 中找出所有子元素 xpath

    我可以通过 xpath 找到该元素driver find element by xpath id app table tbody tr 1 td 1 但有什么方法可以返回所有子元素 例如标签和标签 xpath tr td class div
  • mail() 函数的更多参数[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我一直在努力寻找一个地方来帮助我解决这个问题 但我得到的大多数答案都令人困惑 或者效果不佳 我想要一个可以发送超过 8 条信息的邮件功能
  • Maven 的新功能:使用阴影插件和第 3 方 jar

    这应该很简单 但我无法解决它 我需要使用第 3 方 jar 创建一个 uberjar 我已经按照这些说明进行操作 包含非 Mavenized 依赖项 以便与 maven shade plugin 一起使用 https stackoverfl
  • 制作 AppleScript 程序来侦听系统范围内的快捷方式

    我想创建某种后台进程来侦听所有击键事件并相应地执行操作 例如 如果在 Finder app 中按下 CMD A 或更复杂的事情 例如创建快捷方式的序列 则执行一些操作 如emacs 但是我如何在 SnowLeopard 上监听系统范围内的按
  • 流().collect(Collectors.toSet()) vs 流().distinct().collect(Collectors.toList())

    如果我有一个对象列表 200 个元素 其中只有很少的唯一对象 20 个元素 我只想拥有独特的价值观 之间list stream collect Collectors toSet and list stream distinct collec
  • H2 数据库控制台 spring boot 加载被 X-Frame-Options 拒绝

    我正在为开发人员构建一个具有 spring 4 启动安全性和其他功能的骨架项目 在尝试登录数据库控制台并管理我的数据库时使用 H2 我收到以下错误 该页面是空白的 firebug konsole 中有 4 个错误 Load denied b
  • 在 NSPersistentStoreCoordinator 上调用 destroyPersistentStore 后,是否应该删除底层持久存储文件?

    我正在迁移我的 iOS 应用程序以使用NSPersistentContainer 默认情况下 此类将其持久存储文件定位在Library Application Support目录 以前我的商店文件存储在Documents目录 我添加了一些代
  • HttpUrlConnection 重定向不使用原始连接的请求属性

    设置连接属性不会延续到重定向连接 HttpURLConnection mConnection HttpURLConnection url openConnection mConnection addRequestProperty User
  • AWS Lambda 函数从不调用回调

    我创建了一个节点 lambda 函数 用于对 Aurora 数据库进行简单调用 当我在控制台中测试该函数时 查询返回 我可以在日志中看到结果 但回调似乎从未被调用 因此我的 lambda 函数超时 我不知道问题出在哪里 希望这里有人能指出我
  • 处理基于 Strope.js 的聊天应用程序中的状态

    是否有任何现有解决方案可以为基于 Strope js 的聊天应用程序提供在线状态处理 我有一个基于 Strope js 的简单聊天应用程序 我想仅显示在线并动态更改列表的用户 我想知道是否有任何现有的解决方案 可能是 Strope 插件 可
  • 具有管理员权限的java运行可执行文件

    如何从java程序中以管理员权限调用可执行bat文件 该可执行文件位于另一个目录中 您需要使用runas http www computerhope com runas htm命令 像下面这样 Runtime exec runas user
  • 如何禁用 Amazon S3 原始终端节点访问

    假设您想在 S3 上托管一个静态网站 您创建一个名为 name 的存储桶your website com并将其设置为网络托管 您在域的区域文件中添加 CNAME 以指向您的 S3 存储桶 伟大的 当您访问时一切正常http your web