

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

# S3 恶意软件防护的工作原理
工作原理

本节介绍 S3 恶意软件防护的组件、为 S3 存储桶启用此功能后的工作原理，以及如何检查恶意软件扫描状态和结果。

## 概述


您可以为属于自己的 Amazon S3 存储桶启用 S3 的恶意软件防护 Amazon Web Services 账户。 GuardDuty允许您灵活地为整个存储桶启用此功能，或者将恶意软件扫描的范围限制为特定的[对象前缀](https://docs.amazonaws.cn/AmazonS3/latest/userguide/using-prefixes.html)，其中 GuardDuty 扫描以选定前缀之一开头的每个上传对象。您最多可以添加 5 个前缀。为 S3 存储桶启用此功能时，该存储桶被称为**受保护的存储桶**。

## IAM 角色权限


S3 恶意软件防护使用允许 GuardDuty 代表您执行恶意软件扫描操作的 IAM 角色。这些操作包括接收所选存储桶中新上传对象的通知、对这些对象进行扫描以及（可选）向已扫描对象添加标签等。这是使用此功能配置 S3 存储桶的一个先决条件。

您可以选择更新现有的 IAM 角色，也可以为此目的创建一个新角色。为多个存储桶启用 S3 恶意软件防护时，您可以根据需要通过更新现有的 IAM 角色来包含其他存储桶的名称。有关更多信息，请参阅 [创建或更新 IAM 角色策略](malware-protection-s3-iam-policy-prerequisite.md)。

## 根据扫描结果标记对象（可选）


在为存储桶启用 S3 恶意软件防护时，您可以通过一个可选步骤来标记已扫描的 S3 对象。该 IAM 角色已经包含在扫描后向对象添加标签的权限。但是， GuardDuty 只有在设置时启用此选项时，才会添加标签。

您必须在上传对象之前启用此选项。扫描结束后，使用以下密钥:值对向扫描的 S3 对象 GuardDuty 添加预定义标签：

`GuardDutyMalwareScanStatus`:`Potential scan result`

可能的扫描结果标签值包括 `NO_THREATS_FOUND`、`THREATS_FOUND`、`UNSUPPORTED`、`ACCESS_DENIED` 和 `FAILED`。有关这些值的更多信息，请参阅 [可能的 S3 对象扫描状态和结果状态](monitoring-malware-protection-s3-scans-gdu.md#s3-object-scan-result-value-malware-protection)。

启用标记是了解 S3 对象扫描结果的诸多方法之一。您可以进一步使用这些标签来添加基于标签的访问控制（TBAC）S3 资源策略，以便对可能有恶意的对象执行操作。有关更多信息，请参阅 [在 S3 存储桶资源上添加 TBAC](tag-based-access-s3-malware-protection.md#apply-tbac-s3-malware-protection)。

我们建议您在为存储桶配置 S3 恶意软件防护时启用标记。如果您在上传对象后启用标记，并且扫描可能已启动，则 GuardDuty 将无法向扫描的对象添加标签。有关相关 S3 对象标记成本的信息，请参阅[S3 恶意软件防护的定价和使用成本](pricing-malware-protection-for-s3-guardduty.md)。

## 为存储桶启用 S3 恶意软件防护之后的流程


启用 S3 恶意软件防护后，将专门为选定的 S3 存储桶创建**恶意软件防护计划资源**。此资源与恶意软件防护计划 ID 相关联，后者是受保护资源的唯一标识符。使用其中一个 IAM 权限， GuardDuty 然后按名称创建 EventBridge 和管理托管规则`DO-NOT-DELETE-AmazonGuardDutyMalwareProtectionS3*`。

### 如何 GuardDuty 处理您的数据-数据保护的护栏


适用于 S3 的恶意软件防护会监听 Amazon EventBridge 通知。将对象上传到选定的存储桶或其中一个前缀时，使用从 S3 存储桶 GuardDuty 下载该对象，[Amazon PrivateLink](https://docs.amazonaws.cn/vpc/latest/privatelink/privatelink-share-your-services.html)然后在同一区域的隔离环境中对其进行读取、解密和扫描。扫描环境在无法访问互联网的锁定虚拟私有云（VPC）中运行。VPC 连接到 DNS 防火墙规则组，该规则组仅允许与所拥有的已列入许可名单的域进行通信。 Amazon 在扫描期间，将下载的 S3 对象 GuardDuty 临时存储在使用 [Amazon Key Management Service (Amazon KMS)](https://docs.amazonaws.cn/kms/latest/developerguide/overview.html) 密钥加密的扫描环境中。

**注意**  
默认情况下，Amazon S3 *用户指南中 “[对象创建事件” 类型 APIs ](https://docs.amazonaws.cn/AmazonS3/latest/userguide/EventBridge.html)下列出的所有 Amazon S3* 都将启动 S3 扫描的恶意软件防护。  
这些*事件类型*包括 [PutObject](https://docs.amazonaws.cn/AmazonS3/latest/API/API_PutObject.html)[POST 对象](https://docs.amazonaws.cn/AmazonS3/latest/API/RESTObjectPOST.html)和[CompleteMultipartUpload](https://docs.amazonaws.cn/AmazonS3/latest/API/API_CompleteMultipartUpload.html)。[CopyObject](https://docs.amazonaws.cn/AmazonS3/latest/API/API_CopyObject.html)

有关 GuardDuty 恶意软件检测方法及其使用的扫描引擎的信息，请参阅[GuardDuty 恶意软件检测扫描引擎](guardduty-malware-detection-scan-engine.md)。

恶意软件扫描完成后，使用扫描状态 GuardDuty 处理扫描元数据，然后删除已下载的对象副本。

GuardDuty 每次在新的扫描开始之前都会清理扫描环境。 GuardDuty 对操作员访问扫描环境使用临时授权，并且每个访问请求都经过审查、批准和审计。

### 检查 S3 对象扫描状态和结果


GuardDuty 将 S3 对象扫描结果事件发布到 Amazon EventBridge 默认事件总线。 GuardDuty 还将扫描指标（例如扫描的对象数量和扫描的字节数）发送到 Amazon CloudWatch。如果您启用了标记，则 GuardDuty 会将预定义的标签`GuardDutyMalwareScanStatus`和潜在的扫描结果添加为标签值。

**重要**  
GuardDuty 使用 at-least-once交付，这意味着您可能会收到同一对象的多个扫描结果。建议在设计应用程序时使其能够处理重复的结果。对于每个扫描对象，您只需支付一次费用。

有关更多信息，请参阅 [在 S3 恶意软件防护中监控 S3 对象扫描](monitoring-malware-protection-s3-scans-gdu.md)。

### 检查生成的调查发现


审查结果取决于您是否使用了 S3 恶意软件防护 GuardDuty。考虑以下场景：

**启用 GuardDuty 服务后对 S3 使用恶意软件防护（检测器 ID）**  
如果恶意软件扫描在 S3 对象中检测到潜在的恶意文件，则 GuardDuty 会生成相关的调查结果。您可以查看调查发现的详细信息，也可以使用建议的步骤来潜在修复该调查发现。根据您的[导出结果频率](https://docs.amazonaws.cn/guardduty/latest/ug/guardduty_exportfindings.html#guardduty_exportfindings-frequency)，生成的查找结果将导出到 S3 存储桶和 EventBridge事件总线。  
有关将生成的调查发现类型的信息，请参阅 [S3 恶意软件防护调查发现类型](gdu-malware-protection-s3-finding-types.md)。

**将 S3 恶意软件防护作为一项独立功能使用（无检测器 ID）**  
GuardDuty 将无法生成调查结果，因为没有相关的探测器 ID。要了解 S3 对象恶意软件扫描状态，您可以查看 GuardDuty自动发布到默认事件总线的扫描结果。您还可以查看 CloudWatch 指标以评估 GuardDuty 尝试扫描的对象和字节数。您可以设置 CloudWatch警报以获得有关扫描结果的通知。如果您启用了 S3 对象标记，则还可以通过检查 S3 对象的 `GuardDutyMalwareScanStatus` 标签键和扫描结果标签值来查看恶意软件扫描状态。  
有关 S3 对象扫描状态和结果的信息，请参阅[在 S3 恶意软件防护中监控 S3 对象扫描](monitoring-malware-protection-s3-scans-gdu.md)。