VPC Endpoint的网络访问控制列表NACL如何设置?

0

【以下的问题经过翻译处理】 我们为S3 VPC Endpiont(接口)创建了以下网络ACL,但无法访问S3(提示超时)。

  • 出站:端口=443,目的地=0.0.0.0/0
  • 入站:端口=1024-65535,源=VPC-CIDR (ephemeral)

我添加了以下网络ACL,就能够访问S3!请问为什么需要以下设置?

  • 入站:443,源=VPC-CIDR
  • 出站:1024-65535,目的地=0.0.0.0/0 (ephemeral)
profile picture
专家
已提问 4 个月前25 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,

网络 ACL (NACL) 是在子网级别工作的 VPC 组件,它过滤子网之间的流量并且在设计上是无状态的 (与有状态的安全组相比),因此任何方向允许的任何流量都将被允许返回。这意味着您必须在两个方向(入站/出站)指定允许的流量规则。例如,您可以在此处查看更多详细信息 (1)。

正如您解释的那样,您为 S3 服务创建了 VPC 端点(接口类型),并为与该VPC Endpoint ENI的子网关联的NACL使用了以下规则:

*出站:端口=443,目的地=0.0.0.0/0

  • inbound: port=1024 - 65535, source=VPC-CIDR (ephemeral)

在 NACL上实施此规则后,来自同一 VPC 中其他子网的任何客户端(例如:EC2 实例)将无法连接,因为来自其他子网的访问需要 TCP 443 允许在此 NACL 上为 VPC 端点子网入站(让我们称此子网 B)。但是,如果源位于同一子网内,则 NACL 不会出现,并且只有安全组与此流量相关,因此大概安全组已允许来自 0.0.0.0/0 或 VPC-CIDR 的 TCP 443。

为了进一步解释,让我们举个例子:

VPC_A(10.0.0.0/16) 有两个子网 - SubnetA(10.0.0.0/24)(ec2 实例/客户端)和 SubnetB(10.0.1.0/24)(S3 的 VPC 接口端点)。 SubnetANACL_A 关联,SubnetBNACL_B 关联。因此,如果我们对 NACL_B 使用上述规则,则流量如下:

EC2(10.0.0.10) ----> S3 ENI(10.0.1.10) 的 VPC 接口端点,因为此流量实际上在子网之间,所以从 NACL 的角度来看,流量如下所示:

子网A ----> 子网B |如果我们仔细查看 SubnetB 的 NACL 规则,假设允许流量进/出 SubnetA。流量来自 SubnetA,因此我们首先查看入站:

-inbound: port=1024 - 65535, source=VPC-CIDR (ephemeral) ---> 根据这条规则,TCP 443 传入是不允许的,所以它会被拒绝。

那么让我们看看工作场景:

-inbound: 443, source=VPC-CIDR ----> 根据这条规则,来自 SubnetA 的 TCP 443 流量将被允许到 SubnetB,因为源 IP 地址将匹配 VPC-CIDR 以及目标端口 TCP 443。注意: 由于TCP会话源选择临时端口来启动到目标的会话,因此源将选择从“1024 到 65535”范围内的端口,例如在本例中为端口 22222。源是“10.0.0.10:22222”,目标是“10.0.1.10:443”。

查看返回流量:

-outbound: 1024 - 65535, destination=0.0.0.0/0(ephemeral) - 现在返回流量是从 SubnetBSubnetA(S3 ENI 的 VPC Interface Endpoint到 Subnet_A 中的 EC2 实例)。目的地是“10.0.0.10:22222”,来源是“10.0.1.10:443”,所以根据这条规则,这个流量是允许的,目的地IP和端口匹配规则。

为了更清楚地说明上下文 ,NACL_A 被假定具有以下规则或类似于以下内容:

*入站:TCP 1024-65535,源 0.0.0.0/0 或 VPC_CIDR *出站:TCP 443,目的地 0.0.0.0/0 或 VPC_CIDR

此外,Reachability Analyzer是解决此类连接问题的好工具,强烈推荐使用。

(1) Network ACLs - Network ACL basics - https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html#nacl-basics

谢谢 蒙克巴特

profile picture
专家
已回答 4 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则