安全群組規則 - Amazon Virtual Private Cloud

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

安全群組規則

安全群組的規則可控制允許到達與安全群組相關聯之資源的傳入流量。規則也會控制允許離開的對外流量。

您可以新增或移除安全群組的規則 (也稱為授權撤銷傳入或傳出存取)。規則會套用至傳入流量 (輸入) 或傳出流量 (輸出)。您可以授予特定來源或目的地的存取權。

安全群組規則基礎知識

  • 您可以指定允許規則,但無法指定拒絕規則。

  • 當您首次建立安全群組時,它沒有傳入規則。因此,在您將傳入規則新增到安全群組之前,都不會允許傳入流量。

  • 當您首次建立安全群組時,該安全群組會具有允許來自該資源的所有傳出流量的傳出規則。您可以移除規則並新增只允許特定傳出流量的傳出規則。若您的安全群組沒有傳出規則,將不會允許傳出流量。

  • 當您將多個安全群組與資源建立關聯時,會將每個安全群組的規則彙總以構成一組規則,並使用這組規則來決定是否允許存取。

  • 當您新增、更新或移除規則時,您的變更會自動套用至與安全群組相關聯的所有資源。有些規則變更的效果可取決於追蹤流量的方式。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的連線追蹤

  • 當您建立安全性群組規則時, AWS 會為規則指派唯一 ID。當您使用 API 或 CLI 修改或刪除規則時,可以使用規則的 ID。

限制

安全群組無法封鎖傳送至 Route 53 解析程式的 DNS 要求,有時也稱為「VPC+2 IP 位址」(請參閱 Amazon Route 53 開發人員指南Amazon Route 53 Resolver中的,或做為 DNS)。AmazonProvided若要透過 Route 53 Resolver 篩選 DNS 請求,請使用 Route 53 Resolver DNS Firewall

安全群組規則的元件

  • 通訊協定:要允許的通訊協定。最常見的通訊協定為 6 (TCP)、17 (UDP) 和 1 (ICMP)。

  • 連接埠範圍:適用於 TCP、UDP 或自訂通訊協定,要允許的連接埠範圍。您可以指定單一連接埠號碼 (例如,22),或是連接埠號碼的範圍 (例如,7000-8000)。

  • ICMP 類型及代碼:適用於 ICMP,為 ICMP 的類型及代碼。例如,使用類型 8 代表「ICMP Echo 請求」,輸入 128 則代表「ICMPv6 Echo 請求」。

  • 來源或目的地:允許流量的來源 (傳入規則) 或目的地 (傳出規則)。請指定下列其中一項:

    • 單一 IPv4 地址。您必須使用 /32 的字首長度。例如 203.0.113.1/32

    • 單一 IPv6 地址。您必須使用 /128 的字首長度。例如 2001:db8:1234:1a00::123/128

    • IPv4 地址範圍,以 CIDR 區塊標記法表示。例如 203.0.113.0/24

    • IPv6 地址範圍,以 CIDR 區塊標記法表示。例如 2001:db8:1234:1a00::/64

    • 字首清單的 ID。例如:pl-1234abc1234abc123。如需詳細資訊,請參閱 使用受管前綴清單對 CIDR 區塊分組

    • 安全群組的 ID。例如:sg-1234567890abcdef0。如需詳細資訊,請參閱 安全群組參考

  • (Optional) Description ((選用) 描述):您可以為規則新增描述,這可協助您在稍後更容易識別它。描述的長度最高可達 255 個字元。允許的字元為 a-z、A-Z、0-9、空格鍵和 ._-:/()#,@[]+=;{}!$*。

安全群組參考

當您將安全群組指定為規則的來源或目的地時,規則會影響所有與安全群組相關聯的執行個體。執行個體可透過指定的通訊協定和連接埠,使用執行個體的私有 IP 地址,以指定的方向進行通訊。

例如,以下內容表示參考安全群組 sg-0abcdef1234567890 的安全群組傳入規則。此規則允許來自與 sg-0abcdef1234567890 關聯的執行個體的傳入 SSH 流量。

來源 通訊協定 連接埠範圍
sg-0abcdef1234567890 TCP 22

在安全群組規則中參考安全群組時,請注意下列事項:

  • 兩個安全群組必須屬於相同的 VPC 或對等 VPC。

  • 所參考安全群組中的規則不會新增至參考該安全群組的安全群組。

  • 對於傳入規則,與安全群組關聯的 EC2 執行個體可以從與參考的安全群組相關聯之 EC2 執行個體的私有 IP 地址中接收傳入流量。

  • 對於傳出規則,與安全群組關聯的 EC2 執行個體可以將傳出流量傳送至與參考的安全群組相關聯之 EC2 執行個體的私有 IP 地址。

限制

如果您將路由設定為透過中間設備來轉遞不同子網中兩個執行個體之間的流量,則您必須確保兩個執行個體的安全群組均允許流量在執行個體之間流動。每個執行個體的安全群組都必須參考另一個執行個體的私有 IP 地址,或是包含其他執行個體之子網路的 CIDR 範圍作為來源。如果您參考另一個執行個體的安全群組作為來源,這不會允許流量在執行個體之間流動。

範例

下圖顯示在兩個可用區域中具有子網路、一個網際網路閘道和一個 Application Load Balancer 的 VPC。每個可用區域都有一個用於 Web 伺服器的公用子網路,以及一個用於資料庫伺服器的私有子網路。負載平衡器、Web 伺服器和資料庫伺服器有個別的安全群組。建立下列安全群組規則以允許流量。

  • 將規則新增至負載平衡器的安全群組以允許來自網際網路的 HTTP 和 HTTPS 流量。來源是 0.0.0.0/0。

  • 將規則新增至 Web 伺服器的安全群組,以僅允許來自負載平衡器的 HTTP 和 HTTPS 流量。來源是負載平衡器的安全群組。

  • 將規則新增至資料庫伺服器的安全群組,以允許來自 Web 伺服器的資料庫請求。來源是 Web 伺服器的安全群組。

具有兩個安全群組、兩個可用區域中的伺服器、一個網際網路閘道和一個 Application Load Balancer 的 VPC。公有子網路中的 Web 伺服器有一個安全群組,私有子網路中的資料庫伺服器有另一個安全群組。

安全群組大小

來源或目的地類型會決定每個規則如何計入每個安全群組可擁有的規則數目上限。

  • 參考 CIDR 區塊的規則會計為一個規則。

  • 參考另一個安全群組的規則會計為一個規則,無論參考之安全群組的大小為何。

  • 參考客戶管理之字首清單的規則會計為字首清單的大小上限。例如,如果字首清單的大小上限為 20,則參考此字首清單的規則會計為 20 個規則。

  • 參考 AWS-managed 前置詞清單的規則會計為首碼清單的權重。例如,如果字首清單的權重為 10,則參考此字首清單的規則會計為 10 個規則。如需詳細資訊,請參閱 可用的 AWS託管前綴列表

過時的安全群組規則

若 VPC 和另一個 VPC 之間有 VPC 對等互連連線或與其他帳戶共用一個 VPC,則 VPC 的安全群組規則會參考該對等 VPC 或共用 VPC 中的安全群組規則。這可讓與被參考安全群組相關聯的資源,以及與參考安全群組相關聯的執行個體彼此通訊。

如果共用 VPC 中的安全群組遭到刪除,或是 VPC 對等互連連線遭到刪除,則安全群組規則會標示為過時。如同任何其他的安全群組規則,您可以刪除過時的安全群組規則。如需詳細資訊,請參閱 Amazon VPC 對等指南中的使用過時安全群組規則

使用安全群組規則

下列任務會示範如何使用安全群組規則。

所需的許可

將規則新增至安全群組

當您為安全群組新增規則時,新規則會自動套用到所有與安全群組相關聯的任何資源。

若您有 VPC 對等互連連線,您可以參考對等 VPC 的安全群組做為您安全群組規則中的來源或目標。如需詳細資訊,請參閱 Amazon VPC 互連指南中的更新您的安全群組,使其參考互連 VPC 安全群組

如需有關管理安全群組規則所需之許可的詳細資訊,請參閱 管理安全群組規則

警告

如果您選擇任何位置-IPv4,則會允許來自所有 IPv4 地址的流量。如果您選擇任何位置-IPv6,則會允許來自所有 IPv6 地址的流量。在您為連接埠 22 (SSH) 或 3,389 (RDP) 新增規則時,請僅授權特定 IP 地址範圍以存取您的執行個體。

使用主控台新增規則
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇安全群組

  3. 選取安全群組。

  4. 選擇 Actions (動作)Edit inbound rules (編輯傳入規則)Actions (動作)Edit outbound rules (編輯傳出規則)

  5. 針對每個規則,選擇 Add rule (新增規則) 並執行下列動作。

    1. Type (類型) 中,選擇要允許的通訊協定類型。

      • 針對 TCP 或 UDP,您必須輸入要允許的連接埠範圍。

      • 針對自訂 ICMP,則必須從 Protocol (通訊協定) 中選擇 ICMP 類型名稱,然後再從 Port Range (連接埠範圍) 中選擇代碼名稱 (若適用)。

      • 如果是任何其他類型,則系統會自動設定通訊協定和連接埠範圍。

    2. 針對 Source type (來源類型) (傳入規則) 或 Destination type (目的地類型) (傳出規則),請執行下列其中一項操作以允許流量:

      • 選擇 Custom (自訂),然後以 CIDR 標記法、CIDR 區塊、其他安全群組或字首清單輸入 IP 地址。

      • 選擇 Anywhere-IPv4 (任何位置-IPv4) 可允許來自任何 IPv4 地址的流量 (傳入規則) 或允許流量到達所有 IPv4 地址 (傳出規則)。此會自動為 0.0.0.0/0 IPv4 CIDR 區塊新增規則。

      • 選擇 Anywhere-IPv6 (任何位置-IPv6) 可允許來自任何 IPv6 地址的流量 (傳入規則) 或允許流量到達所有 IPv6 地址 (傳出規則)。此會自動為 ::/0 IPv6 區塊新增規則。

      • 選擇 My IP (我的 IP) 可僅允許來自 (傳入規則) 或傳送到 (傳出規則) 本機電腦的公有 IPv4 地址的流量。

    3. (選用) 針對 Description (描述),指定規則的簡短描述。

  6. 選擇 Save rules (儲存規則)

若要使用將規則新增至安全群組 AWS CLI

使用 authorize-security-group-ingressauthorize-security-group-egress 命令。

更新安全群組規則

當您更新規則時,更新的規則會自動套用至與安全群組相關聯的任何資源。

如需有關管理安全群組規則所需之許可的詳細資訊,請參閱管理安全群組規則

使用主控台更新規則
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇安全群組

  3. 選取安全群組。

  4. 選擇 Actions (動作)Edit inbound rules (編輯傳入規則)Actions (動作)Edit outbound rules (編輯傳出規則)

  5. 視需求更新規則。

  6. 選擇 Save rules (儲存規則)

若要使用更新安全群組規則 AWS CLI

使用 modify-security-group-rulesupdate-security-group-rule-descriptions-ingressupdate-security-group-rule-descriptions-egress 命令。

將安全群組規則加上標籤

將標籤新增至您的資源,以利您依據用途、擁有者或環境來整理並辨識資源。您可以為安全群組規則新增標籤。每個安全群組規則的標籤索引鍵必須是唯一的。如果新增的標籤有已經和安全群組規則建立關聯的索引鍵,則此動作會更新該標籤的值。

使用主控台將規則加上標籤
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇安全群組

  3. 選取安全群組。

  4. Inbound rules (傳入規則) 或 Outbound rules (傳出規則) 索引標籤上,選取規則的核取方塊,然後選取 Manage tags (管理標籤)。

  5. Manage tags (管理標籤) 頁面會顯示指派給規則的任何標籤。若要新增標籤,請選擇 Add tag (新增標籤),然後輸入標籤金鑰和值。若要移除標籤,請在您要移除的標籤旁邊選擇 Remove (移除)

  6. 選擇 Save changes (儲存變更)。

若要使用標記規則 AWS CLI

使用 create-tags 命令。

刪除安全群組規則

當您從安全群組刪除規則時,變更會自動套用到所有與安全群組相關聯的所有執行個體。

使用主控台刪除安全群組規則
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇安全群組

  3. 選取安全群組。

  4. 選擇 Actions (動作),然後選擇 Edit inbound rules (編輯傳入規則) 以移除傳入規則,或選擇 Edit outbound rules (編輯傳出規則) 以移除傳出規則。

  5. 選擇規則右側的 Delete (刪除) 按鈕以進行刪除。

  6. 選擇 Save rules (儲存規則)。或者,選擇預覽變更,檢閱變更,然後選擇確認

若要使用刪除安全群組規則 AWS CLI

使用 revoke-security-group-ingressrevoke-security-group-egress 命令。

範例規則

Web 伺服器

以下是 Web 伺服器安全群組的範例規則。Web 伺服器可接收來自所有 IPv4 和 IPv6 地址的 HTTP 和 HTTPS 流量,並將 SQL 或 MySQL 流量傳送至您的資料庫伺服器。

警告

在您為連接埠 22 (SSH) 或 3389 (RDP) 新增規則以便可以存取 EC2 執行個體時,我們建議您僅授權特定 IP 地址範圍。如果您指定 0.0.0.0/0 (IPv4) 和 ::/ (IPv6),這可讓任何人使用指定的通訊協定從任何 IP 地址存取您的執行個體。

傳入
來源 通訊協定 連接埠範圍 描述

0.0.0.0/0

TCP

80

允許來自所有 IPv4 地址的傳入 HTTP 存取

::/0 TCP 80 允許來自所有 IPv6 地址的傳入 HTTP 存取

0.0.0.0/0

TCP

443

允許來自所有 IPv4 地址的傳入 HTTPS 存取

::/0 TCP 443 允許來自所有 IPv6 地址的傳入 HTTPS 存取
您網路的公有 IPv4 地址範圍

TCP

22

(選用) 允許來自您網路中 IPv4 IP 地址的傳入 SSH 存取

您網路的公有 IPv6 地址範圍 TCP 22 (選用) 允許來自您網路中 IPv6 IP 地址的傳入 SSH 存取
您網路的公有 IPv4 地址範圍

TCP

3389

(選用) 允許來自您網路中 IPv4 IP 地址的傳入 RDP 存取

您網路的公有 IPv6 地址範圍 TCP 3389 (選用) 允許來自您網路中 IPv6 IP 地址的傳入 RDP 存取
此安全群組的 ID 全部 全部 (選用) 允許來自與此安全群組相關聯之其他伺服器的傳入流量。
傳出
目的地 通訊協定 連接埠範圍 描述
執行 Microsoft SQL Server 之執行個體的安全群組 ID

TCP

1433

允許傳出 Microsoft SQL 伺服器存取

執行 MySQL 之執行個體的安全群組 ID

TCP

3306

允許傳出 MySQL 存取

資料庫伺服器

資料庫伺服器需要允許傳入特定通訊協定的規則,例如 MySQL 或 Microsoft SQL Server。如需範例,請參閱《Amazon EC2 使用者指南》中的資料庫伺服器規則。如需 Amazon RDS 資料庫執行個體安全群組的詳細資訊,請參閱《Amazon RDS 使用者指南》中的透過安全群組控制存取權限

疑難排解可達性問題

Reachability Analyzer 是一種靜態配置分析工具。使用可 Reachability Analyzer 來分析和偵錯 VPC 中兩個資源之間的網路連接性。可 Reachability Analyzer 產生這些資源之間的虛擬路徑的 hop-by-hop 詳細信息,當它們是可訪問的,並識別阻塞組件,否則。例如,它可以識別遺漏或設定錯誤的安全群組規則。

如需詳細資訊,請參閱 Reachability Analyzer Guide (《Reachability Analyzer 指南》)。