這些題目為學習目的而獨立製作,並非 AWS 官方考題、實際考題、外流題或考題庫。
SAA-036
營運人員需要對私有子網路的 EC2 執行個體進行 Shell 存取。作為不營運跳板伺服器、完全不開放執行個體的傳入連接埠,並且可稽核何人於何時連線的架構,下列哪項最為合適?
選項
解析與正確答案
閱讀解析與正確答案(劇透:建議先自行作答)
正確答案:C. 使用 AWS Systems Manager Session Manager,讓 SSM Agent 可到達必要的端點以建立工作階段
解析
Session Manager 是利用執行個體上的 SSM Agent 對 Systems Manager 的傳出連線來建立工作階段。既不需要開放傳入連接埠,也不需要跳板,連線由 IAM 控制,操作則可透過 CloudTrail 與工作階段日誌稽核。
各選項解析
A. 在公用子網路部署跳板 EC2,並僅允許營運人員的來源 IP 使用 22 號連接埠
跳板伺服器本身的修補套用、金鑰管理、可用性等營運負擔依然存在,22 號連接埠的傳入也仍然開放,不符合「不營運跳板」「不開放傳入」的需求。
B. 為目標執行個體指派 Elastic IP,將 SSH 的接聽連接埠由 22 號變更後以金鑰對連線
此做法等同於將私有子網路的執行個體暴露於網際網路,與需求背道而馳。即使變更連接埠號碼,接聽本身仍然存在,實質上也無法提升安全性。
C. 使用 AWS Systems Manager Session Manager,讓 SSM Agent 可到達必要的端點以建立工作階段
正解。僅以傳出方向的連線即可建立工作階段,因此可在安全群組的傳入規則保持為空的狀態下運作。
D. 啟用 EC2 Instance Connect,經由管理主控台的瀏覽器進行 SSH 連線
以 EC2 Instance Connect 從主控台連線的架構,需要執行個體允許來自 EC2 Instance Connect 服務前綴清單的 22 號傳入,且必須可到達,違反完全不開放傳入的需求。
實際使用情境
AWS Systems Manager Session Manager 為可從瀏覽器或 AWS CLI 對 EC2 執行個體或地端伺服器建立 Shell 工作階段的功能。其機制的要點在於通訊方向:執行個體上運作的 SSM Agent 會「以傳出方向」連線至 Systems Manager 的端點,並將工作階段承載於該路徑上。因此即使執行個體端的安全群組完全不撰寫傳入規則也能連線,跳板伺服器與金鑰對皆非必要。連線與否由 IAM 政策(如 ssm:StartSession)控制,何人於何時連線至哪個執行個體則留存於 CloudTrail。 設計上的前提為,執行個體需要包含 AmazonSSMManagedInstanceCore 的 IAM 執行個體設定檔,且需要可到達 SSM 端點的路徑。若為私有子網路,路徑的建立方式有兩種:其一為經由 NAT Gateway 連往網際網路;其二為建立 ssm / ssmmessages / ec2messages 三個 Interface 型 VPC 端點,不連往網際網路即可到達。後者可避免 NAT Gateway 的固定費用,並將通訊留在 AWS 網路內。工作階段的內容可記錄至 S3 或 CloudWatch Logs,亦可用 KMS 加密工作階段。 SAA-C03 中,若出現「希望消除跳板伺服器」「不想開放 SSH 連接埠」「不想管理金鑰對」「希望稽核連線」等需求,Session Manager 即為正解。誤答則排列出建置跳板 EC2、變更 SSH 連接埠號碼、指派公用 IP 等傳統架構。在私有子網路希望不使用 NAT Gateway 的情境下,有時會進一步問到三種 VPC 端點。