gpt4 book ai didi

amazon-web-services - 具有 HTTPS 和仅限 VPN 访问的 AWS S3 静态站点

转载 作者:行者123 更新时间:2023-12-04 21:34:20 25 4
gpt4 key购买 nike

目前,我们有一个静态站点部署到 ECS(弹性容器服务)并由 ELB(弹性负载均衡器)作为前端。这个模型真的没有意义,因为容器只是运行 NGINX 来提供静态 Assets 。

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

将目前只能通过 VPN 访问的静态站点迁移到通过 HTTPS 从 S3/Cloudfront 提供服务并且只能通过 VPN 访问的最佳方法是什么?

We have the same VPN configuration as in this answer.这个答案对我们有用,但它没有解决 S3 存储桶 IP 可能发生变化的问题(这会使 VPN 客户端上建议的路由规则无效),而且我不清楚如何让 HTTPS 使用这个(AFAIK,您需要将 CF 放在 S3 静态站点的前面,但我不确定如何通过我们的 VPN 将流量路由到 Cloudfront。)

最佳答案

我决定使用 VPC endpoints来控制入口。有一个内部负载均衡器(私有(private)子网)只能通过 VPC/VPN 访问,它将流量路由到 VPC 终端节点。
存储桶策略看起来像(Terraform 模板)

{
"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 .

关于amazon-web-services - 具有 HTTPS 和仅限 VPN 访问的 AWS S3 静态站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42265849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com