top of page
作家相片Elite Cloud

EC2 安全性:實現強化安全性的最佳實踐

Amazon EC2 是 AWS 廣泛使用的服務之一,提供 IaaS 模式下的虛擬專用伺服器(VPS)。EC2 的安全性功能結合完整的伺服器控制權與靈活的定價方案,使其成為管理 IT 基礎設施的企業的理想選擇。


然而,隨著企業依賴 EC2 執行關鍵應用程式和服務,正確實施安全性的重要性也日益凸顯。


本文將帶您了解 AWS 提供的工具以及使用 EC2 時的最佳實踐。


EC2 安全群組

EC2 的安全群組是一種虛擬防火牆,用於控制進入和離開 EC2 實例的流量。由於大部分工作與進出流量有關,能夠控制伺服器的進入與離開的流量至關重要。


建立安全群組

當您創建 EC2 實例時,系統會要求您創建或新增現有的安全群組。然而,以下將介紹如何在不建立 EC2 實例的情況下,創建並將其附加到 EC2 實例上。


首先,登入 AWS 控制台,進入 EC2 儀表板。從「網路與安全性」選項中選擇「安全群組」。

Creating a Security Group

而系統將顯示所有現有的安全群組。

Creating a Security Group

當要創建一個新的安全群組時,需點擊右上角的「創建安全群組」按鈕。


接著您將進入安全群組的設置頁面。

Creating a Security Group

填寫名稱和描述時,請確保選擇合適的名稱,因為後續無法修改。不過,您可以隨時創建新的群組。


然後會進入「入站規則」部分。

Creating a Security Group

什麼是入站規則?

入站規則控制進入 EC2 實例的流量,允許您選擇可連接至 EC2 實例的 IP 地址,也可指定允許流量的端口號和服務。例如,您可以創建一條規則,允許特定 IP 在 22 號端口進行 SSH 訪問。


以下示範創建三條入站規則,允許 SSH (22)、HTTP (80) 和 HTTPS (443) 協議連接至該安全群組的 EC2 實例:

Inbound rules
  1. 點擊「新增規則」按鈕。

  2. 選擇類型(例如 SSH 或 HTTP),系統會自動選擇對應的協議和端口。如果需要不同的端口,可選擇自定義 TCP/UDP。

  3. 在「來源」中選擇允許流量的 IP 或 IP 範圍。在此示例中,我僅允許自己的 IP。

  4. 描述為選填,您可以填寫該規則的原因。

  5. 完成後,點擊「新增規則」。

Inbound rules

當您允許來自所有 IP 的流量時,務必要確保您清楚了解這樣做的風險。


接下來是「出站規則」。

 Outbound rules

什麼是出站規則?

出站規則控制從 EC2 實例向外發送的流量。通過這些規則,您可以選擇哪些服務將暴露於互聯網上。了解這一點非常重要,因為 VPS 通常包含私有和公共服務。您不希望私有服務(例如內部資料庫)暴露於互聯網,否則可能導致額外的問題。


以下示例允許所有流量,因為該 EC2 實例目前未啟用任何私有服務:


首先,點擊「新增規則」按鈕,並保持所有選項為預設值。

 Outbound rules

再者,如果需要,您可以選擇添加標籤以更好地描述資源。

security group

最終完成後,點擊「創建安全群組」按鈕。

Create security group

現在,您可以將該安全群組附加到任意 EC2 實例,該群組的權限將應用於選定的實例。


將安全群組添加至實例


首先,選擇實例並點擊「操作 > 安全性 > 更改安全群組」。

Change security groups

而在新頁面中,通過搜索欄選擇所需的安全群組,點擊「新增安全群組」。

Add security group

You can also remove any previously added security groups if you want to.

remove security groups

如需刪除之前添加的安全群組,也可以在此操作。


點擊「儲存」後,選定實例的安全群組將更新。

security group

您可以在安全群組中查看所有入站和出站規則,並可隨時新增或修改規則。


金鑰對 (Key Pair) 管理

金鑰對 (Key Pair) 是一種加密金鑰,僅授權人員可用其訪問 AWS 資源。金鑰對包含公鑰與私鑰,其中公鑰用於加密,私鑰用於解密。此功能適用於 Linux 的 SSH 登錄以及 Windows EC2 實例的 RDP 連接。


雖然金鑰對能夠為您的實例提供安全的訪問,但若金鑰落入不當之手,可能導致您的 EC2 實例完全遭到攻擊或入侵。


在 EC2 中建立金鑰對

當您創建 EC2 實例時,系統會要求您創建或選擇一個金鑰對。但您也可以在創建實例後再創建金鑰對,並將其分配給特定的實例。


然而,最好提前創建金鑰對,因為更換金鑰對不像更改安全群組那麼容易。


從 EC2 儀表板,導航至「網路與安全性 > 金鑰對」。

Creating Key Pair in EC2

在這裡,您可以查看所有可用於您的 EC2 實例的金鑰。


點擊「創建金鑰對」按鈕進入設置頁面。

Create key pair

注意:在您將新金鑰對附加到實例之前,切勿刪除舊的金鑰對。


接下來,系統將帶您進入設置頁面。

Create key pair

填寫名稱和標籤,保持其他設置為預設值。如果使用 PuTTY,可將私鑰文件格式更改為 ppk。


完成後,點擊「創建金鑰對」,系統會下載私鑰文件(keyname.pem)。.


替換舊金鑰對

使用舊金鑰對登錄至 EC2 實例,導航至「~/.ssh/」目錄。

您可以在「authorized_keys」文件中找到公鑰。現在,請刪除「authorized_keys」文件,因為我們將用新的金鑰替換它。


提醒:請僅在確保完全了解操作後再執行此步驟。


Replacing the Old Key Pair

完成後,導航至您下載新私鑰的終端(另一個終端)。執行命令 chmod 400 ReplacedKey.pem(更改文件名)。然後執行命令 ssh-keygen -y -f ReplacedKey.pem(同樣更改名稱)。這將從該私鑰生成新的公鑰。

Replacing the Old Key Pair

現在,您只需創建一個新的「authorized_keys」文件,並將生成的公鑰複製到該文件中。您可以使用 echo 命令或任何您選擇的文字編輯器完成此操作。


請再次確認金鑰文件是否存在,並且您已正確放置金鑰。接著退出您的實例並重啟 EC2 實例(此步驟為可選)。


現在,嘗試使用新的私鑰登錄,如果所有操作正確無誤,您將能成功登錄。

Login using ssh

請參閱此文件以了解更多有關更換金鑰對的資訊。


金鑰對最佳實踐


  • 切勿分享您的私鑰,除非完全了解風險。

  • 將私鑰存放於安全位置,避免將其公開。

  • 定期更換金鑰對(根據公司政策)。

  • 監控金鑰對的使用情況。


多因素驗證 (MFA)

多因素驗證允許您以更安全的方式登錄 EC2 實例。它為安全性增加了一層額外的保護。在使用私鑰登錄後,您需要輸入一次性密碼 (OTP) 才能完成登錄。您可以使用像 Google Authenticator 這樣的驗證器應用程式來設置 OTP。


此方法僅建議在您確定能正確設置的情況下使用。我們將針對如何在 EC2 實例中使用 MFA 發佈一篇專門的文章。


通過 IAM 提升安全性


身份與訪問管理 (IAM) 是 AWS 提供的一項服務,允許您管理 AWS 資源(包括 EC2)的權限。通過它,您可以將與 EC2 的互動限制於僅所需的權限。僅針對 EC2 相關任務就有超過 39 種政策,包括 EC2 完全訪問、EC2 只讀訪問、EC2 啟動與停止實例等。


IAM 遵循最小權限原則,即僅允許完成任務所需的權限。您也可以為 IAM 帳戶設置 MFA,但我們將針對此主題另行發佈文章。


請參閱此文章以了解更多有關 IAM 及其用法的資訊。


結論


本文重點介紹了 EC2 的安全群組、金鑰對、多因素驗證 (MFA) 和 IAM。然而,EC2 的安全性並不限於這四個組件。為避免最壞情況,您應該為您的雲端基礎設施建立適當的安全措施。


Elite Cloud 延伸閱讀

コメント


bottom of page