【问题标题】:Do I need an Inbound NACL to allow VPC Endpoint DynamoDB Access?我是否需要入站 NACL 才能允许 VPC 终端节点 DynamoDB 访问?
【发布时间】:2020-01-20 09:55:58
【问题描述】:

我的 VPC 中有一个需要访问 DynamoDB 的 Lambda。我为此设置了一个 VPC 端点,终于让它工作了,但我对设置提出了质疑。

  • Lambda 正在我的私有子网中运行。
  • 子网有一个路由表:
    1. 目的地:10.153.32.0/21
      目标:本地
    2. 目的地:pl-02cd2c6b(com.amazonaws.us-east-1.dynamodb, 52.94.0.0/22, 52.119.224.0/20)
      目标:(我的 VPC 终端节点)
    3. 目标:0.0.0.0/0
      目标:(我的 NAT 网关)
  • 我的 VPC 端点与上述路由表(以及其他一些路由表)相关联,因此是 #2 路由。
  • 我添加了以下网络 ACL 入站规则
    • 端口范围 1024 - 65535
    • CIDR 块 52.94.0.0/2252.119.224.0/20
    • 允许

我担心的是网络 ACL 规则。我在阅读this comment 后添加了它。

我想知道我是否需要该规则,或者是否有其他问题?我很惊讶我不得不添加它,因为 SO 评论是唯一提到它的地方。

添加这些 CIDR 感觉相当安全,因为这些 CIDR 应该是安全的,因为它们专门用于 DynamoDB。但我假设我必须留意这些范围的变化。

编辑:我还尝试更新我的 lambda 安全组出站规则,以允许目标为 pl-02cd2c6b 的所有端口,但这不起作用。

【问题讨论】:

  • 这完全取决于您的 VPC 中是否已有 NACL 规则。默认情况下允许所有流量,NACL 规则仅添加限制,因此如果您还没有 NACL 规则,则无需创建。 Lambda 函数上的出站安全组规则也是如此,默认情况下允许所有出站流量,因此如果您还没有规则,则无需添加任何规则。

标签: aws-lambda amazon-dynamodb amazon-vpc


【解决方案1】:

如果您决定使用自定义的网络 ACL,则只需要该规则。默认情况下,NACL 允许所有操作,将网络访问控制权交给安全组设置...所以您不使用默认规则,您必须手动允许双向所有操作,因为不像安全组,NACL 不跟踪 IP 流状态。

您所做的看起来是正确的(假设您需要自定义 NACL)。

前缀列表中的 IP 地址对于允许入站方向的回复流量是必需的,异常广泛的临时端口范围来自 VPC 文档:

AWS Lambda 函数使用端口 1024-65535。

https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html#nacl-ephemeral-ports

有一个关于将前缀列表视为静态的记录警告:

服务的公共 IP 地址范围可能会不时更改。在根据服务的当前 IP 地址范围做出路由或其他决策之前,请考虑其影响。

https://docs.aws.amazon.com/vpc/latest/userguide/vpce-gateway.html#vpc-endpoints-routing

使用默认的“全部允许”NACL 可能是更好的选择。如果您确实觉得需要锁定您的 Lambda 函数的访问权限,您应该能够创建直接引用 pl-xxxx 的出站安全组规则。一旦您的 NACL 重新设置为允许所有,这将起作用。

【讨论】:

  • 感谢您的精彩观点。我确实完全忽略了我的 NACL 的设置方式以及与默认设置的比较。基本上我认为我的是默认值,而实际上不是。我的 VPC 大致基于 HIPAA 快速入门,所以我必须考虑到这一点。
猜你喜欢
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-04
  • 2019-04-12
  • 2019-08-12
  • 2020-02-07
  • 2017-09-13
  • 2021-04-06
相关资源
最近更新 更多