

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

# 安全群組規則
<a name="security-group-rules"></a>

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

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

**Topics**
+ [安全群組規則基礎知識](#security-group-rule-characteristics)
+ [安全群組規則的元件](#security-group-rule-components)
+ [安全群組參考](#security-group-referencing)
+ [安全群組大小](#security-group-size)
+ [過時的安全群組規則](#vpc-stale-security-group-rules)

## 安全群組規則基礎知識
<a name="security-group-rule-characteristics"></a>

以下為安全群組規則的特性：
+ 您可以指定允許規則，但無法指定拒絕規則。
+ 當您首次建立安全群組時，它沒有傳入規則。因此，在您將傳入規則新增到安全群組之前，都不會允許傳入流量。
+ 當您首次建立安全群組時，該安全群組會具有允許來自該資源的所有傳出流量的傳出規則。您可以移除規則並新增只允許特定傳出流量的傳出規則。若您的安全群組沒有傳出規則，將不會允許傳出流量。
+ 當您將多個安全群組與資源建立關聯時，會將每個安全群組的規則彙總以構成一組規則，並使用這組規則來決定是否允許存取。
+ 當您新增、更新或移除規則時，您的變更會自動套用至與安全群組相關聯的所有資源。如需說明，請參閱[設定安全群組規則](working-with-security-group-rules.md)。
+ 有些規則變更的效果可取決於追蹤流量的方式。如需詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的[連線追蹤](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html)。
+ 當您建立安全群組規則時， 會 AWS 為規則指派唯一的 ID。當您使用 API 或 CLI 修改或刪除規則時，可以使用規則的 ID。

**限制**  
安全群組無法封鎖有時稱為「VPC\$12 IP 位址」(請參閱*《Amazon Route 53 開發人員指南》*中的 [Amazon Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html)) 或 [AmazonProvidedDNS](DHCPOptionSet.md) 的 Route 53 Resolver 所接收或發出的 DNS 請求。若要透過 Route 53 Resolver 篩選 DNS 請求，請使用 [Route 53 Resolver DNS Firewall](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-dns-firewall.html)。

## 安全群組規則的元件
<a name="security-group-rule-components"></a>

以下是傳入和傳出安全群組規則的組成部分：
+ **通訊協定**：要允許的通訊協定。最常見的通訊協定為 6 (TCP)、17 (UDP) 和 1 (ICMP)。
+ **連接埠範圍**：適用於 TCP、UDP 或自訂通訊協定，要允許的連接埠範圍。您可以指定單一連接埠號碼 (例如，`22`)，或是連接埠號碼的範圍 (例如，`7000-8000`)。
+ **ICMP 類型及代碼**：適用於 ICMP，為 ICMP 的類型及代碼。例如，使用類型 8 代表「ICMP Echo 請求」，輸入 128 則代表「ICMPv6 Echo 請求」。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的 [Ping/ICMP 的規則](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-ping)。
+ **來源或目的地**：允許流量的來源 (傳入規則) 或目的地 (傳出規則)。請指定下列其中一項：
  + 單一 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`。如需詳細資訊，請參閱[受管理的字首清單](managed-prefix-lists.md)。
  + 安全群組的 ID。例如 `sg-1234567890abcdef0`。如需詳細資訊，請參閱[安全群組參考](#security-group-referencing)。
+ **(Optional) Description ((選用) 描述)**：您可以為規則新增描述，這可協助您在稍後更容易識別它。描述的長度最高可達 255 個字元。允許的字元為 a-z、A-Z、0-9、空格鍵和 .\$1-:/()\$1,@[]\$1=;\$1\$1\$1\$1\$1。

如需範例，請參閱《Amazon EC2 使用者指南》**中的[不同使用案例的安全群組規則](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html)。

## 安全群組參考
<a name="security-group-referencing"></a>

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

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


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

在安全群組規則中參考安全群組時，請注意下列事項：
+ 如果下列任一情況為 true，您可以在另一個安全群組的傳入規則中參考安全群組：
  + 與同一 VPC 關聯的安全群組。
  + 與安全群組相關聯的 VPC 之間有互連連線。
  + 與安全群組相關聯的 VPC 之間有傳輸閘道。
+ 如果下列任一情況為 true，您可以在傳出規則中參考安全群組：
  + 與同一 VPC 關聯的安全群組。
  + 與安全群組相關聯的 VPC 之間有互連連線。
+ 所參考安全群組中的規則不會新增至參考該安全群組的安全群組。
+ 對於傳入規則，與安全群組關聯的 EC2 執行個體可以從與參考安全群組相關聯之 EC2 執行個體的網路介面中的私有 IP 位址接收傳入流量。
+ 對於傳出規則，與安全群組關聯的 EC2 執行個體可以將傳出流量傳送至與參考安全群組相關聯之 EC2 執行個體的網路介面中的私有 IP 位址。
+ 我們不會在下列動作中對參考的安全群組進行授權：`AuthorizeSecurityGroupIngress`、`AuthorizeSecurityGroupEgress`、`RevokeSecurityGroupIngress` 與 `RevokeSecurityGroupEgress`。我們只會檢查安全群組是否存在。此舉會導致以下情形：
  + 在 IAM 政策中為這些動作指定參考的安全群組沒有作用。
  + 當另一個帳戶擁有參考的安全群組時，擁有者帳戶不會收到這些動作的 CloudTrail 事件。

**限制**

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

**範例**

下圖顯示在兩個可用區域中具有子網路、一個網際網路閘道和一個 Application Load Balancer 的 VPC。每個可用區域都有一個用於 Web 伺服器的公用子網路，以及一個用於資料庫伺服器的私有子網路。負載平衡器、Web 伺服器和資料庫伺服器有個別的安全群組。建立下列安全群組規則以允許流量。
+ 將規則新增至負載平衡器的安全群組以允許來自網際網路的 HTTP 和 HTTPS 流量。來源是 0.0.0.0/0。
+ 將規則新增至 Web 伺服器的安全群組，以僅允許來自負載平衡器的 HTTP 和 HTTPS 流量。來源是負載平衡器的安全群組。
+ 將規則新增至資料庫伺服器的安全群組，以允許來自 Web 伺服器的資料庫請求。來源是 Web 伺服器的安全群組。

![\[具有 Web 和 db 伺服器、安全群組、網際網路閘道和負載平衡器的架構\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/security-group-referencing.png)


## 安全群組大小
<a name="security-group-size"></a>

來源或目的地類型會決定每個規則如何計入每個安全群組可擁有的規則數目上限。
+ 參考 CIDR 區塊的規則會計為一個規則。
+ 參考另一個安全群組的規則會計為一個規則，無論參考之安全群組的大小為何。
+ 參考客戶管理之字首清單的規則會計為字首清單的大小上限。例如，如果字首清單的大小上限為 20，則參考此字首清單的規則會計為 20 個規則。
+ 參考 AWS受管字首清單的規則會計入字首清單的權重。例如，如果字首清單的權重為 10，則參考此字首清單的規則會計為 10 個規則。如需詳細資訊，請參閱[可用的 AWS受管字首清單](working-with-aws-managed-prefix-lists.md#available-aws-managed-prefix-lists)。

## 過時的安全群組規則
<a name="vpc-stale-security-group-rules"></a>

若 VPC 和另一個 VPC 之間有 VPC 對等互連連線或與其他帳戶共用一個 VPC，則 VPC 的安全群組規則會參考該對等 VPC 或共用 VPC 中的安全群組規則。這可讓與被參考安全群組相關聯的資源，以及與參考安全群組相關聯的執行個體彼此通訊。如需詳細資訊，請參閱《Amazon VPC 互連指南》**中的[更新您的安全群組，使其參考互連安全群組](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-security-groups.html)。

如果您有一個參考互連 VPC 或共用 VPC 中安全群組的安全群組規則，並且共用 VPC 中的安全群組被删除或 VPC 對等互連遭到删除，則該安全群組規則將被標記為過時。如同任何其他的安全群組規則，您可以刪除過時的安全群組規則。