在不斷變化的雲端運算領域,安全性始終是最重要的關注點。作為全球排名第一的雲端服務提供商,越來越多的組織依賴 AWS 來驅動他們的數位基礎設施。雖然使用 AWS 確實可以優化數位基礎設施並提高盈利,但如果安全性沒有得到適當維護,同樣的技術可能會帶來災難性後果。
AWS 負責雲端的安全管理,包括數據中心、伺服器、服務網關(如 AWS 網站和 AWS CLI)等,這是他們的責任範疇。然而,這並不免除雲端客戶的安全責任。
AWS 共享責任模型規定,雲端客戶必須保護他們在雲端上放置的資源,包括加密、存取控制、防火牆等。不必擔心,因為 AWS 已經規劃了所有的安全措施,您只需實施這些安全解決方案並遵循最佳實踐,來保護您的雲端基礎設施免受潛在的安全風險。
這些安全解決方案的核心是使用 AWS IAM 服務(免費)。
什麼是 AWS IAM
AWS 身份與存取管理(IAM)是專為管理您在 AWS 上放置或使用的資源的存取控制而開發的服務。簡而言之,它允許您決定誰可以控制您的 EC2 實例,誰可以終止實例,誰可以在您的 S3 存儲桶中上傳新文件等。
理解 AWS IAM
AWS IAM 用於維持存取控制的核心組件是用戶、群組和角色。每個組件都是為了應對不同的情況而設計的。通過使用這三者或其組合,您幾乎可以管理對 AWS 資源的所有存取管理需求。
1. 使用者
使用者是 AWS IAM 中的個別帳戶,每個帳戶都有自己的使用者名稱、密碼和唯一的 AWS ID,這個 ID 定義了 IAM 使用者所屬的根帳戶。這樣只允許指定的使用者登錄。如果其他 IAM 使用者擁有相同的憑證,但不知道您的唯一 AWS ID,他們將無法登錄。
您可以為這些帳戶分配不同的權限(也稱為策略),允許您給他們完整的管理員存取權或僅限於特定服務的存取權,例如 EC2。這樣,您可以僅允許員工執行他們的工作,不多也不少。例如,與 EC2 實例合作的開發人員不需要查看計費部分或其他 AWS 服務。您可以只指定允許該使用者執行該任務的策略。這些權限也可以允許應用程式存取您的 AWS 資源,而不僅限於人類使用者。
2. 群組
當使用者數量較少時,個別使用者帳戶是有效的解決方案。但當您的企業基礎設施擁有100多名員工和不同服務需要一組權限時,情況就變得複雜。不同帳戶的存取時間線也可能不同。對於使用者數量不多的情況,直接嵌入權限到使用者帳戶中是可行的。但當使用者數量較多時,這樣做會使創建、設置和維護這些權限變得繁瑣,最終導致帳戶泄露、權限濫用和其他安全問題。
AWS IAM 群組解決了這個問題。與其創建個別使用者並添加權限,不如創建一個 IAM 群組並為該群組指定權限。之後,您只需創建 IAM 使用者並將使用者添加到群組中,這些使用者將自動獲得群組的所有存取權限。這樣,當不再需要權限時,您可以將該使用者從群組中移除,如果需要不同的權限,還可以將該使用者分配到其他群組中。這大大減少了 IAM 中錯誤和配置錯誤的機會。
3. 角色
IAM 角色與特定使用者無關,而是為 AWS 資源或服務設計的。角色定義了 AWS 資源可以執行的操作以及誰(或什麼)可以假定該角色。雖然 IAM 使用者用於長期存取特定的 AWS 資源,但 IAM 角色僅允許暫時存取資源。
例如,運行 Web 應用程式並訪問 S3 存儲桶的 EC2 實例。與其在 EC2 實例上存儲敏感憑證,不如創建一個 IAM 角色並將其分配給您的 EC2 實例。這將使 EC2 實例能夠臨時存取 S3 存儲桶,使用獨特的安全令牌。這些令牌會在固定時間內自動過期,最長為 12 小時。如果任務需要更長時間,也可以使用 IAM 角色,安全令牌將會刷新為新的令牌。
IAM 角色還可用於授予跨帳戶存取權,允許一個 AWS 資源由不同的 AWS 帳戶訪問。請參閱官方文檔以了解更多資訊。
IAM 政策
AWS IAM 政策是用於定義授予使用者、群組或角色訪問 AWS 資源的權限的文件或配置文件。這些策略是控制誰能在您的 AWS 環境中執行哪些操作的核心。
這些政策是使用 JSON 文件定義的,該文件概述了權限和存取控制。它具體說明了哪些操作被允許或拒絕在哪些 AWS 資源上進行。您可以添加預定義的策略或創建自定義策略並將它們添加到使用者、群組或角色。一旦定義,使用者、群組或角色就可以以指定的權限訪問指定的服務。
創建 IAM 帳號
要創建 IAM 使用者帳戶,您首先需要擁有根帳戶或另一個具有創建新使用者權限的 IAM 帳戶。按照第一個選項,登錄到您的 AWS 根帳戶。
登錄後,在搜索欄中搜索 IAM 並選擇 “IAM” 服務。
這將帶您進入 IAM 面板。讓我們來看看面板的各個元素。
首先,在左側,我們有一個菜單欄,可以創建使用者、群組、角色和其他必要的連結 (1)。安全建議 (2) 將顯示一些由 AWS 自動檢測到的安全問題,例如顯示的多因素身份驗證 (MFA) 警報。“IAM 資源” (3) 將顯示可用的使用者、群組、角色、策略和身份提供者。在右側 (4) 我們有帳戶登錄 URL 和帳戶 ID。
儀表板還包含一些有助於實施 IAM 的其他文件。
現在,從菜單欄中點擊 “Users” 連結。
這將顯示所有可用的使用者。預設情況下,將不會有任何使用者。點擊 “Create user” 來創建一個新使用者。
這將帶您進入使用者設置頁面。按照指定規則輸入使用者名稱。
勾選標記,並選擇 “I want to create an IAM user”。
保持其他設置為默認,然後點擊 “Next”。
這將帶您進入第 2 步,您需要設置權限選項。
這裡有三個選項可供選擇。“Add user to group” 將權限添加到群組中,然後將使用者添加到該群組中。您可以創建一個新群組或添加現有群組。
“Copy permissions” 允許您複製現有使用者的權限。
“Attach policies directly” 允許您直接將策略添加到該使用者。這種方法不建議使用,僅在絕對需要的情況下使用。
選擇第一個選項,因為這是推薦的最佳安全實踐。但首先,您需要創建一個群組。如果您已經創建了群組,您也可以在這裡看到它。
“Create group” 將彈出一個窗口。按照指定的規則選擇一個名稱。
然後,您需要選擇群組使用者要繼承的策略。截至撰寫本文時,AWS 提供了 884 個預寫策略。或者,您也可以創建自定義策略。
我們將創建一個管理員副本,因此我們將選擇“AdministratorAccess”(第一個)策略。
您可以點擊“+”圖標查看策略的 JSON 代碼。您還可以在頂部看到所選策略的總數。
選擇適當的策略後,點擊“Create user group”。這將創建該群組,您將能夠看到群組名稱、附加的策略和其他信息。
如果需要,您可以創建另一個群組。完成後,選擇所需的群組,然後點擊“Next”。
“Set permissions boundary” 是可選的,對於這次演示我們不需要這個選項。
點擊“Next”後,將進入審查頁面。檢查群組名稱和您附加的權限。您還可以添加標籤以更好地識別使用者。
標籤對於組織使用者非常有用。
完成標籤設置後,點擊“Create user”。這將創建使用者並提供登入憑證。您可以通過電子郵件發送登入指示,下載 CSV 文件,或者直接複製和粘貼。
現在打開一個新的無痕視窗並導航到控制台 URL。
複製使用者名稱和密碼,將它們粘貼到登入頁面,然後點擊“Sign in”。
這將登錄到該使用者帳戶,並要求您添加一個新密碼。設置一個強密碼,然後點擊“Confirm password change”。
您將成功登入 AWS 使用者控制台。
從那裡,您可以訪問由所選政策定義的資源。
您可以從 AWS IAM 服務的“User groups”選單更改策略,也可以在那裡創建新組。
查看更多關於 Elite Cloud 的 AWS IAM 和 AWS 文章。
結論
AWS 提供了所有您需要的工具來保護您的雲端基礎設施。然而,雲端基礎設施的安全性取決於您如何有效地使用這些工具。在需要時使用使用者、群組和角色,並使用適當的策略。添加策略時,始終遵循最小特權原則。