# 用安全群組控制入站和出站流量

安全群組只包含允許規則的過濾模型、建立與繫結的操作步驟，以及繫結一張網路介面就可能讓整機入站流量預設拒絕的連帶風險。

安全群組是繫結在網路介面上的一份「只新增允許規則」的規則集。每條規則放行特定的入站或出站流量，沒有被任何規則匹配到的流量，按安全群組的預設策略處理。面板頂部有一條常駐提示：「安全組只新增允許規則；未匹配的入站流量預設拒絕，出站流量預設允許。」

**給一張網路介面繫結安全群組，可能讓整台實例的入站流量都切換為預設拒絕——包括沒有繫結任何安全群組的其他網路介面。** 預設策略作用在整台實例上，不是逐張網路介面生效。對多網卡實例來說，只給私網網路介面繫結安全群組，也可能在繫結生效的那一刻連帶切斷公網網路介面的入站流量。在給任何網路介面繫結安全群組之前，先看清楚本頁後面「將安全群組繫結到網路介面」一節裡繫結會做什麼。

_介面示意圖：VPC 詳細資料頁的安全群組面板：頂部常駐的說明提示、安全群組列表（含規則數和已繫結網路介面數欄）、以及新建安全群組按鈕_

## 開始之前

- **列出目標實例上的每一張網路介面**，確認哪些已經繫結了安全群組。繫結影響的是整台實例，不只是下拉選單裡選中的那一張。
- **先把需要放行的埠——SSH、RDP 或其他管理埠——加入規則，再執行繫結**，不要反過來。
- **明白解綁最後一張網路介面會把整機防火牆徹底關閉。** 這不是部分回退，詳見下文「解綁安全群組」。

## 建立安全群組

1. 在 VPC 詳細資料頁，進入**安全群組**面板。
2. 按一下**新建安全群組**。
3. 填寫名稱，描述為可選項。
4. 按一下**儲存**。

新建的安全群組規則數為零，也沒有繫結到任何網路介面。建立本身不會影響任何實例——風險從繫結這一步才開始，不是從建立開始。

## 新增允許規則

1. 在安全群組列表中，按一下目標安全群組的編輯圖示。
2. 按一下**新增規則**。
3. 選擇通訊協定。選擇 **TCP** 或 **UDP** 會出現起始和結束埠欄位；其他通訊協定不需要填寫埠。
4. 如果出現埠欄位，填寫起始埠和結束埠。起始埠不在 1-65535 之間會被拒絕並提示「起始埠必須在 1-65535 之間」；結束埠小於起始埠或大於 65535 會被拒絕並提示「結束埠必須不小於起始埠，且不超過 65535」。
5. 選擇遠端來源：CIDR 或 IP List，二選一。兩者都不填會阻止儲存，提示「請選擇 CIDR 或 IP List」。
6. 按一下**儲存**。

_介面示意圖：編輯安全群組規則對話方塊：含通訊協定、埠、遠端來源欄的規則表格、新增規則按鈕、規則數計數器，以及規則列表為空時出現的警告橫幅_

一個安全群組最多容納 50 條規則，對話方塊裡會即時顯示目前計數。規則列表為空時按一下儲存或關閉，會出現警告「當前沒有允許規則，入站將全部拒絕。」這條警告只出現在這裡、也就是編輯規則的對話方塊裡——它不會出現在真正觸發繫結的網路介面下拉選單上，所以看到這條警告本身不是危險時刻，把一個空安全群組繫結到網路介面上才是。

## 將安全群組繫結到網路介面

繫結用的下拉選單沒有二次確認：選中即生效。

在選擇安全群組之前，先看下面這張表，了解會發生什麼：

| 對象                     | 會發生什麼                                                       | 不會發生什麼                               |
| ------------------------ | ---------------------------------------------------------------- | ------------------------------------------ |
| 該實例的防火牆           | 整機被啟用，入站預設策略改為拒絕，出站預設策略保持允許           | 變化不會只停留在你選中的那張網路介面上     |
| 同一實例上的其他網路介面 | 只要自己沒有繫結安全群組，也會一起切換為入站預設拒絕             | 不會繼續保持它們原來的開放狀態             |
| 被繫結安全群組的規則     | 作為入站放行的例外生效                                           | 規則列表為空不會等效於「全部放行」         |
| 出站流量                 | 繼續保持預設允許                                                 | 不受本次繫結影響                           |
| 生效方式                 | 以非同步工作要求執行，面板提示「繫結已更新，正在同步實例防火牆」 | 下拉選單關閉的那一刻，新規則不保證已經生效 |

如果實例還沒有完成佈建，繫結只會更新記錄本身。此時沒有防火牆可同步，面板提示改為「繫結已更新」。

> [!CAUTION]
> 多網卡實例上，只要有任意一張網路介面首次繫結了安全群組，該實例上的**全部**網路介面都會切換為入站預設拒絕，不只是被選中的那張。選擇安全群組之前，先確認每一張網路介面都已經具備所需的放行規則——尤其是正式環境實例上的
> SSH 或 RDP 埠。

1. 在 VPC 詳細資料頁，進入**網路介面**面板。
2. 找到目標網路介面，開啟它的安全群組下拉選單。
3. 選擇要繫結的安全群組。

_介面示意圖：網路介面面板：某一列的安全群組下拉選單展開狀態，顯示可選安全群組列表和用於解綁的空白選項_

開啟[工作要求](/zh-tw/compute/operations/work-requests/)確認同步已經完成。

## 解綁安全群組

解綁用的是同一個下拉選單：選中空白選項，而不是某個安全群組。

解綁一台實例上最後一張已繫結的網路介面之前，先看下面這張表：

| 對象                                                     | 會發生什麼                                                                   | 不會發生什麼                                     |
| -------------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------ |
| 被解綁的網路介面                                         | 不再受該安全群組規則的過濾                                                   | 不會停留在某種「部分開放」的中間狀態             |
| 該實例上的其他部分，如果這是實例最後一張已繫結的網路介面 | 整機防火牆被徹底關閉，流量恢復為完全開放，等同於從未繫結過任何安全群組的狀態 | 不會以更安全、更收斂的形式保留原來的預設拒絕策略 |
| 該實例上的其他部分，如果其他網路介面仍繫結著安全群組     | 保持預設拒絕，不受這次解綁影響                                               | 解綁一張網路介面不會連帶關閉其他網路介面的防火牆 |

在多網卡實例上，單獨解綁一張網路介面並不等於完整回退。只有當這台實例上不再有任何網路介面繫結安全群組時，整機的預設拒絕策略才會關閉。

## 修改規則會影響所有繫結該安全群組的實例

儲存安全群組的規則變更，會重新同步目前繫結它的每一張網路介面所在的防火牆，涵蓋所有正在使用這個安全群組的實例。如果多台實例共用同一個安全群組——例如一個專案裡的全部 Web 伺服器——修改一條規則會在同一次操作裡影響所有這些實例，不只是你正在檢視的那一台。

## 刪除安全群組

1. 在安全群組列表中，按一下目標安全群組的刪除圖示。
2. 確認對話方塊內容：`確認刪除安全組「{{name}}」？此操作無法撤銷。`
3. 按一下**刪除安全群組**確認。

_介面示意圖：安全群組列表中處於停用狀態的刪除圖示及其提示文字，旁邊是刪除確認對話方塊_

只要還有任何網路介面繫結著這個安全群組，刪除圖示就會保持停用，游標懸停會顯示「請先從所有 ENI 解綁」。先把它從每一張網路介面上解綁，再執行刪除。

## 繫結和解綁不會影響什麼

- **出站流量。** 無論入站規則多少、無論是否繫結了安全群組，出站始終保持預設允許。
- **實例本身、其儲存和正在執行的工作負載。** 這是網路存取控制，不是電源或儲存操作。
- **主控台存取。** 它走的是管理平面，而不是實例的網路介面，所以即使入站網路流量被完全拒絕，主控台依然可用。
- **沒有執行繫結動作的實例。** 新建但未繫結的安全群組，在你把它掛到某張網路介面之前，不會影響任何實例。

## 動作遭拒時

面板會用你的介面語言原樣顯示平台傳回的提示，下面按提示分類列出，並說明處理方式。

### 獲取安全組失敗

> 獲取安全組失敗

面板未能取得這個 VPC 下的安全群組列表。重新整理頁面重試；如果持續失敗，開啟[工作要求](/zh-tw/compute/operations/work-requests/)確認這個 VPC 本身狀態正常。

### 建立、儲存或刪除安全群組失敗

> 建立安全組失敗

> 儲存安全組失敗

> 刪除安全組失敗

建立、儲存規則或刪除請求本身失敗——例如網路錯誤或登入狀態逾期。安全群組在這次操作前的狀態不受影響。重試該動作即可。

### 更新安全組繫結失敗

> 更新安全組繫結失敗

繫結或解綁請求在寫入之前就失敗了，下拉選單會自動恢復為之前的值。重新選擇一次即可。

## 相關文件

- [VPC 網路](/zh-tw/network/vpc/)
- [網路介面](/zh-tw/compute/instances/network/)
- [實例詳細資料](/zh-tw/compute/instances/detail/)
- [工作要求](/zh-tw/compute/operations/work-requests/)
