为什么在配置 AWS ACL 以进行对 AWS Cognito 的 Nat 访问时必须添加“所有流量”和“0.0.0.0/0”?

问题描述 投票:0回答:1

当我像这样配置 ACL 时,我的 lambda 无法向 Cognito 发送 Admin SDK 调用。

但是当我添加“所有流量”和“0.0.0.0/0”而不是 80 和 443 时。呼叫通过。 开发工具包是否使用超过 80 和 443 来对 AWS Cognito 进行开发工具包调用?

我当前的配置: 公共子网 Public Subnet Public Subnet

私有子网 Private Subnet Private Subnet

Lambda 的安全组 Security Group for the Lambda Security Group for the Lambda

我真的想只允许需要的端口。

amazon-web-services networking amazon-ec2 amazon-cognito aws-networking
1个回答
0
投票

作为一般规则,您应该将网络 ACL 配置保留为默认的“允许全部”访问。

NACL 反映了物理世界路由器的功能。它们控制子网之间移动的流量,就像现实世界的路由器一样。 NACL 规则是“无状态”的,这意味着规则需要在两个方向上定义。

如今,AWS 等云服务提供了安全组。安全组比 NACL 功能更强大,因为它们允许“有状态连接”,记住原始请求并允许响应,即使规则中没有明确定义也是如此。例如,如果端口 80 对传入请求开放,则即使没有明确的规则允许返回流量,安全组也将允许发送响应(这很方便,因为此类请求来自各种源端口) ). 应该很少需要使用 NACL。通常仅在需要特殊安全性时才需要它们,例如创建“网络 DMZ”时。它们的正确使用非常复杂,因为所有端口都必须在两个方向上得到明确许可。

底线: 将 NACL 保留为默认的“全部允许”设置。使用安全组来控制流量。

额外信息: 无需在 Lambda 函数的安全组上分配入站规则。没有外部来源的流量“进入”Lambda 函数。安全组将允许响应进入 Lambda 环境,由于安全组的有状态性质,请求从 Lambda 函数向外发送,因此不需要且不使用入站规则。

© www.soinside.com 2019 - 2024. All rights reserved.