安全群組規則
安全群組的規則可控制允許到達與安全群組相關聯之資源的傳入流量。規則也會控制允許離開的對外流量。
您可以新增或移除安全群組的規則 (也稱為授權或撤銷傳入或傳出存取)。規則會套用至傳入流量 (輸入) 或傳出流量 (輸出)。您可以授予特定來源或目的地的存取權。
安全群組規則的特性
-
您可以指定允許規則,但無法指定拒絕規則。
-
當您首次建立安全群組時,它沒有傳入規則。因此,在您將傳入規則新增到安全群組之前,都不會允許傳入流量。
-
當您首次建立安全群組時,該安全群組會具有允許來自該資源的所有傳出流量的傳出規則。您可以移除規則並新增只允許特定傳出流量的傳出規則。若您的安全群組沒有傳出規則,將不會允許傳出流量。
-
當您將多個安全群組與資源建立關聯時,會將每個安全群組的規則彙總以構成一組規則,並使用這組規則來決定是否允許存取。
-
當您新增、更新或移除規則時,您的變更會自動套用至與安全群組相關聯的所有資源。有些規則變更的效果可取決於追蹤流量的方式。如需詳細資訊,請參閱《適用於 Linux 執行個體 的 Amazon EC2 使用者指南》中的連線追蹤。
-
當您建立安全群組規則時,AWS 會為規則指派唯一 ID。當您使用 API 或 CLI 修改或刪除規則時,可以使用規則的 ID。
限制
安全群組無法封鎖有時稱為「VPC+2 IP 地址」(請參閱《Amazon Route 53 開發人員指南》中的 Amazon Route 53 Resolver) 或 AmazonProvidedDNS 的 Route 53 Resolver 所接收或發出的 DNS 請求。若要透過 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-11111111111111111 的傳入規則,其會參考安全群組 sg-22222222222222222 且允許 SSH 存取。
來源 | 通訊協定 | 連接埠範圍 |
---|---|---|
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 管理的前綴清單。
過時的安全群組規則
若 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 地址範圍以存取您的執行個體。
使用主控台新增規則
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇安全群組。
-
選取安全群組。
-
選擇 Actions (動作)、Edit inbound rules (編輯傳入規則) 或 Actions (動作)、Edit outbound rules (編輯傳出規則)。
-
針對每個規則,選擇 Add rule (新增規則) 並執行下列動作。
-
在 Type (類型) 中,選擇要允許的通訊協定類型。
-
針對 TCP 或 UDP,您必須輸入要允許的連接埠範圍。
-
針對自訂 ICMP,則必須從 Protocol (通訊協定) 中選擇 ICMP 類型名稱,然後再從 Port Range (連接埠範圍) 中選擇代碼名稱 (若適用)。
-
如果是任何其他類型,則系統會自動設定通訊協定和連接埠範圍。
-
-
針對 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 地址的流量。
-
-
(選用) 針對 Description (描述),指定規則的簡短描述。
-
-
選擇 Save rules (儲存規則)。
如何使用 AWS CLI 將規則新增至安全群組
使用 authorize-security-group-ingress 和 authorize-security-group-egress 命令。
更新安全群組規則
當您更新規則時,更新的規則會自動套用至與安全群組相關聯的任何資源。
如需有關管理安全群組規則所需之許可的詳細資訊,請參閱管理安全群組規則。
使用主控台更新規則
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇安全群組。
-
選取安全群組。
-
選擇 Actions (動作)、Edit inbound rules (編輯傳入規則) 或 Actions (動作)、Edit outbound rules (編輯傳出規則)。
-
視需求更新規則。
-
選擇 Save rules (儲存規則)。
如何使用 AWS CLI 更新安全群組規則
使用 modify-security-group-rules、update-security-group-rule-descriptions-ingress 和 update-security-group-rule-descriptions-egress 命令。
將安全群組規則加上標籤
將標籤新增至您的資源,以利您依據用途、擁有者或環境來整理並辨識資源。您可以為安全群組規則新增標籤。每個安全群組規則的標籤索引鍵必須是唯一的。如果新增的標籤有已經和安全群組規則建立關聯的索引鍵,則此動作會更新該標籤的值。
使用主控台將規則加上標籤
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇安全群組。
-
選取安全群組。
-
在 Inbound rules (傳入規則) 或 Outbound rules (傳出規則) 索引標籤上,選取規則的核取方塊,然後選取 Manage tags (管理標籤)。
-
Manage tags (管理標籤) 頁面會顯示指派給規則的任何標籤。若要新增標籤,請選擇 Add tag (新增標籤),然後輸入標籤金鑰和值。若要移除標籤,請在您要移除的標籤旁邊選擇 Remove (移除)。
-
選擇 Save changes (儲存變更)。
如何使用 AWS CLI 為規則新增標籤
使用 create-tags 命令。
刪除安全群組規則
當您從安全群組刪除規則時,變更會自動套用到所有與安全群組相關聯的所有執行個體。
使用主控台刪除安全群組規則
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇安全群組。
-
選取安全群組。
-
選擇 Actions (動作),然後選擇 Edit inbound rules (編輯傳入規則) 以移除傳入規則,或選擇 Edit outbound rules (編輯傳出規則) 以移除傳出規則。
-
選擇規則右側的 Delete (刪除) 按鈕以進行刪除。
-
選擇 Save rules (儲存規則)。此外,也可以選擇預覽變更,檢閱變更,然後選擇確認。
如何使用 AWS CLI 刪除安全群組規則規則
使用 revoke-security-group-ingress 和 revoke-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 使用者指南》中的透過安全群組控制存取權限。