

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon Inspector 扫描 Amazon EC2 实例
<a name="scanning-ec2"></a>

 Amazon Inspector Amazon EC2 扫描会从 EC2 实例提取元数据，然后再将这些元数据与从安全公告中收集的规则进行比较。Amazon Inspector 会扫描实例中是否存在程序包漏洞和网络可达性问题，然后生成[调查发现](https://docs.aws.amazon.com/inspector/latest/user/findings-types.html)。Amazon Inspector 每 12 小时执行一次网络可访问性扫描，并根据与 EC2 实例关联的扫描方法以可变的节奏进行软件包漏洞扫描。

 程序包漏洞扫描可以使用[基于代理](https://docs.aws.amazon.com/inspector/latest/user/scanning-ec2.html#agent-based)或[无代理](https://docs.aws.amazon.com/inspector/latest/user/scanning-ec2.html#agentless)的扫描方法执行。这两种扫描方法决定了 Amazon Inspector 如何以及何时从 EC2 实例收集软件清单来进行程序包漏洞扫描。基于代理的扫描使用 SSM Agent 收集软件清单，无代理扫描使用 Amazon EBS 快照收集软件清单。

 Amazon Inspector 使用您为账户激活的扫描方法。首次激活 Amazon Inspector 时，您的账户会自动注册混合扫描类型，同时使用这两种扫描方法。不过，您可以随时[更改此设置](https://docs.aws.amazon.com/inspector/latest/user/scanning-ec2.html#scan-mode)。有关如何激活扫描类型的信息，请参阅[激活扫描类型](https://docs.aws.amazon.com/inspector/latest/user/activate-scans.html)。本节提供了有关 Amazon EC2 扫描的信息。

**注意**  
 Amazon EC2 扫描不会扫描与虚拟环境相关的文件系统目录，即使这些目录是通过深度检查预调配的也是如此。例如，由于路径 `/var/lib/docker/` 通常用于容器运行时，因此不会对其进行扫描。

## 基于代理的扫描
<a name="agent-based"></a>

在所有符合条件的实例上，我们使用 SSM 代理持续执行基于代理的扫描。对于基于代理的扫描，Amazon Inspector 使用 SSM 关联以及通过这些关联安装的插件从实例收集软件清单。除了对操作系统程序包进行程序包漏洞扫描外，Amazon Inspector 基于代理的扫描还可以通过[基于 Linux 的 Amazon EC2 实例的 Amazon Inspector 深度检查](deep-inspection.md)，检测基于 Linux 的实例中的应用程序编程语言包是否存在程序包漏洞。

以下过程说明了 Amazon Inspector 如何使用 SSM 收集清单和执行基于代理的扫描：

1. Amazon Inspector 会在您的账户中创建 SSM 关联，以便从实例中收集清单。对于某些实例类型（Windows 和 Linux），这些关联会在单个实例上安装插件以收集清单。

1. Amazon Inspector 使用 SSM 从实例中提取程序包清单。

1. Amazon Inspector 会评估提取的清单，并针对检测到的任何漏洞生成调查发现。

**注意**  
 对于基于代理的扫描，Amazon EC2 实例必须由同一 AWS 账户中的 SSM 进行管理。

### 符合条件的实例
<a name="agent-based-eligible"></a>

如果实例满足以下条件，Amazon Inspector 将使用基于代理的方法对其进行扫描：
+ 该实例具有支持的操作系统。有关支持的操作系统列表，请参阅[支持的操作系统：Amazon EC2 扫描](supported.md#supported-os-ec2)的**基于代理的扫描支持**列。
+ 未使用 Amazon Inspector EC2 排除标签将该实例排除在扫描范围之外。
+ 该实例由 SSM 托管。有关验证和配置该代理的说明，请参阅[配置 SSM 代理](#configure-ssm)。

### 基于代理的扫描行为
<a name="ec2-scan-behavior"></a>

使用基于代理的扫描方法时，在以下情况下，Amazon Inspector 会对 EC2 实例启动新的漏洞扫描：
+ 启动新 EC2 实例时。
+ 在现有 EC2 实例（Linux 和 Mac）上安装新软件时。
+ Amazon Inspector 在其数据库中添加新的常见漏洞和风险（CVE）项目，且该 CVE 与您的 EC2 实例（Linux 和 Mac）相关时。

初始扫描完成后，Amazon Inspector 会更新 EC2 实例的**上次扫描时间**字段。此后，当 Amazon Inspector 评估 SSM 清单时（默认为每 30 分钟一次），或者由于影响实例的新 CVE 被添加到 Amazon Inspector 数据库而需要重新扫描该实例时，**上次扫描时间**字段就会更新。

您可以通过**账户管理**页面的“实例”选项卡或通过使用 [https://docs.aws.amazon.com//inspector/v2/APIReference/API_ListCoverage.html](https://docs.aws.amazon.com//inspector/v2/APIReference/API_ListCoverage.html) 命令，来查看上次扫描 EC2 实例是否存在漏洞的时间。

### 配置 SSM 代理
<a name="configure-ssm"></a>

为了让 Amazon Inspector 检测到使用基于代理的扫描方法的 Amazon EC2 实例的软件漏洞，该实例必须是 Amazon EC2 Systems Manager（SSM）中的[托管实例](https://docs.aws.amazon.com//systems-manager/latest/userguide/managed_instances.html)。SSM 托管实例已安装并运行了 SSM 代理，SSM 有权管理该实例。如果您已经在使用 SSM 来管理实例，那么无需执行其他步骤，即可开始基于代理的扫描。

SSM 代理默认安装在根据某些 Amazon 系统映像 (AMIs) 创建的 EC2 实例上。有关更多信息，请参阅 *AWS Systems Manager 用户指南*中的[关于 SSM 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/prereqs-ssm-agent.html)。但是，即使已经安装了 SSM 代理，您也可能需要手动激活 SSM 代理，并授予 SSM 管理实例的权限。

以下步骤介绍了如何使用 IAM 实例配置文件将 Amazon EC2 实例配置为托管实例。这些步骤还提供了指向 *AWS Systems Manager 用户指南*中更多详细信息的链接。

附加实例配置文件时，建议使用 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html) 策略。该策略拥有 Amazon Inspector EC2 扫描所需的所有权限。

**注意**  
您还可以使用 SSM 默认主机管理配置，在不使用 IAM 实例配置文件的情况下自动管理所有 EC2 实例。有关更多信息，请参阅[默认主机管理配置](https://docs.aws.amazon.com/systems-manager/latest/userguide/managed-instances-default-host-management.html)。在实例上配置 IAM 实例配置文件时，Amazon Inspector 会使用该配置文件并忽略默认主机管理配置 (DHMC) 角色。

**为 Amazon EC2 实例配置 SSM**

1. 如果操作系统供应商未安装 SSM 代理，请先安装。有关更多信息，请参阅[使用 SSM 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)。

1.  AWS CLI 使用验证 SSM 代理是否正在运行。有关更多信息，请参阅[检查 SSM 代理状态并启动代理](https://docs.aws.amazon.com//systems-manager/latest/userguide/ssm-agent-status-and-restart.html)。

1. 向 SSM 授予管理实例的权限。您可以通过创建 IAM 实例配置文件并将其附加到实例来授予相应权限。我们建议使用 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html) 策略，因为该策略具有 Amazon Inspector 扫描所需的 SSM Distributor、SSM Inventory 和 SSM State Manager 权限。有关创建具有这些权限的实例配置文件并将其附加到实例的说明，请参阅[为 Systems Manager 配置实例权限](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-permissions.html#instance-profile-add-permissions)。

1. （可选）激活 SSM 代理的自动更新。有关更多信息，请参阅[自动更新 SSM 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-automatic-updates.html)。

1. （可选）将 Systems Manager 配置为使用 Amazon Virtual Private Cloud（Amazon VPC）端点。有关更多信息，请参阅[创建 Amazon VPC 端点](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-create-vpc.html)。

**重要**  
Amazon Inspector 需要您的账户中具有 Systems Manager State Manager 关联才能收集软件应用程序清单。如果不存在相应关联，Amazon Inspector 会自动创建一个名为 `InspectorInventoryCollection-do-not-delete` 的关联。  
Amazon Inspector 还需要资源数据同步，如果不存在相应同步，则会自动创建一个名为 `InspectorResourceDataSync-do-not-delete` 的同步。有关更多信息，请参阅 [AWS Systems Manager 用户指南](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-datasync.html)中的*配置清单的资源数据同步*。每个账户可在每个区域拥有一定数量的资源数据同步。有关更多信息，请参阅 [SSM 端点和](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm)配额中资源数据同步的最大数量（ AWS 账户 每个区域）。

#### 为扫描创建的 SSM 资源
<a name="ssm-resources"></a>

 Amazon Inspector 需要您的账户中有大量 SSM 资源才能运行 Amazon EC2 扫描。以下资源是在您首次激活 Amazon Inspector EC2 扫描时创建的：

**注意**  
 如果仍在为您的账户激活 Amazon Inspector Amazon EC2 扫描时删除了其中任何 SSM 资源，Amazon Inspector 将在下一个扫描间隔尝试重新创建这些资源。

`InspectorInventoryCollection-do-not-delete`  
这是一个 Systems Manager State Manager (SSM) 关联，Amazon Inspector 使用它从您的 Amazon EC2 实例收集软件应用程序清单。如果您的账户已经有用于从 `InstanceIds*` 中收集清单的 SSM 关联，则 Amazon Inspector 将使用该关联而不是自己创建。

`InspectorResourceDataSync-do-not-delete`  
这是一个资源数据同步，Amazon Inspector 使用它将收集的清单数据从 Amazon EC2 实例发送到 Amazon Inspector 拥有的 Amazon S3 存储桶。有关更多信息，请参阅 [AWS Systems Manager 用户指南](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-datasync.html)中的*配置清单的资源数据同步*。

`InspectorDistributor-do-not-delete`  
这是 Amazon Inspector 用于扫描 Windows 实例的 SSM 关联。此关联会在 Windows 实例上安装 Amazon Inspector SSM 插件。如果插件文件被无意中删除，则此关联将在下一个关联间隔重新安装它。

`InvokeInspectorSsmPlugin-do-not-delete`  
这是 Amazon Inspector 用于扫描 Windows 实例的 SSM 关联。此关联使 Amazon Inspector 可以使用该插件启动扫描，您也可以使用它来设置扫描 Windows 实例的自定义间隔。有关更多信息，请参阅 [为 Windows 实例扫描设置自定义计划](windows-scanning.md#windows-scan-schedule)。

`InspectorLinuxDistributor-do-not-delete`  
 这是 Amazon Inspector 用于 Amazon EC2 Linux 深度检查的 SSM 关联。此关联会在 Linux 实例上安装 Amazon Inspector SSM 插件。

`InvokeInspectorLinuxSsmPlugin-do-not-delete`  
这是 Amazon Inspector 用于 Amazon EC2 Linux 深度检查的 SSM 关联。此关联使 Amazon Inspector 可以使用该插件启动扫描。

**注意**  
 停用 Amazon Inspector Amazon EC2 扫描或深度检查时，将不再调用 SSM 资源 `InvokeInspectorLinuxSsmPlugin-do-not-delete`。

## 无代理扫描
<a name="agentless"></a>

 当您的账户处于混合扫描模式时，Amazon Inspector 会对符合条件的实例使用无代理扫描方法。混合扫描模式包括基于代理的扫描和无代理扫描，当您激活 Amazon EC2 扫描时会自动启用。

 对于无代理扫描，Amazon Inspector 使用 EBS 快照从您的实例收集软件清单。无代理扫描会对实例进行扫描，看其是否存在操作系统程序包和应用程序编程语言程序包漏洞。

**注意**  
扫描 Linux 实例是否存在应用程序编程语言包漏洞时，无代理方法会扫描所有可用路径，而基于代理的扫描仅扫描默认路径和您在[基于 Linux 的 Amazon EC2 实例的 Amazon Inspector 深度检查](deep-inspection.md)中指定的其他路径。这可能会导致同一个实例有不同的调查发现，具体取决于它是使用基于代理的方法还是使用无代理方法进行扫描。

以下过程说明了 Amazon Inspector 如何使用 EBS 快照收集清单和执行无代理扫描：

1. Amazon Inspector 会为附加到实例的所有卷创建一个 EBS 快照。当 Amazon Inspector 使用它时，快照存储在您的账户中，会使用 `InspectorScan` 标签键进行标记，并使用唯一的扫描 ID 作为标签值。

1. Amazon Inspector 使用 [EBS Dire](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html) ct 从快照中检索数据， APIs并对快照进行漏洞评估。针对任何检测到的漏洞，都会生成调查发现。

1. Amazon Inspector 会删除它在您的账户中创建的 EBS 快照。

### 符合条件的实例
<a name="agentless-eligible"></a>

 如果实例满足以下条件，Amazon Inspector 将使用无代理方法对其进行扫描：
+  该实例具有支持的操作系统。有关更多信息，请参阅[支持的操作系统：Amazon EC2 扫描](supported.md#supported-os-ec2)的“基于代理的扫描支持”列。
+  该实例的状态为 `Unmanaged EC2 instance`、`Stale inventory` 或 `No inventory`。
+  该实例由 Amazon EBS 支持，具有以下文件系统格式之一：
  + `ext3`
  + `ext4`
  + `xfs`
+  未使用 Amazon EC2 排除标签将该实例排除在扫描范围之外。
+  连接到该实例的卷数量小于 8 个，其总大小小于或等于 1200 GB。

### 无代理扫描行为
<a name="agentless-ec2-scan-behavior"></a>

当您的账户配置为**混合扫描**时，Amazon Inspector 会每 24 小时对符合条件的实例执行一次无代理扫描。Amazon Inspector 每小时都会检测和扫描新的符合条件的实例，其中包括没有 SSM 代理的新实例，或者状态已更改为 `SSM_UNMANAGED` 的现有实例。

每当 Amazon Inspector 在无代理扫描后扫描从实例提取的快照时，都会更新 Amazon EC2 实例的**上次扫描时间**字段。

您可以通过“账户管理”页面的“实例”选项卡或通过使用 [https://docs.aws.amazon.com//inspector/v2/APIReference/API_ListCoverage.html](https://docs.aws.amazon.com//inspector/v2/APIReference/API_ListCoverage.html) 命令，来查看上次扫描 EC2 实例是否存在漏洞的时间。

## 管理扫描模式
<a name="scan-mode"></a>

EC2 扫描模式决定了 Amazon Inspector 在您的账户中执行 EC2 扫描时将使用哪些扫描方法。您可以在**常规设置**下的 EC2 扫描设置页面查看账户的扫描模式。独立账户或 Amazon Inspector 委派管理员可以更改扫描模式。当您将扫描模式设置为 Amazon Inspector 委派管理员时，系统会为您组织中的所有成员账户设置该扫描模式。Amazon Inspector 具有以下扫描模式：

**基于代理的扫描** – 在此扫描模式下，Amazon Inspector 在扫描程序包漏洞时将仅使用基于代理的扫描方法。此扫描模式仅扫描您账户中的 SSM 托管实例，但其好处是可以提供持续扫描，以响应新的 CVE 或对实例的更改。基于代理的扫描还可以为符合条件的实例提供 Amazon Inspector 深度检查。这是新激活账户的默认扫描模式。

**混合扫描** – 在此扫描模式下，Amazon Inspector 将结合使用基于代理和无代理的方法来扫描程序包漏洞。对于安装并配置了 SSM 代理的符合条件的 EC2 实例，Amazon Inspector 会使用基于代理的方法。对于不受 SSM 管理的符合条件的实例，Amazon Inspector 将对符合条件且由 EBS 支持的实例使用无代理方法。

**更改扫描模式**

1.  使用您的凭证登录，然后在 [https://console.aws.amazon.com/inspector/v2/](https://console.aws.amazon.com/inspector/v2/home) home 中打开 Amazon Inspector 控制台。

1. 使用页面右上角的选择 AWS 区域 器，选择要更改 EC2 扫描模式的区域。

1. 在侧面导航面板的**常规设置**下，选择 **EC2 扫描设置**。

1. 在**扫描模式**下，选择**编辑**。

1. 选择一个扫描模式，然后选择**保存更改**。

## 从 Amazon Inspector 扫描中排除实例
<a name="exclude-ec2"></a>

 可以使用 `InspectorEc2Exclusion` 密钥为 Linux 和 Windows 实例添加标签，从而将其排除在 Amazon Inspector 扫描范围之外。标签密钥不区分大小写。包括标签值是可选的。有关添加标签的信息，请参阅[标记 Amazon EC2 资源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)。

 当为实例添加标签以将其排除在 Amazon Inspector 扫描范围之外时，Amazon Inspector 会将该实例标记为已排除，且不会为其创建调查发现。但是，Amazon Inspector SSM 插件将继续被调用。要防止调用该插件，必须[允许访问实例元数据中的标签](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html#allow-access-to-tags-in-IMDS)。

**注意**  
 您无需为排除的实例付费。

 此外，您可以通过使用标签标记用于加密该卷的 AWS KMS 密钥，将加密的 EBS 卷排除在无代理扫描之外。`InspectorEc2Exclusion`有关更多信息，请参阅[标记密钥](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys)。

## 支持的操作系统
<a name="supported-instance"></a>

Amazon Inspector 会扫描支持的 Mac、Windows 和 Linux 实例中是否存在操作系统包中的漏洞。对于 Linux 实例，Amazon Inspector 可以使用 [基于 Linux 的 Amazon EC2 实例的 Amazon Inspector 深度检查](deep-inspection.md) 生成应用程序编程语言包的调查发现。对于 Mac 和 Windows 实例，仅扫描操作系统程序包。

有关支持的操作系统的信息，包括无需使用 SSM 代理即可扫描哪些操作系统，请参见[Amazon EC2 实例的状态值支持的操作系统：Amazon EC2 扫描](supported.md#supported-os-ec2)。

# 基于 Linux 的 Amazon EC2 实例的 Amazon Inspector 深度检查
<a name="deep-inspection"></a>

 Amazon Inspector 将 Amazon EC2 扫描覆盖率扩展至深度检查。借助深度检查，Amazon Inspector 可以检测基于 Linux 的 Amazon EC2 实例中的应用程序编程语言程序包是否存在程序包漏洞。Amazon Inspector 会扫描编程语言包库的默认路径。但是，除了默认情况下 Amazon Inspector 扫描的路径外，您还可以[配置自定义路径](https://docs.aws.amazon.com//inspector/latest/user/deep-inspection.html#deep-inspection-paths)。

**注意**  
 深度检查需要`ssm:PutInventory`和`ssm:GetParameter`权限。如果在实例上配置了 IAM 实例配置文件，Amazon Inspector 将使用该配置文件并忽略 DHMC 角色。实例配置文件必须包含这些权限。如果未设置实例配置文件，Amazon Inspector 将使用已[配置的默认主机管理配置](https://docs.aws.amazon.com/systems-manager/latest/userguide/managed-instances-default-host-management.html)角色，该角色必须包含这些权限。

 为了对您基于 Linux 的 Amazon EC2 实例执行深度检查扫描，Amazon Inspector 会使用通过 Amazon Inspector SSM 插件收集的数据。为了管理 Amazon Inspector SSM 插件并对 Linux 执行深度检查，Amazon Inspector 会自动在您的账户中创建 SSM 关联 `InvokeInspectorLinuxSsmPlugin-do-not-delete`。Amazon Inspector 每 6 小时从基于 Linux 的 Amazon EC2 实例收集更新的应用程序清单。

**注意**  
 Windows 或 Mac 实例不支持深度检查。

 本节介绍了如何管理 Amazon EC2 实例的 Amazon Inspector 深度检查，包括如何为 Amazon Inspector 设置自定义扫描路径。

**Topics**
+ [访问或停用深度检查](#deep-inspection-activate)
+ [Amazon Inspector 深度检查的自定义路径](#deep-inspection-paths)
+ [Amazon Inspector 深度检查的自定义计划](#deep-inspection-schedules)
+ [支持的编程语言](#supported-deep-inspection)

## 访问或停用深度检查
<a name="deep-inspection-activate"></a>

**注意**  
 对于在 2023 年 4 月 17 日之后激活 Amazon Inspector 的账户，深度检查将作为 Amazon EC2 扫描的一部分自动激活。

**管理深度检查**

1.  使用您的凭证登录，然后在 [https://console.aws.amazon.com/inspector/v](https://console.aws.amazon.com/inspector/v2/home) 2/home 中打开 Amazon Inspector 控制台 

1.  在导航窗格中，选择**常规设置**，然后选择 Amazon EC2 扫描设置。

1.  在 **Amazon EC2 实例的深度检查**下，您可以[为您的组织或您自己的账户设置自定义路径](https://docs.aws.amazon.com/inspector/latest/user/deep-inspection.html#deep-inspection-paths)。

 您可以使用 [GetEc2 DeepInspectionConfiguration](https://docs.aws.amazon.com/inspector/v2/APIReference/API_GetEc2DeepInspectionConfiguration.html) API 以编程方式检查单个账户的激活状态。您可以使用 [https://docs.aws.amazon.com/inspector/v2/APIReference/API_BatchUpdateMemberEc2DeepInspectionStatus.html](https://docs.aws.amazon.com/inspector/v2/APIReference/API_BatchUpdateMemberEc2DeepInspectionStatus.html) API 以编程方式检查多个账户的激活状态。

 如果您在 2023 年 4 月 17 日之前激活了 Amazon Inspector，则可以通过控制台横幅或 [https://docs.aws.amazon.com/inspector/v2/APIReference/API_UpdateEc2DeepInspectionConfiguration.html](https://docs.aws.amazon.com/inspector/v2/APIReference/API_UpdateEc2DeepInspectionConfiguration.html) API 激活深度检查。如果您是 Amazon Inspector 中某组织的委派管理员，则可以使用 [https://docs.aws.amazon.com/inspector/v2/APIReference/API_BatchUpdateMemberEc2DeepInspectionStatus.html](https://docs.aws.amazon.com/inspector/v2/APIReference/API_BatchUpdateMemberEc2DeepInspectionStatus.html) API 为自己和成员账户激活深度检查。

 您可以通过 [https://docs.aws.amazon.com/inspector/v2/APIReference/API_UpdateEc2DeepInspectionConfiguration.html](https://docs.aws.amazon.com/inspector/v2/APIReference/API_UpdateEc2DeepInspectionConfiguration.html) API 停用深度检查。组织中的成员账户无法停用深度检查。因此，成员账户必须由其委派管理员使用 [https://docs.aws.amazon.com/inspector/v2/APIReference/API_BatchUpdateMemberEc2DeepInspectionStatus.html](https://docs.aws.amazon.com/inspector/v2/APIReference/API_BatchUpdateMemberEc2DeepInspectionStatus.html) API 停用。

## Amazon Inspector 深度检查的自定义路径
<a name="deep-inspection-paths"></a>

 您可以设置自定义路径，以便 Amazon Inspector 在对 Linux Amazon EC2 实例执行深度检查时进行扫描。当您设置自定义路径时，Amazon Inspector 会扫描该目录及其中的所有子目录中的程序包。

 所有账户都可以定义最多 5 个自定义路径。组织的委派管理员可以定义 10 个自定义路径。

 Amazon Inspector 除了扫描所有账户的以下默认路径外，还会扫描所有自定义路径：
+ `/usr/lib`
+ `/usr/lib64`
+ `/usr/local/lib`
+ `/usr/local/lib64`

**注意**  
 自定义路径必须是本地路径。Amazon Inspector 不会扫描映射的网络路径，例如网络文件系统挂载或 Amazon S3 文件系统挂载等。

### 自定义路径的格式设置
<a name="deep-inspection-paths-format"></a>

 自定义路径不能超过 256 个字符。以下是自定义路径外观的示例：

**路径示例**  
 `/home/usr1/project01` 

**注意**  
 每个实例的程序包限制是 5000 个。程序包清单收集时间上限为 15 分钟。Amazon Inspector 建议您选择自定义路径，以规避这些限制。

### 使用 Amazon Inspector 控制台和 Amazon Inspector API 设置自定义路径
<a name="deep-inspection-add-paths"></a>

 以下步骤描述了如何使用 Amazon Inspector 控制台以及使用 Amazon Inspector API 为 Amazon Inspector 深度检查设置自定义路径。设置自定义路径后，Amazon Inspector 会在下一次深度检查中包含该路径。

------
#### [ Console ]

1.  以授权管理员身份登录， AWS 管理控制台 然后在 [https://console.aws.amazon.com/inspector/v](https://console.aws.amazon.com/inspector/v2/home) 2/home 上打开 Amazon Inspector 控制台 

1.  使用 AWS 区域 选择器选择要激活 Lambda 标准扫描的区域。

1.  在导航窗格中，依次选择**常规设置**和 **EC2 扫描设置**。

1.  在**自己账户的自定义路径**下，选择**编辑**。

1.  在路径文本框中输入自定义路径。

1.  选择**保存**。

------
#### [ API ]

 运行 [https://docs.aws.amazon.com/inspector/v2/APIReference/API_UpdateEc2DeepInspectionConfiguration.html](https://docs.aws.amazon.com/inspector/v2/APIReference/API_UpdateEc2DeepInspectionConfiguration.html) 命令。对于 `packagePaths`，指定要扫描的路径数组。

------

## Amazon Inspector 深度检查的自定义计划
<a name="deep-inspection-schedules"></a>

 默认情况下，Amazon Inspector 每 6 小时从基于 Amazon EC2 实例收集一次应用程序清单。不过，可以运行以下命令来控制 Amazon Inspector 执行此操作的频率。

 **命令示例 1：列出关联以查看关联 ID 和当前间隔** 

 以下命令显示关联 `InvokeInspectorLinuxSsmPlugin-do-not-delete` 的关联 ID。

```
aws ssm list-associations \
--association-filter-list "key=AssociationName,value=InvokeInspectorLinuxSsmPlugin-do-not-delete" \
--region your-Region
```

 **命令示例 2：更新关联以包括新的间隔** 

 以下命令使用关联 `InvokeInspectorLinuxSsmPlugin-do-not-delete` 的关联 ID。您可以将 `schedule-expression` 速率从 6 小时设置为新的间隔，例如 12 小时。

```
aws ssm update-association \
--association-id "your-association-ID" \
--association-name "InvokeInspectorLinuxSsmPlugin-do-not-delete" \
--schedule-expression "rate(6 hours)" \
--region your-Region
```

**注意**  
 根据您的使用案例，如果您将 `schedule-expression` 速率从 6 小时设置为 30 分钟这样的间隔，则可能会[超出每日 SSM 清单限制](https://docs.aws.amazon.com/inspector/latest/user/assessing-coverage.html#viewing-coverage-instances)。这会导致结果延迟，并且您可能会遇到 Amazon EC2 实例部分处于错误状态的情况。

## 支持的编程语言
<a name="supported-deep-inspection"></a>

 对于 Linux 实例，Amazon Inspector 深度检查还可以生成应用程序编程语言程序包及操作系统程序包的调查发现。

 对于 Mac 和 Windows 实例，Amazon Inspector 深度检查只能生成操作系统程序包的调查发现。

 有关支持的编程语言的更多信息，请参阅[支持的编程语言：Amazon EC2 深度检查](https://docs.aws.amazon.com/inspector/latest/user/supported.html#supported-programming-languages-deep-inspection)。

# 使用 Amazon Inspector 扫描 Windows EC2 实例
<a name="windows-scanning"></a>

 Amazon Inspector 会自动发现所有支持的 Windows 实例，并将其纳入连续扫描，无需任何额外操作。有关支持哪些实例的信息，请参阅 [Amazon Inspector 支持的操作系统和编程语言](https://docs.aws.amazon.com/inspector/latest/user/supported.html)。Amazon Inspector 会定期运行 Windows 扫描。Windows 实例在发现时进行扫描，然后每 6 小时扫描一次。但是，可以在首次扫描后[调整默认扫描间隔](https://docs.aws.amazon.com/inspector/latest/user/windows-scanning.html#windows-scan-schedule)。

 激活 Amazon EC2 扫描后，Amazon Inspector 会为 Windows 资源创建以下 SSM 关联：`InspectorDistributor-do-not-delete`、`InspectorInventoryCollection-do-not-delete` 和 `InvokeInspectorSsmPlugin-do-not-delete`。若要在 Windows 实例上安装 Amazon Inspector SSM 插件，`InspectorDistributor-do-not-delete` SSM 关联会使用 [`AWS-ConfigureAWSPackage` SSM 文档](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ssm-docs.html)和 [`AmazonInspector2-InspectorSsmPlugin` SSM Distributor 程序包](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html)。有关更多信息，请参阅[适用于 Windows 的 Amazon Inspector SSM 插件](https://docs.aws.amazon.com/inspector/latest/user/deep-inspection.html#inspector/latest/user/deep-inspection.html)。若要收集实例数据并生成 Amazon Inspector 调查发现，`InvokeInspectorSsmPlugin-do-not-delete` SSM 关联会每 6 小时运行一次 Amazon Inspector SSM 插件。但是，您可以[使用 cron 或 rate 表达式自定义此设置](https://docs.aws.amazon.com/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html)。

**注意**  
 Amazon Inspector 将更新的开放漏洞和评测语言（OVAL）定义文件暂存到 S3 存储桶 `inspector2-oval-prod-your-AWS-Region`。Amazon S3 存储桶包含扫描中使用的 OVAL 定义。不应修改这些 OVAL 定义。否则，Amazon Inspector 在新版本发布 CVEs 时将不会对其进行扫描。

## Windows 实例的 Amazon Inspector 扫描要求
<a name="windows-requirements"></a>

要扫描 Windows 实例，Amazon Inspector 要求实例满足以下条件：
+ 该实例是 SSM 托管实例。有关设置扫描实例的说明，请参阅[配置 SSM 代理](scanning-ec2.md#configure-ssm)。
+ 实例操作系统是支持的 Windows 操作系统之一。有关支持的操作系统类型的完整列表，请参阅[Amazon EC2 实例的状态值支持的操作系统：Amazon EC2 扫描](supported.md#supported-os-ec2)。
+ 该实例安装了 Amazon Inspector SSM 插件。Amazon Inspector 会在发现托管实例时自动为其安装 Amazon Inspector SSM 插件。有关该插件的详细信息，请参阅下一个主题。

**注意**  
如果主机在 Amazon VPC 中运行，但没有出站互联网访问权限，则 Windows 扫描要求主机能够访问区域 Amazon S3 端点。要了解如何配置 Amazon S3 Amazon VPC 端点，请参阅 *Amazon Virtual Private Cloud 用户指南*中的[创建网关端点](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3)。如果您的 Amazon VPC 终端节点策略限制对外部 S3 存储桶的访问，则必须明确允许访问由 Amazon Inspector 维护的存储桶 AWS 区域 ，该存储桶存储用于评估您的实例的 OVAL 定义。此存储桶使用以下格式：`inspector2-oval-prod-REGION`。

## 为 Windows 实例扫描设置自定义计划
<a name="windows-scan-schedule"></a>

您可以使用 SSM 为 `InvokeInspectorSsmPlugin-do-not-delete` 关联设置 cron 表达式或 rate 表达式，从而自定义 Windows Amazon EC2 实例扫描之间的间隔时间。有关更多信息，请参阅 *AWS Systems Manager 用户指南*中的[参考：适用于 Systems Manager 的 cron 和 rate 表达式](https://docs.aws.amazon.com/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html)，或使用以下说明。

从以下代码示例中选择一个，使用 rate 表达式或 cron 表达式将 Windows 实例的扫描节奏从默认的 6 小时更改为 12 小时。

以下示例要求您使用名**AssociationId**为的关联`InvokeInspectorSsmPlugin-do-not-delete`。你可以**AssociationId**通过运行以下 AWS CLI 命令来检索你的：

```
$ aws ssm list-associations --association-filter-list "key=AssociationName,value=InvokeInspectorSsmPlugin-do-not-delete" --region us-east-1
```

**注意**  
**AssociationId**是区域性的，因此您需要先为每个区域检索一个唯一的 ID AWS 区域。然后，您可以运行上述命令，在要为 Windows 实例设置自定义扫描计划的每个区域更改扫描节奏。

------
#### [ Example rate expression ]

```
$ aws ssm update-association \
--association-id "YourAssociationId" \
--association-name "InvokeInspectorSsmPlugin-do-not-delete" \
--schedule-expression "rate(12 hours)"
```

------
#### [ Example cron expression ]

```
$ aws ssm update-association \
--association-id "YourAssociationId" \
--association-name "InvokeInspectorSsmPlugin-do-not-delete" \
--schedule-expression "cron(0 0/12 * * ? *)"
```

------