【问题标题】:Security group for s3 hosted website making http requests发出 http 请求的 s3 托管网站的安全组
【发布时间】:2018-10-31 18:05:33
【问题描述】:

假设我有一个 S3 托管网站。除此之外,我还有一个 EC2 可以接收来自该网站的 http 请求。有没有办法可以设置一个安全组,以便 EC2 只能接收来自该网站的 http 请求?我知道如果网站托管在另一个 EC2 上,我可以使用 IP 地址或负载均衡器,但我不知道在 S3 网站案例中如何处理。

【问题讨论】:

  • 您所问的内容实际上存在概念问题。到服务器的请求流量并非“来自”网站。它来自呈现该站点的浏览器,您通常需要处理的只是浏览器的断言(例如RefererOrigin),它确实在呈现该特定站点......但这些断言并不能保证的真实性。该机制是否足够取决于您要保护的内容类型。

标签: amazon-s3 amazon-ec2 aws-security-group


【解决方案1】:

当您在 S3 上启动网站时,您将获得所有静态前端内容(就像在本地机器上拥有一个没有 Web 服务器的纯 HTML/CSS/Javascript 网站一样)。表示所有指向您的 EC2 实例的调用、XHR 或嵌入式资源都是由 visitors Browsers 使用网络其 IP 来源生成的请求“S3 的来源,或者如果您在 S3 上放置 CloudFront,它将是 CloudFront 作为 HTTP 标头中的来源)与 EC2 的目标(您的 WebServer 在端口 80 或 443 上提供服务)通信。没有可以应用的 SG在存储桶上。但是,可以使用策略配置 S3 存储桶以将某些 IP 地址列入白名单以访问存储桶内容以及随后托管在其上的静态 Web 内容。您还可以强制执行 CORS 策略并有条件检查裁判和来源。

抛开存储桶级别策略、IP 白名单、CORS 和条件限制如果您从 CloudFront 分配中提供 Web S3 存储桶,您也可以在 CloudFront 级别应用 GEOIP 限制规则。

以防万一,如果您在 EC2 上有一个 API 服务器,该服务器将由您的 CloudFront 域调用,您可以在 CloudFront 和 EC2 Web 级别应用一些访问控制来执行更严格的 CORS 策略。 IE。 Internet 上的其他网站无法劫持您的 API 服务或进行 CSRF 攻击(再次作为浏览器级别保护)。

【讨论】:

    猜你喜欢
    • 2021-05-31
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多