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)
1 Antwort
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
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen