使用安全組控制到資源的流量 - Amazon Virtual Private Cloud

使用安全組控制到資源的流量

安全群組負責控制允許到達和離開其關聯資源的流量。例如,將安全群組與 EC2 執行個體相關聯後,就會控制執行個體的傳入和傳出流量。

當您建立 VPC 時,其具有一個預設的安全群組。您可以為每個 VPC 建立額外的安全群組。您只能將安全群組與其建立以用於該 VPC 中的資源相關聯。

對於每個安全群組,您可以新增規則,以根據協定和連接埠編號控制流量。傳入流量和傳出流量有不同的規則集合。

使用安全群組無需額外收費。

安全群組基礎知識

安全群組的特性
  • 當您建立安全群組時,您必須提供名稱和描述。適用的規定如下:

    • 安全群組名稱在 VPC 中必須是唯一的。

    • 名稱和描述的長度最多可達 255 個字元。

    • 名稱和描述僅能使用下列字元:a-z、A-Z、0-9、空格,以及 ._-:/()#,@[]+=&;{}!$*。

    • 當名稱包含結尾空格時,我們會裁剪名稱結尾處的空格。例如,如果您輸入「測試安全群組」做為名稱,我們會將其儲存為「測試安全群組」。

    • 安全群組名稱的開頭不能是 sg-

  • 安全群組具狀態。例如,若您從執行個體傳送請求,則允許該請求的回應流量到達執行個體,不論傳入安全群組規則為何。都會允許對允許傳入流量的回應離開執行個體,不論傳出規則為何。

  • 您可以為每個 VPC 建立的安全群組數、每個安全群組可新增的規則數,以及您可以與網路介面建立關聯的安全群組數都具有配額。如需更多詳細資訊,請參閱 Amazon VPC 配額

安全群組規則的特性
  • 您可以指定允許規則,但無法指定拒絕規則。

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

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

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

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

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

最佳實務
  • 僅授權特定 IAM 主體建立和修改安全群組。

  • 建立您需要的最小數量的安全群組,以降低發生錯誤的風險。使用每個安全群組來管理對具有類似功能和安全要求之資源的存取權。

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

  • 請勿開啟較大的連接埠範圍。確保透過每個連接埠進行的存取僅限於需要連接埠的來源或目的地。

  • 考慮使用與您的安全群組相似的規則來建立網路 ACL,以為您的 VPC 新增額外的安全層。如需有關安全群組與網路 ACL 間差異的詳細資訊,請參閱比較安全群組和網路 ACL

VPC 的預設安全群組

您的預設 VPC 和您建立的任何 VPC 皆隨附預設的安全群組。對於某些資源,如果您未在建立資源時關聯一個安全群組,即會關聯至預設安全群組。例如,如果您在啟動 EC2 執行個體時未指定安全群組,即會關聯至預設安全群組。

您可以變更預設安全群組的規則。您無法刪除預設安全群組。如果您嘗試刪除預設安全群組,則會收到下列錯誤:Client.CannotDelete

下表說明預設安全群組的預設規則。

Inbound
來源 通訊協定 連接埠範圍 描述
sg-1234567890abcdef0

全部

全部

允許來自指派給此安全群組的所有資源的傳入流量。來源為此安全群組的 ID。

Outbound

目的地 通訊協定 連接埠範圍 描述

0.0.0.0/0

全部

全部

允許所有傳出 IPv4 流量。

::/0 All All Allows all outbound IPv6 traffic. This rule is added only if your VPC has an associated IPv6 CIDR block.

安全群組規則

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

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

注意

安全群組無法阻止 Route 53 Resolver 接收或發出的 DNS 請求,有時稱為「VPC+2 IP 地址」 (請參閱Amazon Route 53 開發人員指南中的 Amazon Route 53 Resolver),或稱為 AmazonProvidedDNS。若要透過 Route 53 Resolver 篩選 DNS 請求,請使用 Route 53 Resolver DNS 防火牆

警告

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

安全群組規則的元件

  • 通訊協定:要允許的通訊協定。最常見的通訊協定為 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-11111111111111111 的傳入規則,其會參考安全群組 sg-22222222222222222 且允許 SSH 存取。

Source Protocol Port range
sg-22222222222222222

TCP

22

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

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

  • 被參考之安全群組 (sg-22222222222222222) 的規則不會新增至參考其的安全群組 (sg-11111111111111111)。

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

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

限制

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

安全群組大小

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

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

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

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

  • 參考 AWS 管理之字首清單的規則會計為其權重。如需更多詳細資訊,請參閱 可用之 AWS 管理的前綴清單

範例規則

您新增至安全群組的規則通常視安全群組的用途而定。下表描述與 Web 伺服器相關聯之安全群組的範例規則。您的 Web 伺服器可接收來自所有 IPv4 和 IPv6 地址的 HTTP 和 HTTPS 流量,並將 SQL 或 MySQL 流量傳送至您的資料庫伺服器。

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

0.0.0.0/0

TCP

80

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

::/0 TCP 80 Allows inbound HTTP access from all IPv6 addresses

0.0.0.0/0

TCP

443

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

::/0 TCP 443 Allows inbound HTTPS access from all IPv6 addresses
您網路的公有 IPv4 地址範圍

TCP

22

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

您網路的公有 IPv4 地址範圍

TCP

3389

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

Outbound

目的地 通訊協定 連接埠範圍 描述
執行 Microsoft SQL Server 之執行個體的安全群組 ID

TCP

1433

允許傳出 Microsoft SQL 伺服器存取

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

TCP

3306

允許傳出 MySQL 存取

資料庫伺服器需要不同的一組規則。例如,相較於傳入 HTTP 和 HTTPS 流量,您可以改為新增一條規則,允許傳入 MySQL 或 Microsoft SQL Server 存取。如需範例,請參閱安全性。如需 Amazon RDS 資料庫執行個體安全群組的詳細資訊,請參閱《Amazon RDS 使用者指南》中的透過安全群組控制存取權限

如需其他範例,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的安全群組規則參考

過時的安全群組規則

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

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

使用安全群組

下列任務會示範如何搭配 Amazon VPC 主控台使用安全群組。

所需的許可

建立安全群組

根據預設,新的安全群組一開始只有允許流量離開資源的傳出規則。您必須新增規則啟用任何傳入流量,或是限制傳出流量。

安全群組只能在建立該群組的 VPC 中使用。

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

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

  2. 在導覽窗格中,選擇 Security Groups (安全群組)。

  3. 選擇 Create Security Group (建立安全群組)。

  4. 輸入安全群組的名稱和說明。您無法在建立安全群組之後變更安全群組的名稱和說明。

  5. VPC 中選擇 VPC。

  6. 您可以立即新增安全群組規則,也可以稍後再新增。如需更多詳細資訊,請參閱 將規則新增至安全群組

  7. 您可以立即新增標籤,也可以稍後再新增。若要新增標籤,請選擇 Add new tag (新增標籤),然後輸入標籤的索引鍵和值。

  8. 選擇 Create Security Group (建立安全群組)

建立安全群組後,即可在啟動執行個體時或變更目前指派給執行個體的安全群組時,將安全群組指派給 EC2 執行個體。如需詳細資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的使用定義的參數啟動執行個體變更執行個體的安全群組

使用命令列建立安全群組

檢視您的安全群組

您可以按照以下方式檢視安全群組的相關資訊。

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

使用主控台檢視您的安全群組
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Security Groups (安全群組)。

  3. 系統會列出您的安全群組。若要檢視包括其輸入和輸出規則等特定安全群組詳細資訊,請選取安全群組。

使用命令列檢視您的安全群組
若要跨區域檢視所有安全群組

前往 https://console.aws.amazon.com/ec2globalview/home 開啟 Amazon EC2 全域檢視主控台。

如需有關使用 Amazon EC2 全域檢視的詳細資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的使用 Amazon EC2 全域檢視列出及篩選資源

將您的安全群組加上標籤

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

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

  2. 在導覽窗格中,選擇 Security Groups (安全群組)。

  3. 選取安全群組的核取方塊。

  4. 選擇 Actions (動作)Manage tags (管理標籤)

  5. Manage tags(管理標籤) 頁面會顯示指派給安全群組的所有標籤。若要新增標籤,請選擇 Add tag (新增標籤),然後輸入標籤索引鍵和值。若要移除標籤,請在您要移除的標籤旁邊選擇 Remove (移除)

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

使用命令列將安全群組加上標籤

刪除安全群組

只有在未與資源相關聯的情況下,才能刪除安全群組。您無法刪除預設安全群組。

若您使用主控台,您可以一次刪除超過一個安全群組。若您使用命令列或 API,您一次只能刪除一個安全群組。

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

  2. 在導覽窗格中,選擇 Security Groups (安全群組)

  3. 選取一或多個安全群組,然後選擇 Actions (動作)Delete security groups (刪除安全群組)

  4. 出現確認提示時,請輸入 delete,然後選擇 Delete (刪除)

使用命令列刪除安全群組

使用安全群組規則

下列任務會示範如何搭配 Amazon VPC 主控台使用安全群組規則。

所需的許可

將規則新增至安全群組

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

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

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

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

  2. 在導覽窗格中,選擇 Security Groups (安全群組)

  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-IPv4 (任何位置-IPv4),則可讓所有 IPv4 地址使用指定的通訊協定存取您的執行個體。如果您要為連接埠 22 (SSH) 或 3389 (RDP) 新增規則,則應只授權特定 IP 地址或特定範圍的地址來存取您的執行個體。

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

        警告

        如果選擇 Anywhere-IPv6 (任何位置-IPv6),則可讓所有 IPv6 地址使用指定的通訊協定存取您的執行個體。如果您要為連接埠 22 (SSH) 或 3389 (RDP) 新增規則,則應只授權特定 IP 地址或特定範圍的地址來存取您的執行個體。

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

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

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

使用命令列為安全群組新增規則

更新安全群組規則

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

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

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

  2. 在導覽窗格中,選擇 Security Groups (安全群組)

  3. 選取安全群組。

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

  5. 視需求更新規則。

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

將安全群組規則加上標籤

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

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

  2. 在導覽窗格中,選擇 Security Groups (安全群組)

  3. 選取安全群組。

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

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

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

使用命令列將規則加上標籤

刪除安全群組規則

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

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

  2. 在導覽窗格中,選擇 Security Groups (安全群組)

  3. 選取安全群組。

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

  5. 選擇要刪除之規則右側的 Delete (刪除) 按鈕。

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

使用命令列刪除安全群組規則

使用 集中管理 VPC 安全群組AWS Firewall Manager

AWS Firewall Manager使用 簡化您多個帳戶和資源的 VPC 安全群組管理及維護工作。使用 Firewall Manager,您可以從單一中央系統管理員帳戶設定及稽核組織的安全群組。Firewall Manager 會自動在帳號和資源中套用規則和防護,甚至在您新增資源時也可套用。當您想要保護整個組織,或者您經常新增要從中央系統管理員帳戶保護的新資源時,Firewall Manager 特別有用。

您可以使用 Firewall Manager 以下列方式集中管理安全群組:

  • 設定全組織適用的通用基準安全群組:您可以使用通用安全群組政策,為組織中的帳戶和資源提供安全群組的集中控制關聯。您可以指定要在您組織中要套用政策的項目與如何套用。

  • 稽核組織中現有的安全群組:您可以使用稽核安全群組政策來檢查組織安全群組中正在使用的現有規則。您可以將策略範圍限制為稽核組織內標記的所有帳號、特定帳號或資源。Firewall Manager 會自動偵測新帳號和資源並進行稽核。您可以建立稽核規則來設定在組織中允許或不允許的安全群組規則護欄,以及檢查是否有未使用或多餘的安全群組。

  • 取得不合規資源的報告並加以修復:您可以針對基準和稽核政策取得不合規資源的報告和警示。您也可以設定自動修復工作流程,以修復 Firewall Manager 偵測到的任何不合規的資源。

若要進一步了解如何使用 Firewall Manager 來管理安全群組,請參閱 AWS WAF 開發人員指南中的下列主題: