Tob*_*ins 4 amazon-web-services amazon-vpc
我正在尝试使用 AWS VPC 终端节点来访问 S3 资源,但没有运气。你能帮忙吗?
细节:
我在安全组中有一个 EC2 实例。它位于 VPC 和子网内,具有互联网端点和 0.0.0.0/0 的路由表条目。但是,我不希望这个特定的 EC2 实例能够与互联网通信,但我确实希望它能够与位于https://s3-eu-west-1.amazonaws.com的 S3 存储桶通信/XXXXX/YYYYYY.sh。
作为回应,我重载了 securityGroup 上的默认允许出口规则,因此通过向端口 22 添加出口规则来拒绝出站连接。亚马逊文档告诉我,本地(私有)AWS 地址仍将被允许。考虑到这一点,我在我的 VPC 中添加了一个 VPC 终端节点,并使用 pl-6da54004 (com.amazonaws.eu-west-1.s3) :: vpce-9f47a1f6 更新了我的路由表。
完成此操作后,我无法从 EC2 实例中访问我的 S3 资源。我尝试 wget https://s3-eu-west-1.amazonaws.com/XXXXX/YYYYYY.sh没有运气。
你知道有什么问题吗?我的想法是:
谢谢你,托比
首先,介绍一下背景。VPC 实例的 DNS 解析器是一个内置于基础架构中的虚拟组件。它不受出站安全组规则的影响……但是当您为 VPC 配置 S3 终端节点时,S3 终端节点的主机名解析不会改变。
S3 的 VPC 终端节点的作用是几件不同的事情。了解这些东西是什么是了解它是否会满足您的需求的关键。tl; dr:在这种情况下,它会。
首先,您会注意到它们在路由表中被配置为“前缀列表”。VPC 终端节点采用一组预定义的 IPv4 网络前缀,并为每个包含相应前缀列表的路由表劫持到这些前缀的路由,以便您到任何这些网络的流量将遍历 VPC 终端节点而不是 Internet 网关和任何中间 NAT 实例。
从本质上讲,这开辟了一条从您的 VPC 到 AWS 服务的 IP 地址范围的新路径……但是,这些 IP 地址最初将您带到的位置与没有 VPC 终端节点时将您带到的位置相同。
您点击的第一个位置看起来很像 S3,但它与面向 Internet 的 S3 不同,因为它了解您的 VPC 终端节点的策略,因此您可以控制哪些存储桶和操作可访问。这些不会覆盖其他策略,它们会增强它们。
终端节点策略不会覆盖或替换 IAM 用户策略或 S3 存储桶策略。它是一个单独的策略,用于控制从端点到指定服务的访问。但是,所有类型的策略(IAM 用户策略、终端节点策略、S3 策略和 Amazon S3 ACL 策略(如果有))都必须授予必要的权限才能成功访问 Amazon S3。
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html#vpc-endpoints-access
请注意,如果您不使用适当的策略限制存储桶访问,而是启用完全访问,则如果存储桶的策略允许,实例将能够访问 S3 区域中的任何存储桶,包括公共存储桶。
现在,棘手的部分。如果您的实例的安全组由于默认的“允许”规则已被删除而不允许出站访问 S3,您可以使用特制的安全组规则允许实例通过 VPC 终端节点访问 S3:
向安全组添加新的出站规则。对于“类型”,选择 HTTPS。对于目的地,选择“自定义 IP”。
该文档与我在控制台中看到的不一致:
目标列表显示可用 AWS 服务的前缀列表 ID 和名称。
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html#vpc-endpoints-security
嗯...不,它没有。不适合我,至少,在撰写本文时不适合。
解决方案是选择“自定义 IP”,然后在 IP 地址框中键入 VPC 终端节点的前缀列表 ID,而不是 IP 地址块或安全组 ID pl-xxxxxxxx。您可以在 VPC 控制台中通过查看与 VPC 终端节点关联的子网之一中的目标来找到它。
| 归档时间: |
|
| 查看次数: |
4516 次 |
| 最近记录: |