

# SEC06-BP03 減少手動管理和互動式存取
<a name="sec_protect_compute_reduce_manual_management"></a>

 盡可能使用自動化方式來執行部署、組態、維護和調查任務。在發生緊急程序的情況下或在安全 (沙盒) 環境中無法啟用自動化時，請考慮手動存取運算資源。

 **預期成果：**程式化的指令碼和自動化文件 (執行手冊) 會擷取運算資源上獲得授權的動作。這些執行手冊會自動啟動、透過變更偵測系統啟動，或是在需要人為判斷時手動啟動。只有在無法啟用自動化的緊急情況下，才能直接存取運算資源。所有手動活動都會加以記錄並納入審查程序中，以持續改善您的自動化功能。

 **常見的反模式：**
+  透過 SSH 或 RDP 等協定互動式存取 Amazon EC2 執行個體。
+  維護個別使用者登入，例如 `/etc/passwd` 或 Windows 本機使用者。
+  在多個使用者之間共用密碼或私有金鑰以存取執行個體。
+  手動安裝軟體和建立或更新組態檔案。
+  手動更新或修補軟體。
+  登入執行個體以對問題進行疑難排解。

 **建立此最佳實務的優勢：**透過自動化方式執行步驟，有助於降低意外變更和組態錯誤伴隨的操作風險。不再使用 Secure Shell (SSH) 和遠端桌面協定 (RDP) 進行互動式存取，因此縮小了運算資源的存取範圍。這樣也消除了常見的未經授權動作路徑。在自動化文件和程式化指令碼中寫入運算資源管理任務，提供了以更精細的細節程度定義和稽核完整的授權活動範圍的機制。

 **未建立此最佳實務時的曝險等級：**中 

## 實作指引
<a name="implementation-guidance"></a>

 登入執行個體是系統管理的傳統方法。安裝伺服器作業系統後，使用者通常會手動登入以設定系統並安裝所需的軟體。在伺服器的生命週期內，使用者可能會登入以執行軟體更新、套用修補程式、變更組態及對問題進行疑難排解。

 但是，手動存取伴隨著許多風險。它需要伺服器監聽請求，例如 SSH 或 RDP 服務，而這些服務可能成為未經授權的存取路徑。此外，它也會增加執行手動步驟時發生人為錯誤的風險。這些都可能導致工作負載事件、資料損壞或銷毀，或其他安全問題。人為存取也需要設置防護措施來防止憑證共用行為，因而產生額外的管理負擔。  

 為了降低這些風險，您可以實作代理程式型遠端存取解決方案，例如 [AWS Systems Manager](https://aws.amazon.com/systems-manager/)。AWS Systems ManagerAgent (SSM Agent) 會啟動加密通道，因此不需仰賴偵聽外部發出的請求。請考慮設定 SSM Agent 以[透過 VPC 端點建立此通道](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-create-vpc.html)。

 Systems Manager 可讓您精細控制與受管執行個體互動的方式。您可以定義要執行的自動化程序、誰可以執行它們，以及何時可以執行。Systems Manager 不需互動式存取執行個體，即可套用修補程式、安裝軟體及進行組態變更。Systems Manager 還可提供對遠端 Shell 的存取權，並將工作階段期間調用的每個命令及其輸出記錄到日誌和 [Amazon S3](https://aws.amazon.com/s3/)。[AWS CloudTrail](https://aws.amazon.com/cloudtrail/) 會記錄 Systems Manager API 的調用以供檢測。

### 實作步驟
<a name="implementation-steps"></a>

1.  在 Amazon EC2 執行個體上[安裝 AWS Systems Manager Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) (SSM Agent)。查看是否包含 SSM Agent，且它會作為基本 AMI 組態的一部分自動啟動。

1.  確認與您的 EC2 執行個體設定檔關聯的 IAM 角色是否包含 `AmazonSSMManagedInstanceCore` [受管 IAM 政策](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html)。

1.  停用執行個體上執行的 SSH、RDP 及其他遠端存取服務。您可以藉由執行啟動範本的使用者資料區段中設定的指令碼，或使用 EC2 Image Builder 等工具建置自訂 AMI，以執行此操作。

1.  確認適用於 EC2 執行個體的安全群組輸入規則不允許在連接埠 22/tcp (SSH) 或連接埠 3389/tcp (RDP) 上的存取。使用 AWS Config 等服務實作偵測，並對設定錯誤的安全群組發出提醒。

1.  定義適當的自動化、執行手冊，並在 Systems Manager 中執行命令。使用 IAM 政策定義誰可以執行這些動作，以及允許執行這些動作的條件。在非實際執行環境中完整測試這些自動化程序。在必要時調用這些自動化程序，而非以互動方式存取執行個體。

1.  在必要時，使用 [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) 提供對執行個體的互動式存取。開啟工作階段活動日誌記錄，以在 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 或 [Amazon S3](https://aws.amazon.com/s3/) 中維護稽核記錄。  

## 資源
<a name="resources"></a>

 **相關的最佳實務：**
+  [REL08-BP04 使用不可變基礎設施進行部署](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_tracking_change_management_immutable_infrastructure.html) 

 **相關範例：**
+  [使用 AWS Systems Manager 取代 SSH 存取以減輕管理和安全負擔](https://aws.amazon.com/blogs/mt/vr-beneficios-session-manager/) 

 **相關工具：**
+  [AWS Systems Manager](https://aws.amazon.com/systems-manager/) 

 **相關影片：**
+  [在 AWS Systems Manager Session Manager 中控制使用者工作階段對執行個體的存取權](https://www.youtube.com/watch?v=nzjTIjFLiow) 