SEC06-BP03 減少手動管理和互動式存取
盡可能使用自動化方式來執行部署、組態、維護和調查任務。在發生緊急程序的情況下或在安全 (沙盒) 環境中無法啟用自動化時,請考慮手動存取運算資源。
預期成果:程式化的指令碼和自動化文件 (執行手冊) 會擷取運算資源上獲得授權的動作。這些執行手冊會自動啟動、透過變更偵測系統啟動,或是在需要人為判斷時手動啟動。只有在無法啟用自動化的緊急情況下,才能直接存取運算資源。所有手動活動都會加以記錄並納入審查程序中,以持續改善您的自動化功能。
常見的反模式:
-
透過 SSH 或 RDP 等通訊協定互動式存取 Amazon EC2 執行個體。
-
維護個別使用者登入,例如
/etc/passwd
或 Windows 本機使用者。 -
在多個使用者之間共用密碼或私有金鑰以存取執行個體。
-
手動安裝軟體和建立或更新組態檔案。
-
手動更新或修補軟體。
-
登入執行個體以解決問題。
建立此最佳實務的優勢:透過自動化方式執行步驟,有助於降低意外變更和組態錯誤伴隨的操作風險。不再使用 Secure Shell (SSH) 和遠端桌面通訊協定 (RDP) 進行互動式存取,因此縮小了運算資源的存取範圍。這樣也消除了常見的未經授權動作路徑。在自動化文件和程式化指令碼中寫入運算資源管理任務,提供了以更精細的細節程度定義和稽核完整的授權活動範圍的機制。
未建立此最佳實務時的風險暴露等級:中
實作指引
登入執行個體是系統管理的傳統方法。安裝伺服器作業系統後,使用者通常會手動登入以設定系統並安裝所需的軟體。在伺服器的生命週期內,使用者可能會登入以執行軟體更新、套用修補程式、變更組態及排解疑難。
但是,手動存取伴隨著許多風險。它需要伺服器監聽請求,例如 SSH 或 RDP 服務,而這些服務可能成為未經授權的存取路徑。此外,它也會增加執行手動步驟時發生人為錯誤的風險。這些都可能導致工作負載事故、資料損壞或銷毀,或其他安全問題。人為存取也需要設置防護措施來防止憑證共用行為,因而產生額外的管理負擔。
為了降低這些風險,您可以實作代理程式型的遠端存取解決方案,例如 AWS Systems Manager
Systems Manager 可讓您精細控制與受管執行個體互動的方式。您可以定義要執行的自動化程序、誰可以執行它們,以及何時可以執行。Systems Manager 不需互動式存取執行個體,即可套用修補程式、安裝軟體及進行組態變更。Systems Manager 還可提供對遠端 Shell 的存取權,並將工作階段期間調用的每個命令及其輸出記錄到日誌和 Amazon S3
實作步驟
-
在 Amazon EC2 執行個體上安裝 AWS Systems Manager Agent (SSM Agent)。查看是否包含 SSM Agent,且它會作為基底 AMI 組態的一部分自動啟動。
-
確認與您的 EC2 執行個體設定檔相關聯的 IAM 角色是否包含
AmazonSSMManagedInstanceCore
受管 IAM 政策。 -
停用執行個體上執行的 SSH、RDP 和其他遠端存取服務。您可以藉由執行啟動範本的使用者資料區段中設定的指令碼,或使用 EC2 Image Builder 等工具建置自訂 AMI,以執行此操作。
-
確認適用於 EC2 執行個體的安全群組輸入規則不允許在連接埠 22/tcp (SSH) 或連接埠 3389/tcp (RDP) 上的存取。使用 AWS Config 等服務實作偵測,並對設定錯誤的安全群組發出警示。
-
定義適當的自動化、執行手冊,並在 Systems Manager 中執行命令。使用 IAM 政策定義誰可以執行這些動作,以及允許執行這些動作的條件。在非實際執行環境中完整測試這些自動化程序。在必要時調用這些自動化程序,而非以互動方式存取執行個體。
-
在必要時,使用 AWS Systems Manager Session Manager 提供對執行個體的互動式存取。開啟工作階段活動記錄,以在 Amazon CloudWatch Logs 或 Amazon S3
中維護稽核記錄。
資源
相關的最佳實務:
相關範例:
相關工具:
相關影片: