AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1087603
Accepted
Ralf
Ralf
Asked: 2021-12-18 04:50:24 +0800 CST2021-12-18 04:50:24 +0800 CST 2021-12-18 04:50:24 +0800 CST

限制 AWS VPC 之间的流量

  • 772

我有两个 VPC:A 和 B。

我希望 A 中的任何节点都能够打开到 B 中的任何节点的 TCP 连接,但反过来不行。B 中的任何节点还必须能够打开到公共 Internet 主机的传出连接。实现这一目标的最佳方法是什么?

用例:VPC A 包含许多敏感的内部服务,而 VPC B 包含运行完全不受信任的代码的节点。VPC A 需要向 VPC B 发出 HTTP 请求,但不得公开任何内部服务。

VPC 对等允许 A 和 B 中的任何节点之间的直接连接 - 这不能在路由级别上受到限制。安全组可用于阻止传出连接,但由于没有 DENY 规则,因此配置起来有点棘手。

网络 ACL 在这里没有用,因为必须允许从 B -> A 返回的流量。

还有其他选择吗?类似于 NAT 网关,只允许在一个方向打开连接?AWS 确实支持私有 NAT 网关,但我找不到任何此类配置的文档。

amazon-web-services amazon-vpc vpc-peering
  • 2 2 个回答
  • 175 Views

2 个回答

  • Voted
  1. Best Answer
    Tim
    2021-12-18T12:57:27+08:002021-12-18T12:57:27+08:00

    我没有详细阅读您的答案,但似乎有点不对劲。我完全不知道您为什么要使用 NAT 网关,它们纯粹是为了允许私有子网中的实例访问 Internet。

    这里的一个关键是单向通信,它强烈表明安全组就是答案。我的解决方案(不用想太多):

    • 两个 VPC 之间的 VPC 对等互连,不同的 CIDR 范围
    • 两个 VPC 中的路由表以启用通信
    • VPC A 中的安全组允许传出流量到 VPC B CIDR 范围,但不允许传入。这将允许传出流量和返回流量,但不允许在 VPC A 中发起的流量
    • VPC B 中的安全组允许来自 VPC A CIDR 的传入流量,但不允许传出。这允许流量进入并返回,但不允许在 A 中发起的流量到达 B
    • VPC B 中的 Internet 网关。如果您不需要通过 Internet 访问 VPC B,则可以使用 VPC B 中的 NAT 网关。
    • 3
  2. Ralf
    2021-12-18T08:40:16+08:002021-12-18T08:40:16+08:00

    这似乎可以通过在专用子网中添加私有 NAT 网关来实现。

    此设置似乎有效:

    VPC A: 10.1.0.0/16
    
    Subnet A1: 10.1.1.0/24. Main subnet containing the nodes in A.
    Subnet A2: 10.1.2.0/24. Dedicated subnet for NAT gateway.
    
    VPC B: 10.2.0.0/16
    
    Subnet B1: 10.2.3.0/24: Main subnet containing the nodes in B.
    
    Private NAT gateway in subnet A2. (nat-1)
    VPC peering between VPC A and B. (pcx-1)
    
    Route table for A1:
    
    10.1.0.0/16 (A): local
    10.2.3.0/24 (B1): nat-1
    
    Route table for A2:
    
    10.1.0.0/16 (A): local
    10.2.3.0/24 (B1): pcx-1
    
    Route table for B1:
    
    10.2.0.0/16 (B): local
    10.1.2.0/24 (A2): pcx-1
    

    由于 A1 和 B1 之间没有直接路由,所有流量都必须经过 NAT 网关。并且 NAT 网关只允许来自同一个 VPC 的传入连接,因此 B1 中的节点无法打开与 A1 中的节点的连接。

    安全组和网络 ACL 可用作此处的附加安全层,并且通过子网拆分,配置将相当简单。但这也是多余的,因为没有从 B1 到 A1 的路线。

    • 0

相关问题

  • 网络定价如何在云平台中准确运作?我应该如何避免专门的定价攻击?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve