如何疑難排解 Amazon Inspector 中的 EC2 代理程式型掃描和 CIS 掃描問題?
我的 Amazon Elastic Compute Cloud (Amazon EC2) 代理程式型掃描或 Amazon Inspector CIS 掃描 (CIS 掃描) 因發生錯誤而失敗。我的 Amazon EC2 執行個體位於私有子網路中。
簡短說明
Amazon Inspector EC2 代理程式型掃描和 CIS 掃描必須能夠連線至多個 AWS 服務端點。對於無法透過網際網路閘道或 NAT 閘道存取網際網路的私有 EC2 執行個體,您必須設定虛擬私有雲端 (VPC) 端點來提供此連線。大多數掃描失敗的原因是缺少 Amazon Simple Storage Service (Amazon S3) VPC 端點,或端點政策的組態不正確。
如果您執行 EC2 代理程式型掃描或 CIS 掃描時看到以下任一狀態,請完成本文中的以下步驟:
- 「內部錯誤」
- 「無庫存資料」
- 「初始掃描擱置中」
- 「庫存資料已過期」
- 「未受管 EC2 執行個體」
- 「主動監控中,但有部分錯誤」
- 「已取消」
- 「已逾時」
解決方法
檢查執行個體和 IAM 角色組態
確認 Amazon Inspector 支援執行個體的作業系統,且 AWS Systems Manager 正在管理該執行個體。對於 CIS 掃描,您還必須將 AmazonInspector2ManagedCisPolicy 政策附加至執行個體的 AWS Identity and Access Management (IAM) 角色。
若要確認 Systems Manager 正在管理您的執行個體,請完成以下步驟:
- 開啟 Systems Manager console (Systems Manager 主控台)。
- 在導覽窗格中,選擇 Fleet Manager,這是 AWS Systems Manager 的功能。
- 選擇 Managed nodes (受管節點),然後確認該執行個體是否出現在清單中。
注意: 如果執行個體出現在 Managed nodes (受管節點) 下,則表示 Systems Manager 正在管理該執行個體。
如果您的執行個體出現在清單中,請在 Fleet Manager 中確認 SSM Agent 版本是否為最新版本。
如果執行個體未出現在清單中,請將 AmazonSSMManagedInstanceCore 政策附加至執行個體的 IAM 角色。如需說明,請參閱將 Systems Manager 執行個體設定檔附加至執行個體 (主控台)。附加 IAM 政策後,請按照檢查 VPC 端點和政策一節中的說明操作。
注意: Amazon Inspector 僅在執行 CIS 掃描時需要 AmazonInspector2ManagedCisPolicy 政策。執行 CIS 掃描時,也請將此政策附加至執行個體的 IAM 角色。
若要使用 Systems Manager 管理執行個體,請設定 Systems Manager 透過 AWS PrivateLink 使用 VPC 介面端點。
檢查 VPC 端點和政策
請完成以下步驟:
-
開啟 Amazon Virtual Private Cloud (Amazon VPC) console (Amazon Virtual Private Cloud (Amazon VPC) 主控台)。
-
在導覽窗格中,選擇 Endpoints (端點)。
-
確認您已在執行個體的 VPC 中設定以下端點:
com.amazonaws.REGION.ssm
com.amazonaws.REGION.ssmmessages
com.amazonaws.REGION.ec2messages
com.amazonaws.REGION.s3
com.amazonaws.REGION.inspector2
注意: 將 REGION 替換為您的 AWS 區域。Amazon Inspector 僅在執行 CIS 掃描時需要 com.amazonaws.region.inspector2。 -
在 Endpoints (端點) 頁面上,選擇 Policy (政策)。
-
確認 Amazon S3 端點政策允許對以下 S3 儲存貯體執行 s3:GetObject:
arn:aws:s3:::aws-ssm-document-attachments-REGION/*
arn:aws:s3:::inspector2-oval-prod-REGION/*
arn:aws:s3:::cis-datasets-prod-CisBucketId/*
S3 端點政策範例:{ "Sid": "AllowSSMS3BucketGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::aws-ssm-document-attachments-REGION/*", "arn:aws:s3:::inspector2-oval-prod-REGION/*", "arn:aws:s3:::cis-datasets-prod-CisBucketId/*" ] }注意: 將 REGION 替換為您的區域,並將 CisBucketId 替換為您所在區域的 CIS 儲存貯體 ID。Amazon Inspector 僅針對 Windows 執行個體需要 arn:aws:s3:::inspector2-oval-prod-REGION/* 儲存貯體。Amazon Inspector 僅針對 CIS 掃描需要 arn:aws:s3:::cis-datasets-prod-CisBucketId/* 儲存貯體。
檢查網路組態
確認附加至執行個體的安全群組與網路存取控制清單 (網路 ACL) 不會封鎖連接埠 443 的傳出 HTTPS 流量。
如果您使用 S3 的閘道端點,請在路由表中指定前往 S3 VPC 端點的路由。
如果您使用採用 Amazon 所提供 DNS 的 S3 介面端點,請確認 VPC 端點設定中的 Private DNS names enabled (已啟用私有 DNS 名稱) 屬性已設為 Yes (是)。若要確認此設定,請在 Endpoints (端點) 頁面上選取該端點。
如果您使用自訂名稱解析方法,請確認 DNS 或 Proxy 設定會傳回 VPC 端點的私有 IP 位址。確認 curl 或 Test-NetConnection 命令傳回的 IP 位址與 VPC 端點的私有 IP 位址相符。
檢查其他掃描阻礙因素
請採取以下動作:
確認執行個體已在以下路徑安裝 Amazon Inspector Systems Manager (SSM) 外掛程式:
在 Linux 上,使用 /opt/aws/inspector/bin/inspectorssmplugin。
在 Windows 上,使用 C:\Program Files\Amazon\Inspector\inspectorssmplugin.exe。
注意: 執行個體執行時,系統會安裝 Amazon Inspector SSM 外掛程式。如果您經常停止執行個體,系統可能不會安裝此外掛程式。若要解決此問題,請啟動執行個體,並讓執行個體運作一段時間。
確認執行個體沒有 InspectorEc2Exclusion 標籤。此標籤會將執行個體排除在 Amazon Inspector EC2 掃描之外。如需更多資訊,請參閱從 Amazon Inspector 掃描中排除執行個體。
確認服務控制政策 (SCP) 不會限制 EC2 掃描所需的 Systems Manager 動作。AmazonSSMManagedInstanceCore 政策允許這些動作。
收集取得進一步支援所需的資訊
注意: 如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱AWS CLI 錯誤疑難排解。此外,請確認您使用的是最新 AWS CLI 版本。
如果您無法解決問題,請聯絡 AWS Support,並在支援案例中提供以下資訊:
-
執行個體 ID
-
SSM Agent 日誌和 Amazon Inspector 日誌檔案:在 Linux 上,日誌檔案位於 /var/log/amazon/ssm 和 /var/log/amazon/inspector 目錄中。在 Windows 上,日誌檔案位於 %ProgramData%\Amazon\SSM\Logs\ 和 %ProgramData%\Amazon\Inspector\ 目錄中。
-
對於 CIS 掃描,請執行以下 AWS CLI 命令,以提供掃描詳細資訊和掃描組態的相關資訊。
若要取得 CIS 掃描的日期和狀態,請執行以下 list-cis-scans 命令:aws inspector2 list-cis-scans若要取得目標詳細資訊並確認標籤是否相符,請執行以下 list-cis-scan-configurations 命令:
aws inspector2 list-cis-scan-configurations -
執行以下 Test-NetConnection 和 ssm-cli 命令,以提供各端點的連線測試結果。
注意: 將 REGION 替換為您的區域。在以下連線測試命令中,將 ENDPOINT_DNS_NAME 替換為以下清單中的 DNS 名稱。只有 CIS 掃描需要 inspector2.REGION.amazonaws.com DNS 名稱。
ssm.REGION.amazonaws.com
ssmmessages.REGION.amazonaws.com
ec2messages.REGION.amazonaws.com
s3.REGION.amazonaws.com
inspector2.REGION.amazonaws.com
若要取得 Linux 上的連線測試結果,請執行以下 curl 命令:curl -v https://ENDPOINT_DNS_NAME若要在 Linux 上收集 SSM Agent 診斷資訊,請執行以下 ssm-cli 命令:
ssm-cli get-diagnostics --output table若要取得 Windows 上的連線測試結果,請執行以下 Test-NetConnection 命令:
Test-NetConnection ENDPOINT_DNS_NAME -port 443若要在 Windows 上收集 SSM Agent 診斷資訊,請執行以下 ssm-cli 命令:
& "C:\Program Files\Amazon\SSM\ssm-cli.exe" get-diagnostics --output table
相關資訊
為什麼 Amazon Inspector 不掃描我的 Amazon EC2 執行個體?
如何建立 Amazon VPC 端點,以便使用 Systems Manager 管理無法存取網際網路的私有 Amazon EC2 執行個體?
- 語言
- 中文 (繁體)

相關內容
已提問 2 年前
AWS 官方已更新 3 年前