首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有HTTPS和VPN专用访问的AWS S3静态站点

具有HTTPS和VPN专用访问的AWS S3静态站点
EN

Stack Overflow用户
提问于 2017-02-16 05:39:59
回答 1查看 5.9K关注 0票数 11

目前,我们有一个静态站点部署到ECS (弹性集装箱服务)和前端的ELB (弹性负载均衡器)。这个模型没有什么意义,因为容器只是运行NGINX来提供静态资产。

然而,我们从这个模型中得到的是VPN --只访问网站(我们的VPN客户端将所有10.x流量转发给我们的VPC),以及ELB上的HTTPS侦听器,这两者都是我们想要保留的。

目前只能通过VPN访问这个静态站点的最佳方法是通过HTTPS从S3/Cloudfront获得服务,并且只能通过VPN访问?

我们有与这个答案相同的VPN配置。这个答案对我们有用,但它没有解决S3桶I可能改变的问题(这将使提议的VPN客户端路由规则失效),我也不清楚如何让HTTPS处理这个问题(AFAIK,您需要将CF放在S3静态站点的前面,但我不确定如何通过我们的VPN将流量路由到Cloudfront )。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-17 16:55:28

我决定用VPC端点来控制入口。只有通过VPC/VPN才能访问内部负载均衡器(私有子网),它将流量路由到VPC端点。

桶策略类似(Terraform模板)

代码语言:javascript
复制
{
  "Version": "2012-10-17",
  "Id": "Policy1415115909152",
  "Statement": [
    {
      "Sid": "deny-get-if-not-from-vpce",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::${bucket}",
        "arn:aws:s3:::${bucket}/*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:sourceVpce": "${vpce_id}"
        }
      },
      "Principal": "*"
    },
    {
      "Sid": "allow-get-if-from-vpce",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::${bucket}",
        "arn:aws:s3:::${bucket}/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:sourceVpce": "${vpce_id}"
        }
      },
      "Principal": "*"
    }
  ]
}

而且起作用了!我们得到一个SSL连接,在VPN之外的负载均衡器零访问(负载均衡器DNS不会解析,以及S3静态站点本身的403 )。

http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies-vpc-endpoint.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42265849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档