要管理對 EC2 實例的網路存取,Amazon Web Services (AWS) 提供了多種機制,讓您可以允許或阻擋特定 IP 位址的存取。以下是一步步教您如何控制 EC2 實例的存取權限:
瞭解 Security Group 與 Network ACL
在深入操作之前,先了解兩個 AWS 的關鍵元件:Security Group 和 Network Access Control Lists (ACL)。
Security Group:這些虛擬防火牆用於 EC2 實例,負責控制實例層級的入站與出站流量。
Network ACL:這是位於子網層級的安全防護,負責控制進入與離開一個或多個子網的流量。
什麼是入站與出站規則?
• 入站規則 (Inbound):這些規則控制進入 EC2 實例的網路流量,定義哪些流量被允許進入。例如,若您的 EC2 實例上運行著 Web 伺服器,您需要設置入站規則,允許 80 (HTTP) 和 443 (HTTPS) 埠的流量,讓使用者可以訪問您的網站。
• 出站規則 (Outbound):這些規則控制離開 EC2 實例的網路流量,指定哪些流量可以離開實例。例如,如果您的應用程式需要存取外部資料庫或 API,您可以設置出站規則,允許流量通過指定的 IP 或埠來連接到外部資料庫或 API。
使用 Security Group 允許或阻擋 IP 的逐步指南
1. 登入 AWS 控制台,並導航至 EC2 服務。點擊「Instances」查看可用的實例。

2. 從中選擇您希望允許 IP 存取的實例,然後導航至「Security」標籤。

3. 您將看到此 EC2 實例附加的「Security Groups」,並能查看所有的入站與出站規則。點擊「Security Group」的名稱,進入該組。

4. 選擇您需要的入站或出站規則。本範例將演示如何阻止所有 IP 存取 EC2 的 SSH(入站),僅允許您的 IP 存取。選擇「入站規則」,然後點擊「編輯入站規則」。

5. SSH 的規則通常是預設生成的,於「來源」欄位點擊下拉選單並選擇「My IP」。

6. 新增規則後,點擊「儲存規則」。這將只允許您存取 SSH。要阻止特定 IP,確保不將它們包含在允許的規則中。由於 AWS Security Groups 是有狀態的,並且採用白名單模式,這意味著它會拒絕所有未明確允許的流量。為了阻止特定 IP,請確保它們未被包含在允許的規則中。
使用 Network ACL 允許或阻擋 IP 的逐步指南
1. 登入 AWS 控制台,並導航至 EC2 服務。點擊「Instances」查看可用的實例。

2. 從中選擇您希望允許或阻擋 IP 存取的實例,並在詳細信息區域點擊「Subnet ID」。

3. 選擇子網後,導航至「Network ACL」標籤,並點擊「Network ACL」的名稱。

4. 再次選擇「Network ACL ID」,然後導航至「入站規則」標籤,點擊「編輯入站規則」按鈕。在這裡,我們將拒絕來自特定 IP CIDR 的所有流量。

5. 點擊「新增規則」按鈕,並給它指定一個「規則編號」(規則編號決定執行順序,數字越小優先級越高)。設置為「90」,因為我們已經有一個編號為 100 的規則,所以要阻止某個 IP,必須選擇一個更低的編號以優先執行。在「來源」欄位輸入 IP CIDR,並在「允許/拒絕」中選擇「拒絕」。完成後點擊「儲存更改」。

此更改將立即生效。Network ACL 是無狀態的,預設情況下允許所有雙向流量。
結論
透過有效使用 Security Groups 和 Network ACL,您可以精確控制誰能存取您的 EC2 實例。請記住,在配置安全性時,應平衡功能性與安全性,確保不會意外阻擋合法流量或讓實例暴露於不必要的風險中。
延伸閱讀
Comments