

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

# GuardDuty AWS Backup 的恶意软件防护
<a name="malware-protection-backup"></a>

**Topics**
+ [概述](#malware-protection-backup-overview)
+ [Backup 恶意软件防护如何运作？](malware-protection-backup-how-it-works.md)
+ [GuardDuty Backup 的恶意软件防护：IAM 角色权限](malware-protection-backup-iam-permissions.md)
+ [**（可选）开始使用 Backup 独立恶意软件防护（仅限控制台）**](malware-protection-backup-get-started-independent.md)
+ [启动按需扫描以防恶意软件 Backup](malware-protection-backup-start-on-demand-scan.md)
+ [在 Backup 的恶意软件防护中监控扫描状态和结果](monitoring-malware-protection-backup-scans.md)
+ [Backup 恶意软件防护配额](malware-protection-backup-quotas.md)

## 概述
<a name="malware-protection-backup-overview"></a>

 备份恶意软件保护通过扫描 AWS 受备份保护的资源（例如亚马逊 EBS 快照、Amazon EC2 和 Amazon S3 恢复点），帮助您检测备份数据中可能存在的恶意软件。 AMIs当 AWS Backup 创建或更新受保护的备份资源时， GuardDuty 可以对该备份执行恶意软件扫描，以帮助识别潜在的恶意内容，然后再将其还原到您的环境中。

**如何使用恶意软件保护进行 Backup**

您可以在两种模式下使用此功能，具体取决于您的账户中 GuardDuty 是否启用了此功能：

1. 在 GuardDuty 启用后使用 Backup 的恶意软件防护

   在区域中 GuardDuty 启用后， AWS Backup 会将恶意软件防护与 GuardDuty 发现工作流程集成在一起。除了 Amazon EventBridge 和 Amazon 之外，恶意软件扫描 GuardDuty 结果还会出现在搜索结果中 CloudWatch。

1. 在不启用的情况下对 Backup 使用恶意软件防护 GuardDuty

   您可以单独使用 Backup 恶意软件保护，无需启用完整 GuardDuty 服务。在此模式下，扫描结果仍可通过 EventBridge 和完全获得 CloudWatch。

**单独使用 Backup 恶意软件防护的注意事项**

在不启用该功能的情况下使用该功能时 GuardDuty：
+ 备份计划配置完全在 B AWS ackup 中管理。

GuardDuty 不提供对选择备份计划、存储库或资源类型的控制。所有启用、计划和策略配置都保留在 AWS Backup 中。
+ GuardDuty 未生成调查结果。

发现需要检测器 ID，只有在启用时 GuardDuty 才会创建检测器 ID。独立使用恶意软件防护时，扫描结果仅通过 EventBridge 事件和 CloudWatch 指标显示。
+ 您仍然可以从 GuardDuty 控制台启动按需扫描。

即使 GuardDuty 未启用， GuardDuty 控制台也提供了一个工作流程，用于启动按需恶意软件扫描，以查找支持的备份资源类型。这使客户无需全面 GuardDuty 服务即可使用熟悉的 GuardDuty 界面。
+ 非GuardDuty 客户可以访问扫描启动工作流程。

无论账户中是否存在 GuardDuty 检测器，所有使用 Malware Protection for Backup 的客户都可以使用按需扫描入口点。
+ 扫描行为和覆盖范围保持不变。

无论 GuardDuty 是否启用，该功能都会使用相同的恶意软件检测引擎扫描相同的 AWS Backup 资源类型。唯一的区别是结果发布在哪里。

这种模式允许客户在不需要 GuardDuty更广泛的威胁检测功能的情况下对备份进行恶意软件扫描，同时仍然为启动和查看扫描操作提供了 GuardDuty基于可选的工作流程。

**Backup 恶意软件防护的工作原理**

Backup 恶意软件防护可以扫描以下受备份保护的 AWS 资源：
+ Amazon EBS 快照
+ 亚马逊 EC2 AMIs
+ 亚马逊 S3 恢复点
+ [在支持的区域使用 Backu AWS p Vault Lock 锁定锁定（不可变）的保管库（EBS/EC2 恢复点）](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-feature-availability.html#features-by-region)

*增量扫描*

 AWS Backup 可以捕获许多资源类型的增量更改。 GuardDuty 能够在创建或更新备份时仅扫描新的或更改的块或对象，从而提高性能并减少扫描开销，同时随着时间的推移实现全面覆盖。

*按需扫描*

 您可以随时直接从 Backup 或控制台对任何支持的 AWS 备份资源启动扫描。 GuardDuty 常见用例包括在还原之前验证备份，在发布新的威胁签名后重新检查较旧的数据，或者定期执行合规性扫描。

**注意**  
只能为同一地区的备份资源启用 Backup 恶意软件防护。
GuardDuty 扫描备份的只读副本；它不修改备份内容。
扫描适用于标准文件库和锁定（不可变）文件库。

# Backup 恶意软件防护如何运作？
<a name="malware-protection-backup-how-it-works"></a>

本节介绍了 Backup 恶意软件保护的组件、其工作原理以及如何查看恶意软件扫描状态和结果。

## 概述
<a name="malware-protection-backup-overview"></a>

Backup 恶意软件保护功能可帮助您检测属于 EBS、EC2 和 S3 资源类型的 EBS 快照、EC2 映像 (AMI) 和恢复点上是否存在恶意软件。您可以通过 GuardDuty 控制台或 API 启动按需恶意软件扫描，方法是传入提供扫描所需权限的 IAM 角色以及一两个资源， ARNs 具体取决于扫描类别。可能有两种扫描类别：完全扫描和增量扫描。

### 完全扫描和增量扫描
<a name="malware-protection-backup-scan-types"></a>

全面扫描是 API 将接受资源 ARN 并扫描该资源中的所有文件的地方。另一方面，增量扫描会占用两个资源 ARNs，这两个资源都属于同一个资源，然后扫描它们之间已更改的文件。举个例子，假设我们拍了一张 EBS 卷的快照。我们称之为 s *napshot* -1。如果对此快照进行了全面扫描，则 GuardDuty 会扫描此快照中包含的所有文件。现在，假设向同一个卷中添加了几个文件，并拍摄了新的快照。我们称之为 s *napshot* -2。由于在 *snapshot-1 和 snapshot-* *2 之间只有几个文件发生了变化，因此可以使用这两个快照*的资源触发增量扫描。 ARNs在这种情况下，*snapshot-2* 被称为`target`资源，*snapshot-1* 被称为资源。`base`您将在本文档的其余部分中看到该术语的使用。*此增量扫描将扫描快照 *1 和快照 2 之间已更改的*文件。*

### 在增量扫描中重新扫描以前受感染的文件
<a name="malware-protection-backup-rescanning-infected-files"></a>

作为增量扫描的一部分， GuardDuty 还将从基础扫描中重新扫描以前受感染的文件，最长可持续 365 天。

### 增量扫描的要求
<a name="malware-protection-backup-incremental-requirements"></a>

必须满足以下要求 GuardDuty 才能执行增量扫描。如果不满足这些要求中的任何一个， GuardDuty 将跳过扫描。
+ 基础资源必须在过去 365 天内进行扫描，并且扫描结果必须为`COMPLETED`或`COMPLETED_WITH_ISSUES`。
+ 基础资源的创建日期必须早于目标资源的创建日期。
+ 对于快照，基础资源和目标资源必须具有相同的加密类型。
+ 基础资源和目标资源必须来自同一个血统。
  + 对于 EBS 快照和 EBS 恢复点，这意味着它们要么来自同一个卷，要么来自同一个卷的副本，加密类型没有任何变化。
  + 对于 S3 恢复点， ARNs 必须从同一个底层 S3 存储桶创建基础资源和目标资源。
  + 如果是 AMIs，则在基本 AMI 和目标 AMI 之间比较成对的快照，以识别用于增量扫描的快照。每对快照都需要满足上述条件。目标 AMI 中任何在基本 AMI 中没有相应匹配快照的快照都将被跳过。

### 重新扫描之前扫描的备份资源
<a name="malware-protection-backup-rescanning-resources"></a>

在上一次恶意软件扫描开始后 10 分钟后，您可以在同一资源上开始新的按需恶意软件扫描。如果新的恶意软件扫描在上一次恶意软件扫描启动后的 10 分钟内开始，则您的请求将导致以下错误，并且不会为此请求生成扫描 ID。重新扫描实例的步骤与首次启动按需恶意软件扫描的步骤相同。

## 扫描需要 IAM 角色
<a name="malware-protection-backup-iam-role-required"></a>

您需要传入 IAM 角色才能开始完整或增量扫描。此角色提供执行扫描操作所需的权限。 [GuardDuty Backup 的恶意软件防护：IAM 角色权限](malware-protection-backup-iam-permissions.md)提供了所需的权限的确切列表以及执行扫描所需的相关信任策略。

## 查看资源扫描状态和结果
<a name="malware-protection-backup-reviewing-scan-status"></a>

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

有关更多信息，请参阅 [在 Backup 的恶意软件防护中监控扫描状态和结果](monitoring-malware-protection-backup-scans.md)。

## 检查生成的调查发现
<a name="malware-protection-backup-reviewing-findings"></a>

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

**启用 GuardDuty 服务后使用 Backup 恶意软件防护（检测器 ID）**

如果恶意软件扫描在扫描的 Backup 资源中检测到潜在的恶意文件，则 GuardDuty 会生成相关结果。您可以查看调查发现的详细信息，也可以使用建议的步骤来潜在修复该调查发现。根据您的[导出结果频率](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_exportfindings.html#guardduty_exportfindings-frequency)，生成的查找结果将导出到 S3 存储桶和 Amazon EventBridge 事件总线。

有关将生成的查找类型的信息，请参阅为 Backup 恶意软件防护[Backup 的恶意软件防护查找类型](findings-malware-protection-backup.md)查找类型。

**将 Backup 恶意软件保护作为一项独立功能使用（无检测器 ID）**

GuardDuty 将无法生成调查结果，因为没有关联的探测器 ID。要了解备份资源的扫描状态，您可以查看 GuardDuty 自动发布到默认事件总线的扫描结果。

有关扫描状态和结果的信息，请参见[在 Backup 的恶意软件防护中监控扫描状态和结果](monitoring-malware-protection-backup-scans.md)。

**注意**  
 如果您还使用适用于 S3 的恶意软件防护，则可能您的 S3 文件以前被标记为 NO\$1THREATS\$1FOUND，但同一文件可能会出现在该对象所属的 Backup Recovery Point 的威胁列表中。之所以发生这种情况，是因为该服务经常更新其恶意软件签名，这可能改变了文件的状态。请注意，在这种情况下， GuardDuty 不会返回并更新原始 S3 存储桶中文件上的标签。在文件上应用更新的标签的唯一方法是将对象重新上传到存储桶或使用 S3 的按需扫描功能。

# GuardDuty Backup 的恶意软件防护：IAM 角色权限
<a name="malware-protection-backup-iam-permissions"></a>

## 为恶意软件扫描提供了客户角色
<a name="malware-protection-backup-customer-role"></a>

GuardDuty 恶意软件保护期望在 Backup 资源（即快照、AMI 和 EBS/EC2/S 3 个恢复点）上启动扫描时提供客户角色（扫描者角色）。此角色提供对这些特定资源执行扫描所需的权限。 GuardDuty 可以在中找到该角色的权限策略和信任策略[该角色的权限和信任策略](#malware-protection-backup-permissions-trust-policy)。以下部分描述了为什么需要这些权限。

## 有关权限的详细信息
<a name="malware-protection-backup-permission-details"></a>
+ `ModifySnapshotAttribute`-允许 GuardDuty 恶意软件防护服务帐户访问未加密和客户托管的密钥加密快照。
+ `CreateGrant`-允许 GuardDuty 恶意软件防护从为 GuardDuty 服务帐户提供访问权限的客户托管密钥加密快照中创建和访问客户托管密钥加密的 EBS 卷。
+ `RetireGrant`-允许 GuardDuty 恶意软件防护停用在客户托管密钥上创建的用于读取加密快照的授权
+ `ReEncryptTo`和 `ReEncryptFrom`-EBS 要求允许 GuardDuty 访问使用客户托管密钥加密的快照并使用这些快照创建加密卷。尽管客户可能会将共享期间 ReEncryption 的快照视为密钥过渡，但从客户的角度来看，快照在创建后仍然不可变。
+ `ListSnapshotBlocks`和 `GetSnapshotBlock`-EBS Direc APIs t 用于访问 AWS 托管密钥加密快照的快照块。之所以这样做，是因为无法跨账户访问 AWS 托管密钥加密的快照。
+ `Decrypt`-允许解密在增量扫描过程中使用 EBS Direc APIs t 下载到内存中的客户托管密钥加密的基本快照。
+ `ListChangedBlocks`-增量快照扫描中使用 EBS Direct API 来获取两个快照之间已更改的区块列表。
+ `DescribeKey`-允许 GuardDuty 恶意软件防护确定客户账户中 AWS 托管密钥的 KeyID。
+ `DescribeImages`-允许描述 AMI 以获取属于该 AMI 的快照列表。
+ `DescribeRecoveryPoint`-允许服务获取恢复点详细信息并验证恢复点的资源类型。
+ `CreateBackupAccessPoint`，`DescribeBackupAccessPoint`，`DeleteBackupAccessPoint`-允许服务创建、描述和删除访问恢复点所需的接入点。
+ `kms:Decrypt`-允许服务在 S3 恢复点扫描期间访问 S3 恢复点中的对象。

## 保护角色
<a name="malware-protection-backup-securing-role"></a>

必须为该角色配置信任 GuardDuty 恶意软件防护服务主体的信任策略。这样可以确保除 GuardDuty 服务以外的任何委托人均不能担任此角色。此外，我们鼓励您将政策范围缩小到特定资源，而不是`*`。这包括快照 ID 和密钥 ID。这样做可以确保该角色仅提供对这些特定资源的访问权限。

**重要**  
由于权限不足，不正确的配置可能会导致扫描失败。

## GuardDuty 恶意软件防护如何在 AWS KMS 中使用授权
<a name="malware-protection-backup-kms-grants"></a>

GuardDuty 恶意软件防护需要[授权](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)才能使用您的 KMS 密钥。

当您开始扫描加密快照或由加密快照组成的 EC2 AMI 时， GuardDuty 恶意软件防护会通过向 AWS KMS 发送[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)请求来代表您创建授权。这些授权允许 GuardDuty 访问您账户中的特定密钥。

GuardDuty 恶意软件防护需要获得授权，才能使用您的客户托管密钥进行以下内部操作：
+ 向发送[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)请求 AWS 以获取有关对称客户托管密钥的详细信息，提交给恶意软件扫描的资源使用该密钥进行加密。
+ 使用 [CreateVolume](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html)API 从加密快照创建 EBS 卷，并使用相同的密钥对该卷进行加密。
+ 在增量扫描期间，通过 [GetSnapshotBlock](https://docs.aws.amazon.com/ebs/latest/APIReference/API_GetSnapshotBlock.html)API 访问快照上的快照块。
+ 向 AWS KMS 发送[解密](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)请求以解密加密的数据密钥，以便可以在扫描期间使用这些密钥读取快照上的数据。

您可以随时撤销已创建的授权，或删除该服务对客户托管密钥的访问权限。如果这样做，将 GuardDuty 无法访问由客户托管密钥加密的任何数据，这会影响依赖该数据的操作。

## GuardDuty 恶意软件保护加密上下文
<a name="malware-protection-backup-encryption-context"></a>

[加密上下文](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)是一组可选的键值对，包含有关数据的其他上下文信息。

当您在加密数据的请求中包含加密上下文时， AWS KMS; 会将加密上下文绑定到加密数据。要解密数据，您必须在请求中包含相同的加密上下文。

GuardDuty 恶意软件防护使用两种加密环境之一。

**加密上下文 1：**密钥是`aws:guardduty:id`。

```
"encryptionContext": {
    "aws:guardduty:id": "snap-11112222333344"
}
```

此加密上下文与授权操作一起使用： CreateGrant、Decrypt、、 GenerateDataKeyWithoutPlaintext、 ReEncryptTo、 RetireGrant。 DescribeKey

使用此加密上下文和授权操作在当前资源上创建了一个授权。

**加密上下文 2：**密钥是 `aws:ebs:id`

```
"encryptionContext": {
    "aws:ebs:id": "snap-11112222333344"
}
```

此加密上下文用于授权操作： ReEncryptFrom、解密、、 RetireGrant。 DescribeKey

使用这些加密上下文和授权操作创建了三个授权。一个在目标快照上执行`ReEncryptFrom`授权操作。目标快照上的第二个带有`Decrypt, RetireGrant, DescribeKey`操作的快照。第三个位于基本快照上，其授予操作与第二个赠款相同。

## 该角色的权限和信任策略
<a name="malware-protection-backup-permissions-trust-policy"></a>

**权限策略**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ebs:GetSnapshotBlock"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*"
        },
        {
            "Sid": "CreateGrantPermissions",
            "Effect": "Allow",
            "Action": "kms:CreateGrant",
            "Resource": "arn:aws:kms:*:*:key/*",
            "Condition": {
                "ForAnyValue:StringLike": {
                    "kms:EncryptionContext:aws:guardduty:id": "snap-*",
                    "kms:ViaService": [
                        "guardduty.*.amazonaws.com",
                        "backup.*.amazonaws.com"
                    ]
                },
                "ForAllValues:StringEquals": {
                    "kms:GrantOperations": [
                        "Decrypt",
                        "CreateGrant",
                        "GenerateDataKeyWithoutPlaintext",
                        "ReEncryptFrom",
                        "ReEncryptTo",
                        "RetireGrant",
                        "DescribeKey"
                    ]
                },
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        },
        {
            "Sid": "CreateGrantPermissionsForReEncryptAndDirectAPIs",
            "Effect": "Allow",
            "Action": "kms:CreateGrant",
            "Resource": "arn:aws:kms:*:*:key/*",
            "Condition": {
                "ForAnyValue:StringLike": {
                    "kms:EncryptionContext:aws:ebs:id": "snap-*",
                    "kms:ViaService": [
                        "guardduty.*.amazonaws.com",
                        "backup.*.amazonaws.com"
                    ]
                },
                "ForAllValues:StringEquals": {
                    "kms:GrantOperations": [
                        "Decrypt",
                        "ReEncryptTo",
                        "ReEncryptFrom",
                        "RetireGrant",
                        "DescribeKey"
                    ]
                },
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeImages",
                "ec2:DescribeSnapshots"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ShareSnapshotPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:ModifySnapshotAttribute"
            ],
            "Resource": "arn:aws:ec2:*:*:snapshot/*"
        },
        {
            "Sid": "ShareSnapshotKMSPermission",
            "Effect": "Allow",
            "Action": [
                "kms:ReEncryptTo",
                "kms:ReEncryptFrom"
            ],
            "Resource": "arn:aws:kms:*:*:key/*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": "ec2.*.amazonaws.com"
                }
            }
        },
        {
            "Sid": "DescribeKeyPermission",
            "Effect": "Allow",
            "Action": "kms:DescribeKey",
            "Resource": "arn:aws:kms:*:*:key/*"
        },
        {
            "Sid": "DescribeRecoveryPointPermission",
            "Effect": "Allow",
            "Action": [
                "backup:DescribeRecoveryPoint"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CreateBackupAccessPointPermissions",
            "Effect" : "Allow",
            "Action" : [
                "backup:CreateBackupAccessPoint"  
            ],
            "Resource": "arn:aws:backup:*:*:recovery-point:*"
        },
        {
            "Sid": "ReadAndDeleteBackupAccessPointPermissions",
            "Effect" : "Allow",
            "Action" : [
                "backup:DescribeBackupAccessPoint",
                "backup:DeleteBackupAccessPoint"     
            ],
            "Resource": "*"
        },
        {
            "Sid": "KMSKeyPermissionsForInstantAccess",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:*:*:key/*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": "backup.*.amazonaws.com"
                }
            }
        }
    ]
}
```

**信任政策**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "malware-protection.guardduty.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

# **（可选）开始使用 Backup 独立恶意软件防护（仅限控制台）**
<a name="malware-protection-backup-get-started-independent"></a>

如果您想开始使用 Malware Protection for Backup 威胁检测选项，请使用此可选步骤，而不受 AWS 账户 GuardDuty 状态的影响。

如果您还想在中使用其他专用保护计划 GuardDuty，则必须开始使用 Amazon GuardDuty 服务。有关 GuardDuty 保护计划的信息，请参阅[的功能 GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html#features-of-guardduty)。

## **开始使用 Backup 恶意软件防护的步骤**
<a name="malware-protection-backup-steps-get-started-independent"></a>

1. 登录 AWS 管理控制台并打开控制[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/)台，网址为 [https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/)

1. 选择 “**发现恶意软件保护功能**”，然后单击 “**开始**”。

1. 单击 “**开始**” 后，您可以在包括 AWS Backup 和 S3 恶意软件保护功能在内的选项之间进行选择。  
![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/guardduty/latest/ug/images/malware_protection_backup_new_feature_console.png)

1. 您将被带到 “备份恶意软件保护” 页面，可以在其中选择 “**开始按需扫描**” 或 “**查看恶意软件扫描**”。  
![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/guardduty/latest/ug/images/malware_protection_backup_console.png)

# 启动按需扫描以防恶意软件 Backup
<a name="malware-protection-backup-start-on-demand-scan"></a>

## 控制台
<a name="malware-protection-backup-console-start-scan"></a>

1. 登录 AWS 管理控制台并打开控制 GuardDuty 台，网址为[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/)。

1. 导航到 **Backup 的恶意软件防护**，然后单击 “**开始按需扫描**”。

1. 在 “完全扫描” 和 “增量扫描” 之间进行选择。

   1. 要开始全面扫描，请输入要扫描的资源的资源 ARN。

   1. 要进行增量扫描，请输入目标资源 ARN 和基准资源 ARN。

   1. 如果正在扫描的资源是恢复点，则还需要输入它所属的 AWS Backup Vault 的名称。

1. 服务访问权限-您需要选择一个具有访问资源和执行扫描所需权限的角色。单击 “**查看策略**” 以查看该角色所需的确切权限以及所需的信任策略。

您可以根据自己的要求更改策略，也可以将权限范围缩小到确切的资源。有关如何创建或更新 IAM 角色的更多详细信息，请参阅[GuardDuty Backup 的恶意软件防护：IAM 角色权限](malware-protection-backup-iam-permissions.md)。

有关 IAM 角色权限的问题，请参阅 [IAM 角色权限错误疑难解答](https://docs.aws.amazon.com/guardduty/latest/ug/troubleshoot-malware-protection-s3-iam-role-permissions-error.html)。

## API/CLI
<a name="malware-protection-backup-api-cli-start-scan"></a>

调用，[StartMalwareScan](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_StartMalwareScan.html)`resourceArn`它接受您要启动按需恶意软件扫描的资源。如果要开始增量扫描，请传`baselineResourceArn`入`incrementalScanDetails`。作为扫描配置的一部分，您还需要提供一个具有开始扫描所需的所有权限的 IAM 角色。成功启动扫描后，`StartMalwareScan` 会返回一个 `scanId`。调用 `GetMalwareScan` API 来监控已启动扫描的进度，并在扫描完成后获取扫描的详细信息。

# 在 Backup 的恶意软件防护中监控扫描状态和结果
<a name="monitoring-malware-protection-backup-scans"></a>

启动恶意软件扫描后， GuardDuty 提供了几种机制，您可以通过这些机制监控扫描的状态和结果。下表提供了一些与恶意软件扫描相关的值。


| 类别 | 可能的 值 | 
| --- | --- | 
|  扫描状态  |  `RUNNING`、`COMPLETED`、`COMPLETED_WITH_ISSUES`、`FAILED` 或 `SKIPPED`  | 
|  扫描类别  |  `FULL_SCAN` 或 `INCREMENTAL_SCAN`  | 
|  扫描类型  |  `GUARDDUTY_INITIATED`、`ON_DEMAND` 或 `BACKUP_INITIATED`  | 
|  扫描结果状态  |  `NO_THREATS_FOUND` 或 `THREATS_FOUND`  | 

\$1请注意，如果扫描未完成，则可能不会显示扫描结果状态。THREATS\$1FOUND 的扫描结果状态表示 GuardDuty 检测到恶意软件的存在。

对于 S3 恢复点，COMPLETED\$1WITH\$1ISSUES 表示某些文件要么被跳过，要么失败。对于 AMI，COMPLETED\$1WITH\$1ISSUES 表示至少有 1 个快照无法扫描。有关跳过的原因列表，请参阅下文。

由于各种原因，也可能跳过扫描。下表说明了可能跳过扫描的原因：


| 扫描已跳过原因 | Reason | 
| --- | --- | 
|  ACCESS\$1DENIED  |  客户角色没有服务执行扫描所需的权限  | 
|  RESOURCE\$1NOT\$1FOUND  |  正在尝试扫描的资源不存在于账户中或在扫描过程中被删除  | 
|  已超出快照大小限制  |  快照大小大于当前支持的容量 GuardDuty  | 
|  增量\$1没有\$1差异  |  增量扫描请求中指定的资源没有区别  | 
|  资源不可用  |  资源未处于预期状态。如果扫描是增量扫描，则基本恢复点不处于 “可用” 或 “已完成” 状态  | 
|  不相关的资源  |  对于增量扫描-基础资源和当前资源不是来自同一个谱系  | 
|  未扫描基本资源  |  对于增量扫描-之前未扫描过基础资源或未找到已完成的扫描  | 
|  BASE\$1CREATED\$1ATER\$1TARGET  |  对于增量扫描-基础资源的创建日期晚于当前资源的创建日期  | 
|  不支持增量版  |  请求的资源类型不支持增量扫描  | 
|  UNSUPPORTED\$1AMI  |  公共 AMI、只有临时存储空间的 AMI 和 AMI 未处于可用状态都不符合扫描条件  | 
|  不支持的快照  |  冷存储快照不符合扫描条件  | 
|  UNSUPPORTED\$1COMPOSITE\$1RP  |  复合资源类型不支持扫描  | 
|  不支持的\$1产品\$1代码\$1类型  |  请求的资源包含不支持扫描的亚马逊 Marketplace 产品代码  | 
|  AMI\$1SNAPSHOT\$1LIMIT\$1已超过  |  AMI 不支持扫描超过 40 个快照  | 
|  未找到 EBS\$1VOLUMES\$1FOLUMES  |  未找到所请求资源的 Ebs 区块设备映射  | 
|  不相关的资源  |  对于增量扫描-基础资源的 arn 与预期资源的 arn 不同  | 
|  所有文件\$1已跳过\$1或\$1失败  |  扫描中的所有文件要么被跳过，要么失败  | 

扫描结果的保留期为 90 天。选择您的首选访问方式来跟踪恶意软件扫描的状态。

**使用控制台监控扫描**

1. 打开 GuardDuty 控制台，网址为[https://console.aws.amazon.com/guardduty/。](https://console.aws.amazon.com/guardduty/)

1. 在导航窗格中，选择**恶意软件扫描**。

1. 您可以通过*筛选条件搜索栏*中提供的以下**属性**筛选恶意软件扫描。
   + **扫描 ID**-与恶意软件扫描相关的唯一标识符。
   + **帐户 ID**-启动恶意软件扫描的帐户。
   + **资源 ARN —** 与扫描关联的亚马逊资源关联的亚马逊资源名称 (ARN)。
   + **资源类型**-与扫描关联的资源类型，例如 EC2 实例、EBS 快照 \$1 EC2 AMI、EBS 恢复点、EC2 恢复点或 S3 恢复点。
   + **状态**-扫描的扫描状态，例如 “正在运行”、“已跳过”、“已完成”、“已完成，但存在问题” 或 “失败”。
   + **扫描类型**-表示这是按需扫描、启动的恶意软件扫描还是备份 GuardDuty启动的恶意软件扫描。

**使用 API/CLI 监控扫描**
+ 您可以调用 ListMalwareScans 来按`RESOURCE_ARN`、、、、`SCAN_ID``ACCOUNT_ID``SCAN_TYPE GUARDDUTY_FINDING_ID``SCAN_STATUS``RESOURCE_TYPE`、和筛选恶意软件扫描`SCAN_START_TIME`。您还可以通过提供扫描 ID 作为输入 GetMalwareScan 来调用以检索更详细的扫描元数据。 GuardDuty 启动时，`GUARDDUTY_FINDING_ID`筛选条件可用。`SCAN_TYPE`
+ 您可以在下面的命令*filter-criteria*中更改示例，并且可以根据一个逐个`CriterionKey`进行筛选。的选项`CriterionKey`是`Resource_ARN`、、`SCAN_ID``ACCOUNT_ID`、`SCAN_TYPE`、`GUARDDUTY_FINDING_ID`、`SCAN_STATUS`、`RESOURCE_TYPE`、和`SCAN_START_TIME`。您可以更改*max-results*（最多 50）和*sort-criteria*。该`AttributeName`字段是必填字段`sort-criteria`，必须设置为`scanStartTime`。在以下示例中，中的值*red*是占位符。将其替换为适合您账户的值。如果您使用与下面`CriterionKey`相同的内容 ListMalwareScans，请确保将示例`EqualsValue`替换为*resource-type*要筛选依据的示例。

  ```
  aws guardduty list-malware-scans --max-results 25 --sort-criteria '{"AttributeName": "scanStartTime", "OrderBy": "DESC"}' --filter-criteria '{"FilterCriterion":[{"CriterionKey":"RESOURCE_TYPE", "FilterCondition":{"EqualsValue":"EBS_SNAPSHOT"}}] }'
  ```

  ```
  aws guardduty get-malware-scan --scan-id abc123
  ```
+ 上述命令的响应 ListMalwareScans 将返回最多 25 次扫描，其中包含有关受影响资源的一些详细信息。上述命令的响应 GetMalwareScan 将返回一次扫描，其中包含有关扫描的详细元数据。

**使用监控扫描 EventBridge**

Amazon EventBridge 是一项无服务器事件总线服务，可以轻松地将您的应用程序与来自各种来源的数据连接起来。 EventBridge 提供来自您自己的应用程序、 Software-as-a-Service (SaaS) 应用程序和 Amazon 服务的实时数据流，并将这些数据路由到 Lambda 等目标。这使您能够监控服务中发生的事件，并构建事件驱动的架构。有关更多信息，请参阅 [Amazon EventBridge 用户指南](https://docs.aws.amazon.com/eventbridge/latest/userguide/)。

GuardDuty 确定扫描状态后，将 EventBridge 通知发布到默认事件总线。您可以在账户中设置 EventBridge 规则，将事件发送到与 Amazon 集成的其他服务 EventBridge。将适用标准 EventBridge 定价。有关更多信息，请参阅 [Amazon EventBridge 定价](https://aws.amazon.com/eventbridge/pricing/)。

下面显示的许多值都是示例的占位符，并且会因扫描而异。

**恶意软件扫描结果事件**

Backup 的潜在详细信息类型值：
+ “GuardDuty 恶意软件防护 EBS 快照扫描结果”
+ “GuardDuty 恶意软件防护 EC2 AMI 扫描结果”
+ “GuardDuty 恶意软件防护 S3 恢复点扫描结果”
+ “GuardDuty 恶意软件防护 EBS 恢复点扫描结果”
+ “GuardDuty 恶意软件防护 EC2 恢复点扫描结果”

**事件模式示例：**

```
{
      "detail-type": ["GuardDuty Malware Protection EC2 AMI Scan Result"],
      "source": ["aws.guardduty"]
}
```

**未发现威胁的 EC2 AMI 扫描通知架构示例：**

```
{
    "version": "0",
    "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "detail-type": "GuardDuty Malware Protection EC2 AMI Scan Result",
    "source": "aws.guardduty",
    "account": "1111222233334444",
    "time": "2025-11-01T00:00:00Z",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1:1111222233334444:image/ami-1234567890abcdef0"],
    "detail": {
        "schemaVersion": "1.0",
        "scanStatus": "COMPLETED",
        "resourceType": "EC2_AMI",
        "scanId": "d41d8cd98f00b204e9800998ecf8427e",
        "scanStatusReason": null,
        "scanType": "ON_DEMAND",
        "triggerType": "GUARDDUTY",
        "scanCategory": "FULL_SCAN",
        "scanStartTime": 1234567890123,
        "scanCompleteTime": 2345678901234,
        "scanResultDetails": {
            "scanResultStatus": "NO_THREATS_FOUND",
            "uniqueThreatCount": null
        }
    }
}
```

**发现威胁的 EC2 AMI 扫描的示例通知架构：**

```
{
    "version": "0",
    "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "detail-type": "GuardDuty Malware Protection EC2 AMI Scan Result",
    "source": "aws.guardduty",
    "account": "1111222233334444",
    "time": "2025-11-01T00:00:00Z",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1:1111222233334444:image/ami-1234567890abcdef0"],
    "detail": {
        "schemaVersion": "1.0",
        "scanStatus": "COMPLETED",
        "resourceType": "EC2_AMI",
        "scanId": "d41d8cd98f00b204e9800998ecf8427e",
        "scanStatusReason": null,
        "scanType": "ON_DEMAND",
        "triggerType": "GUARDDUTY",
        "scanCategory": "FULL_SCAN",
        "scanStartTime": 1234567890123,
        "scanCompleteTime": 2345678901234,
        "scanResultDetails": {
            "scanResultStatus": "THREATS_FOUND",
            "uniqueThreatCount": 1,
            "threats": {
                "name": "EICAR-Test-File (not a virus)",
                "source": "AMAZON",
                "count": 2,
                "itemDetails": [{
                    "resourceArn": "arn:aws:ec2:us-east-1:1111222233334444:snapshot/snap-abcdef01234567890",
                    "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
                    "itemPath": "/eicar.txt",
                    "additionalInfo": {
                        "versionId": null,
                        "deviceName": "/dev/sdf"
                    }
                }]
            }
        }
    }
}
```

**已跳过 EC2 AMI 扫描的通知架构示例：**

```
{
    "version": "0",
    "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
    "detail-type": "GuardDuty Malware Protection EC2 AMI Scan Result",
    "source": "aws.guardduty",
    "account": "1111222233334444",
    "time": "2025-11-01T00:00:00Z",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1:1111222233334444:image/ami-1234567890abcdef0"],
    "detail": {
        "schemaVersion": "1.0",
        "scanStatus": "SKIPPED",
        "resourceType": "EC2_AMI",
        "scanId": "d41d8cd98f00b204e9800998ecf8427e",
        "scanStatusReason": "UNSUPPORTED_AMI",
        "scanType": "ON_DEMAND",
        "triggerType": "GUARDDUTY",
        "scanCategory": "FULL_SCAN",
        "scanStartTime": 1234567890123,
        "scanCompleteTime": 2345678901234,
       "scanResultDetails": {
            "uniqueThreatCount": null,
            "threats": null
        }
    }
}
```

# Backup 恶意软件防护配额
<a name="malware-protection-backup-quotas"></a>


**Backup 配额的恶意软件防护**  

| 限额名称 | AWS 默认配额值 | 是否可以调整？ | 说明 | 
| --- | --- | --- | --- | 
| StartMalwareScan 所有资源类型的 TPS 限制 | 10 | 否 |  | 
| 支持的最大快照大小 | 2 TB | 否 |  | 
| 支持用于快照和 AMI 扫描的文件系统 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/guardduty/latest/ug/malware-protection-backup-quotas.html)  | 否 |  | 
| AMI 中支持恶意软件扫描的最大快照数 | 40 表示完整扫描。如果大于 40 个，则只 GuardDuty 会在所有快照中扫描 40 个。对于增量扫描，将跳过扫描。 | 否 |  | 
| S3 恢复点内对象的最大大小 | 100 GB | 否 |  尝试扫描恶意软件的最大 S3 对象大小。 GuardDuty  尽管此配额不可调整，但如果您需要扫描较大的对象，请联系 Support 以确定是否 GuardDuty 可以为您的用例增加配额。  | 
| 提取的存档字节 | 100 GB | 否 |   GuardDuty 可以从存档文件中提取和分析的最大数据量。 GuardDuty 将跳过解压缩到 100 GB 以上的存档文件。  | 
| 提取的存档文件 | 10000 | 否 |  存档文件中 GuardDuty 可以提取和分析的最大文件数。如果存档包含的文件超过 10,000 个， GuardDuty 则必须跳过存档文件。  复合文件类型可能受这些限制的约束。文件类型包括但不限于多用途 Internet 邮件扩展 (MIME) 编码的电子邮件、编译的 Python (PYC) 文件、已编译的 HTML 帮助 (CHM) 文件、所有安装程序和 OpenDocument 格式 (ODF) 文档。   | 
| 最大归档深度 | 5 | 否 |  GuardDuty 可以提取的最大嵌套存档级别。如果存档中包含嵌套超出此值的文件，则 GuardDuty 将跳过这些嵌套文件。 | 