限制 VPC 的輸出流量 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

限制 VPC 的輸出流量

使用安全群組來限制 VPC 的輸出流量

評估架構的輸出流量需求後,請開始修改 VPC 的安全群組規則,以符合組織的安全需求。請務必將所有必要的連接埠、通訊協定和目標 IP 地址新增至安全群組的允許清單。

如需相關說明,請參閱 Amazon VPC 使用者指南中的使用安全群組控制流向資源的流量

重要

在測試環境中更新 VPC 的安全群組規則後,務必確認您的應用程式仍如預期般運作。如需詳細資訊,請參閱本指南的使用 VPC 流量日誌時分析 VPC 輸出流量的最佳實務一節。

特定 AWS 服務的關鍵安全群組考量事項

Amazon Elastic Compute Cloud (Amazon EC2)

建立 VPC 時,會附帶一個允許所有輸出流量的預設安全群組。除非您建立自己的自訂安全群組,否則 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體會使用此預設安全群組。

重要

為了降低 Amazon EC2 執行個體無意中使用預設安全群組的風險,請移除群組的所有輸出規則。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中使用安全群組規則一節中的刪除安全群組規則

Amazon Relational Database Service (Amazon RDS)

除非資料庫充當用戶端,否則可移除 Amazon RDS DB 執行個體的所有輸出安全群組規則。如需詳細資訊,請參閱《Amazon RDS 使用者指南》中的 VPC 安全群組概觀

Amazon ElastiCache

除非執行個體充當用戶端,否則所有 Amazon ElastiCache (Redis OSS) 和 Amazon ElastiCache (Memcached) 執行個體的傳出安全群組規則都可以移除。如需詳細資訊,請參閱下列內容:

使用 AWS Network Firewall 和 DNS 主機名稱來限制 VPC 的傳出流量

當應用程式使用動態 IP 地址時,最佳實務是使用 DNS 主機名稱而非 IP 地址來篩選其 VPC 的輸出流量。例如,如果應用程式正在使用 Application Load Balancer,則應用程式的關聯 IP 地址將會變更,因為節點會不斷擴展。在這種情況下,使用 DNS 主機名稱來篩選輸出網路流量比使用靜態 IP 地址更安全。

可以使用 AWS Network Firewall 將 VPC 的輸出網際網路存取限制到由 HTTPS 流量中的伺服器名稱指示 (SNI) 提供的一組主機名稱。

如需詳細資訊和網路防火墻政策規則範例,請參閱《AWS Network Firewall 開發人員指南》中的域篩選。如需詳細指示,請參閱下列 AWS 方案指引 (APG) 模式:使用網路防火墻從輸出流量的伺服器名稱指示 (SNI) 中擷取 DNS 域名稱

注意

SNI 是 TLS 的延伸,可在流量中保持未加密狀態。這表示用戶端嘗試透過 HTTPS 存取的目的地主機名稱。

重要

在測試環境中更新網路防火墻的帶狀態規則之後,請確定應用程式仍如預期般運作。請確定 SNI 提供的必要 DNS 域名未被阻止。

架構範例

下圖顯示使用 DNS 主機名稱 AWS Network Firewall 篩選 VPC 傳出流量的範例架構:

使用 DNS 主機名稱 AWS Network Firewall 篩選 VPC 傳出流量的範例架構

該圖顯示以下工作流程:

  1. 輸出請求源自私有子網路,並傳送至受保護子網路中的 NAT 閘道。

  2. NAT 閘道收到的 HTTPS 流量會路由到公有子網路中的 AWS Network Firewall 端點。

  3. AWS Network Firewall 會檢查請求,並套用設定的防火牆政策規則,以接受或拒絕傳遞至網際網路閘道的請求。

  4. 核准的輸出請求會傳送至網際網路閘道。

  5. 來自網際網路閘道的核准流量會傳送至網際網路,以存取預期的 URL (由非加密 HTTPS 標頭中的 SNI 提供)。