CH 11 中頻考點
監控、稽核與管理
CloudWatchCloudTrailConfigSystems ManagerTrusted Advisor
本章區分四個常被搞混的服務:CloudWatch(效能指標與告警)、CloudTrail(API
呼叫紀錄,稽核用)、Config(資源設定變更追蹤)與 Systems Manager(維運自動化)。掌握「監控什麼」與「記錄什麼」的差異是這章的關鍵。
- CloudWatch Metrics:收集 AWS 服務指標(EC2 CPU、RDS 連線數等)。標準解析度 1 分鐘,高解析度 1~60 秒(需要 PutMetricData API)。EC2 記憶體和磁碟使用率不是預設指標,需要安裝 CloudWatch Agent。
- CloudWatch Alarms:根據指標閾值觸發動作(SNS 通知、EC2 Auto Scaling、EC2 動作如停止/重啟)。三種狀態:OK、ALARM、INSUFFICIENT_DATA。
- CloudWatch Logs:集中儲存應用程式和 AWS 服務的 Log。Log Group(邏輯分類)→ Log Stream(單一來源的 Log 序列)。可用 Metric Filter 從 Log 中提取指標並設定 Alarm。Log 可以輸出到 S3(匯出)、Kinesis、Lambda。
- CloudWatch Dashboards:可視化儀表板,可跨 Region、跨帳號顯示指標。
- CloudWatch Events / EventBridge:排程任務和事件路由(見第 9 章)。
- CloudWatch Insights:
・Log Insights:用特定查詢語言分析 CloudWatch Logs,快速找到錯誤。
・Container Insights:ECS/EKS/K8s 的容器層級指標。
・Lambda Insights:Lambda 函數的詳細效能指標。 - CloudWatch Synthetics:用 Canary(排程執行的無伺服器腳本)主動模擬使用者操作(開啟頁面、走登入流程、打 API),在真實使用者受影響前就發現可用性或延遲問題,屬於「合成監控」,跟前面幾項被動蒐集指標不同。
🚨 考試陷阱:EC2 的記憶體(RAM)使用率和磁碟使用率不是 CloudWatch 的預設指標,需要安裝 CloudWatch Agent 才能收集。
- 核心功能:記錄所有 AWS 帳號的 API 呼叫(誰、什麼時間、從哪裡、做了什麼)。預設啟用,保留 90 天;要長期保留需要輸出到 S3。
- Management Events(管理事件):控制層操作(建立/刪除 EC2、修改 Security Group 等),預設記錄。
- Data Events(資料事件):資料層操作(S3 物件讀寫、Lambda 函數呼叫),預設不記錄(量太大),需要手動啟用,費用較高。
- CloudTrail Insights:偵測不尋常的 API 呼叫模式(如突然大量 IAM 操作),自動告警。
- 組織 Trail:一個 Trail 可以收集 AWS Organizations 內所有帳號的 API 日誌,集中儲存到一個 S3 Bucket。
⭐ CloudTrail vs CloudWatch:CloudTrail = 誰做了什麼(API 稽核);CloudWatch = 系統狀態如何(效能監控)
- 核心功能:持續記錄 AWS 資源的設定變更歷史,並對比規則(Rules)判斷是否合規(Compliant)。
- Config Rules:AWS 受管規則(如「所有 S3 Bucket 不得公開」、「所有 EC2 必須使用已核准的 AMI」)或自訂規則(Lambda 函數)。
- 主要用途:
・發現不合規的資源(如未加密的 EBS)
・查看資源設定的歷史變更(誰什麼時候改了什麼)
・自動修復(Auto Remediation):發現不合規時自動觸發 SSM Automation 修復 - Config Aggregator:把多個帳號、多個 Region 的 Config 合規資料彙整到單一檢視,通常搭配 AWS Organizations 使用,避免要逐帳號逐區域分別查看。
- 注意:Config 只是記錄和評估,本身不能阻止違規操作(阻止要用 IAM 或 SCP)。
💡 Config vs CloudTrail:CloudTrail 記錄 API 呼叫(動作);Config 記錄資源設定狀態(狀態),可以查看資源在任意時間點的設定。
- Session Manager:透過 AWS Console 或 CLI 建立安全的 Shell Session,不需要開放 SSH(Port 22),不需要 Bastion Host,所有 Session 都被記錄到 CloudTrail/S3。
- Parameter Store:儲存設定值和秘密(見第 10 章),與 Config、Lambda 深度整合。
- Patch Manager:自動修補 EC2 作業系統和應用程式的安全補丁,可排程在維護視窗執行。
- Run Command:在多台 EC2(無需 SSH)上同時執行命令或腳本,結果回傳到 Console 或 S3。
- Inventory:收集 EC2 的軟體清單(安裝了哪些應用程式、OS 版本等)。
- 前提:EC2 上需要安裝 SSM Agent(Amazon Linux 2 預設已安裝),且 EC2 需要具備 SSM IAM Role。
⭐ SSM Session Manager 是現代替代 Bastion Host 的方案:無需開 Port 22、無需 Key Pair、有稽核紀錄,更安全。
CloudWatch vs CloudTrail vs Config 三者對比
| 維度 | CloudWatch | CloudTrail | AWS Config |
|---|
| 核心問題 | 系統現在狀態如何? | 誰做了什麼 API 操作? | 資源設定是否符合規定? |
| 資料類型 | Metrics/Logs/Alarms | API Call 紀錄 | 資源設定快照和歷史 |
| 時間維度 | 即時(分鐘/秒) | 近即時(15分鐘延遲) | 持續快照(設定變更時) |
| 典型用途 | CPU 高了發 SNS 警報 | 誰刪除了這個 S3 Bucket? | 哪些 EC2 沒有加密 EBS? |
| 可否阻止? | ❌ | ❌ | ❌(只評估,阻止靠 IAM) |
SSM 功能速查
| 功能 | 作用 | 替代什麼? |
|---|
| Session Manager | 安全 Shell 連線到 EC2 | Bastion Host / SSH |
| Run Command | 批量在 EC2 執行腳本 | SSH + 手動執行 |
| Patch Manager | 自動打安全補丁 | 手動 yum/apt 更新 |
| Parameter Store | 儲存設定值/秘密 | 硬編碼設定/env file |
| Inventory | 收集 EC2 軟體清單 | 手動登入查詢 |
01 / 24
CloudWatch 預設不收集 EC2 的哪些指標?需要如何解決?
A CPU 使用率,需額外安裝 Agent
B 網路流量,需開啟 Flow Logs
C 記憶體與磁碟使用率,需裝 Agent
D CPU 與網路,兩者都需手動設定
解析
EC2 的 CPU、網路、磁碟 I/O(IOPS)是 AWS hypervisor 層級的指標,CloudWatch 預設收集。但記憶體(RAM)使用率和磁碟空間使用率(Disk Utilization)需要在 OS 層級收集,必須安裝 CloudWatch Agent(或舊的 CloudWatch Monitoring Scripts)。安裝後設定 Agent 將指標推送到 CloudWatch Custom Metrics。
02 / 24
安全稽核員想要查出「過去 30 天內,是誰在何時刪除了某個 RDS 實例」。應該查看哪個服務?
A 查看 AWS CloudTrail 的 API 呼叫記錄
B 查看 CloudWatch Logs 中的應用程式日誌
C 查看 VPC Flow Logs 的網路流量
D 查看 AWS Config 的資源設定歷史
解析
AWS CloudTrail 記錄所有 AWS API 呼叫,包括:呼叫者身份(IAM User/Role)、時間、來源 IP、動作名稱(DeleteDBInstance)。這正是稽核「誰做了什麼 API 操作」的標準工具。CloudTrail 預設保留 90 天,長期保留需輸出到 S3。Config 記錄資源設定狀態,但不記錄是誰做的操作。
03 / 24
公司的合規要求規定「所有 S3 Bucket 必須啟用伺服器端加密(SSE)」。哪個服務可以持續監控並在發現不合規的 Bucket 時自動告警?
A 設定 CloudWatch Metrics 監控加密指標
B 透過 CloudTrail 監控 S3 API 呼叫
C 透過 Amazon Macie 掃描敏感資料
D 設定 AWS Config Rule 持續評估合規性
解析
AWS Config 專門用於評估資源設定合規性:① 設定 Config Rule「s3-bucket-server-side-encryption-enabled」;② Config 持續監控所有 S3 Bucket,發現未加密的 Bucket 就標記為 NON_COMPLIANT;③ 可設定 SNS 通知或 Auto Remediation(自動執行 SSM Automation 啟用加密)。CloudWatch 不評估設定合規性;Macie 掃描資料內容,不評估加密設定。
04 / 24
公司有一批 EC2 需要緊急修補安全漏洞,不想逐台 SSH 登入。應該使用哪個服務批量執行修補腳本?
A 逐台以 SSH 手動連線執行腳本
B 使用 SSM Run Command 批量執行
C 使用 AWS Lambda 自動化執行
D 使用 CloudFormation 重新部署
解析
SSM Run Command 允許在多台 EC2 上同時執行命令或腳本,不需要 SSH 或開放 Port 22。只要 EC2 安裝了 SSM Agent 且有適當的 IAM Role,就可以從 Console 或 CLI 批量選取目標 EC2 並執行命令,結果回傳到 Console/S3/CloudWatch Logs。如果是定期補丁,更推薦用 SSM Patch Manager 搭配維護視窗。
05 / 24
公司的安全政策禁止在 EC2 Security Group 開放 SSH(Port 22),但運維工程師需要在緊急情況下登入 EC2 進行除錯。最佳方案是?
A 使用 Session Manager,無需開放埠
B 架設 Bastion Host 作為跳板機
C 使用 CloudShell 從瀏覽器連線
D 臨時開放 Port 22,事後再關閉
解析
SSM Session Manager 是現代、安全的 EC2 連線方式:① 完全不需要開放 Port 22 或任何 Inbound Port;② 不需要 SSH Key Pair;③ 連線通過 HTTPS(Port 443),走 AWS 網路;④ 所有 Session 活動都記錄到 CloudTrail 和 S3(完整稽核軌跡)。比 Bastion Host 更安全(Bastion Host 本身是攻擊面)、更簡單(不需要管理 Bastion Host)。
06 / 24
以下哪個說法正確地描述了 CloudTrail Data Events 的特性?
A Data Events 預設啟用,記錄所有讀寫
B Data Events 只記錄失敗的呼叫
C Data Events 預設不啟用,費用較高
D Data Events 等同於 VPC Flow Logs
解析
CloudTrail 分兩種事件:Management Events(控制層操作,如建立 EC2、修改安全組)預設啟用;Data Events(資料層操作,如 S3 GetObject/PutObject、Lambda Invoke)預設不啟用,因為這類操作量極大(高流量 S3 Bucket 每秒可能數萬次),若全部記錄費用很高。需要記錄 S3 物件存取(安全需求)時,手動啟用並選擇特定 Bucket。
07 / 24
想在 CloudWatch 指標超過門檻時「自動觸發動作」(通知團隊、或觸發 Auto Scaling)。應設定?
A 只透過 Dashboard 監控指標
B 設定 CloudWatch Alarm 綁定通知或擴縮
C 改用 CloudTrail 觸發動作
D 改用 AWS Config 觸發動作
解析
CloudWatch Alarm 在指標跨越門檻時可觸發動作:發 SNS 通知、觸發 Auto Scaling 擴縮、停止/重啟 EC2 等,實現自動化反應。Dashboard 只是視覺化;CloudTrail/Config 是稽核與合規。
08 / 24
想對大量的應用程式日誌(已送到 CloudWatch Logs)做「互動式查詢」找出錯誤模式。應使用?
A 改用 CloudTrail 查詢與分析
B 改用 Athena 查詢 VPC 資料
C 改用 Config 進行查詢分析
D 使用 Logs Insights 進行互動查詢
解析
CloudWatch Logs Insights 提供查詢語言,讓你對 CloudWatch Logs 中的日誌做互動式搜尋、彙總與視覺化,快速定位錯誤。CloudTrail 記的是 API 呼叫;Athena 查的是 S3 上的資料。
09 / 24
要監控 EC2 的「記憶體使用率」與「磁碟空間使用率」(CloudWatch 預設沒有),應?
A 安裝 CloudWatch Agent 收集自訂指標
B 這些指標 CloudWatch 預設就會提供
C 改用 CloudTrail 收集這些指標
D 改用 AWS Config 收集這些指標
解析
記憶體與磁碟空間使用率屬於作業系統內部指標,CloudWatch 預設(Hypervisor 層)看不到,需安裝 CloudWatch Agent 收集並以自訂指標發送。CPU/網路/磁碟 I/O 等 Hypervisor 層指標才是預設就有。
10 / 24
一個組織想確保「所有帳號、所有 Region」的 API 活動都被記錄到一個中央 S3 以供稽核,且新帳號自動涵蓋。應?
A 每個帳號各自建立單一區域 Trail
B 只在管理帳號建立單一區域 Trail
C 建立 Organization Trail 輸出到 S3
D 改用 AWS Config 彙整記錄資料
解析
CloudTrail Organization Trail 由管理帳號建立、自動套用到組織下所有帳號與所有 Region(含新加入帳號),集中輸出到中央 S3,最適合組織級稽核。逐帳號逐區設定容易漏。
11 / 24
稽核要求能「證明 CloudTrail 日誌自送達後未被竄改」。應啟用?
A 只開啟 S3 版本控制功能即可
B 啟用 CloudTrail 完整性驗證功能
C 只用 KMS 加密日誌檔案內容
D 改用 Config 進行變更驗證
解析
CloudTrail Log File Integrity Validation 會為日誌檔產生雜湊與簽章摘要(digest),可用來驗證日誌自送達 S3 後是否被修改或刪除,滿足合規的不可竄改稽核需求。
12 / 24
想讓 AWS Config 在偵測到不合規資源時「自動修復」(例如自動關閉公開的 S3)。應?
A Config 只能發出告警,無法修復問題
B 改為透過 CloudTrail 執行修復動作
C 只能以人工方式逐一手動處理
D 設定 Config Rule 搭配自動修復動作
解析
AWS Config 偵測合規狀態,搭配 Remediation(透過 SSM Automation 文件)可在偵測到不合規時自動執行修復動作(如關閉公開存取)。Config 不會事前「阻止」操作,但可事後自動修正。
13 / 24
想在「一個地方檢視多個帳號、多個 Region」的資源合規狀態。應使用?
A 使用 Config Aggregator 彙整跨帳號資料
B 各帳號分別檢視自己的合規狀態
C 改用 CloudWatch Dashboard 進行彙整檢視
D 改用 GuardDuty 彙整合規相關的資料
解析
Config Aggregator 把多帳號、多 Region 的 Config 合規資料彙總到單一檢視,方便組織層級的合規管理。逐帳號檢視難以掌握全局。
14 / 24
想「自動、定期」為大量 EC2 掃描並套用作業系統安全修補,並產生合規報告。應使用?
A 逐台以 SSH 手動更新作業系統
B 改用 CloudTrail 記錄修補的過程
C 使用 Patch Manager 自動排程修補
D 改用 AWS Config 執行修補動作
解析
SSM Patch Manager 可依 patch baseline 與維護時窗自動掃描並套用修補到大量受管執行個體,並回報合規狀態,免逐台手動處理。Run Command 是臨時執行指令;Patch Manager 專做修補管理。
15 / 24
想集中儲存應用的設定值(如 API endpoint、功能開關)並可分層命名、版本控管,基本層免費。應使用?
A 使用 AWS Secrets Manager 儲存
B 使用 SSM Parameter Store 集中儲存
C 使用 Amazon S3 儲存設定檔案
D 使用 DynamoDB 儲存設定資料
解析
SSM Parameter Store 適合集中儲存設定值(可分層命名 /app/prod/db-url、版本控管,SecureString 可加密),標準參數免費。Secrets Manager 較貴但有自動輪替,適合需要輪替的密鑰。
16 / 24
想「主動」定期模擬使用者操作(如登入流程)以在真實使用者遇到問題前就發現網站故障。應使用?
A 使用 CloudTrail 被動記錄呼叫
B 使用 AWS Config 被動記錄設定
C 使用 VPC Flow Logs 被動記錄
D 使用 CloudWatch Synthetics 主動模擬
解析
CloudWatch Synthetics 用 canary 腳本定期模擬使用者行為(開頁面、走流程、打 API)主動監控可用性與延遲,在真實使用者受影響前發現問題。其他選項都是被動記錄。
17 / 24
想讓工程師登入 EC2 除錯,但要求「不開 SSH 埠、不用跳板機,且所有操作可稽核」。應使用?
A 使用 Session Manager 建連線
B 架設 Bastion Host 用 SSH
C 直接為 EC2 配置公有 IP
D 透過 NAT Gateway 建連線
解析
SSM Session Manager 透過 SSM Agent 提供瀏覽器/CLI 的殼層存取,免開 22 埠、免跳板機,且可將工作階段記錄到 S3/CloudWatch 供稽核,安全性優於傳統 Bastion + SSH。
18 / 24
想把 CloudWatch Logs 的日誌「即時串流」到 Kinesis/Lambda/OpenSearch 做進一步處理或集中分析。應使用?
A 改用 Logs Insights 進行互動查詢
B 改用 CloudTrail 進行日誌記錄
C 使用 Subscription Filter 即時串流
D 改用 AWS Config 進行設定記錄
解析
CloudWatch Logs Subscription Filter 可把符合條件的日誌即時串流到 Kinesis Data Streams/Firehose、Lambda 或 OpenSearch,用於集中處理與即時分析。Logs Insights 是互動查詢、非串流輸出。
19 / 24
應用程式的日誌已送進 CloudWatch Logs,團隊希望「5 分鐘內出現超過 10 筆 ERROR」就發出告警。最直接的做法是?
A 每 5 分鐘手動跑 Logs Insights
B Metric Filter 轉指標再設 Alarm
C 開啟 CloudTrail Data Events
D 設定 Config Rule 檢查日誌
解析
Metric Filter 可以從 Log 中比對關鍵字(如 ERROR)並轉成 CloudWatch 指標,再對這個指標設 Alarm,達到門檻就發 SNS 通知。Logs Insights 是互動查詢,不會自動告警;CloudTrail 記錄的是 API 呼叫、Config 評估的是資源設定,都不看應用程式日誌。
20 / 24
稽核規定 API 呼叫紀錄必須保留 1 年,但 CloudTrail 主控台的事件歷史只查得到最近 90 天。應該怎麼做?
A 聯絡 AWS 延長事件歷史
B 建立 Trail 輸出到 S3 保存
C 每 90 天手動截圖存檔
D 改用 CloudWatch Metrics 保存
解析
CloudTrail 預設啟用,但事件歷史只保留 90 天;要長期保留就建立 Trail,把日誌持續輸出到 S3,再依需求搭配生命週期規則轉到較便宜的儲存層級。CloudWatch Metrics 存的是數值指標,不是 API 呼叫明細。
21 / 24
資安團隊擔心憑證外洩後,攻擊者會在短時間內大量呼叫 IAM API。想讓系統自動察覺這種「跟平常不一樣」的 API 呼叫量並告警,應使用?
A CloudWatch Synthetics
B AWS Config Rules
C VPC Flow Logs
D CloudTrail Insights
解析
CloudTrail Insights 會學習帳號平常的 API 呼叫模式,偵測到不尋常的呼叫量(例如突然大量 IAM 操作)時自動產生事件。Synthetics 是模擬使用者操作;Config 評估資源設定是否合規;Flow Logs 記錄的是網路流量,不是 API 呼叫。
22 / 24
公司要求「任何人都不能在正式帳號建立未加密的 EBS」,要在建立當下就擋掉,而不是事後發現。應該用什麼?
A AWS Config Rule 偵測
B CloudTrail 記錄後告警
C CloudWatch Alarm 監控
D IAM Policy 或 SCP 拒絕
解析
CloudWatch、CloudTrail、Config 三者都「不能阻止」操作:Config 只能評估並標記 NON_COMPLIANT,頂多事後自動修復。要在建立當下就拒絕,必須靠 IAM Policy 或 Organizations 的 SCP 用 Deny 擋下。
23 / 24
團隊在 EKS 上跑微服務,想看到每個 Pod、每個容器的 CPU 與記憶體用量,而不只是整台節點的指標。應啟用?
A CloudWatch Container Insights
B CloudWatch Lambda Insights
C CloudTrail 資料事件
D SSM Inventory
解析
Container Insights 收集 ECS/EKS/Kubernetes 的容器層級指標(叢集、節點、Pod、容器)。Lambda Insights 是 Lambda 函數專用;CloudTrail 記 API 呼叫;SSM Inventory 收集軟體清單,都不提供容器效能指標。
24 / 24
資安公告某版本的 OpenSSL 有漏洞,主管想立刻知道公司數百台 EC2 裡「哪幾台裝了這個版本」,不想逐台登入查詢。應使用?
A SSM Session Manager
B SSM Patch Manager
C SSM Inventory
D CloudWatch Dashboards
解析
SSM Inventory 收集 EC2 上安裝的應用程式、套件版本與 OS 資訊,可以集中查詢「誰裝了什麼」。Session Manager 是逐台登入的 Shell 連線;Patch Manager 負責套用補丁(確認受影響範圍後可以接著用它修補);Dashboards 只顯示指標。
點擊卡片翻面查看答案,共 5 張。
QUESTION
EC2 記憶體和磁碟使用率為何 CloudWatch 預設沒有?
點擊翻面
ANSWER
CPU/網路是 Hypervisor 層看得到的;RAM/磁碟空間是 OS 層的。需要安裝 CloudWatch Agent 從 OS 內部收集並推送到 CloudWatch Custom Metrics。
點擊翻回
QUESTION
CloudWatch / CloudTrail / Config 各自回答什麼問題?
點擊翻面
ANSWER
CloudWatch → 系統現在狀態如何?(效能監控)
CloudTrail → 誰做了什麼 API 呼叫?(稽核)
Config → 資源設定是否符合規則?(合規)
點擊翻回
QUESTION
SSM Session Manager 為何比 Bastion Host 更好?
點擊翻面
ANSWER
不需開 Port 22、不需 SSH Key Pair,通過 HTTPS 連線(Port 443),所有 Session 自動記錄稽核日誌,且不需要維護 Bastion 主機本身。
點擊翻回
QUESTION
CloudTrail Data Events 和 Management Events 的差異?
點擊翻面
ANSWER
Management Events = 控制層(建立/刪除資源)→ 預設記錄
Data Events = 資料層(S3 讀寫、Lambda 呼叫)→ 預設不記錄(量大費用高,需手動啟用)
點擊翻回
QUESTION
AWS Config 能阻止違規操作嗎?
點擊翻面
ANSWER
不能。Config 只負責評估(記錄設定、標記 NON_COMPLIANT)。阻止違規操作靠 IAM Policy 或 SCP。Config 可以設定 Auto Remediation 事後自動修復。
點擊翻回