为存储桶启用 S3 恶意软件防护
本节介绍了有关如何为自己账户中的存储桶启用 S3 恶意软件防护的详细步骤。在继续之前,请查看以下考虑事项:
-
当您使用 GuardDuty 控制台启用此防护计划时,它包括在服务访问权限部分下创建新角色或使用现有角色的步骤。
-
当您使用 GuardDuty API 或 CLI 启用此防护计划时,您必须先创建或更新 IAM 角色策略再继续操作。
-
无论您如何启用此防护计划,您都必须具备所需的创建恶意软件防护计划资源的权限。
- 考虑 Amazon S3 存储桶节流
-
S3 节流可能会限制数据传输到您的 Amazon S3 存储桶或从您的 Amazon S3 存储桶中传输数据的速率。这可能会延迟对新上传对象的恶意软件扫描。
如果您预计 S3 存储桶会收到大量
GET和PUT请求,请考虑实施措施防止节流。有关如何执行此操作的信息,请参阅《Amazon Athena 用户指南》中的防止 Amazon S3 节流。
主题
为 Amazon S3 存储桶启用 S3 恶意软件防护后,GuardDuty 将创建一个恶意软件防护计划资源,用作存储桶防护计划的标识符。如果您尚未使用 Amazon 托管式策略:AmazonGuardDutyFullAccess_v2(推荐),则必须添加以下权限才能创建此资源:
-
guardDuty:CreateMalwareProtectionPlan -
iam:PassRole
您可以使用以下自定义示例策略,将占位符值替换为适合您账户的值:
以下章节分步演示了 GuardDuty 控制台中的体验。
使用 GuardDuty 控制台启用 S3 恶意软件防护
输入 S3 存储桶详细信息
按照以下步骤提供 Amazon S3 存储桶的详细信息:
-
登录 Amazon Web Services 管理控制台,打开 GuardDuty 控制台:https://console.aws.amazon.com/guardduty/
。 -
使用页面右上角的 Amazon Web Services 区域选择器,选择要启用 S3 恶意软件防护的区域。
-
在导航窗格中,选择 S3 恶意软件防护。
-
在受保护的存储桶部分中,选择启用,从而为属于您自己 Amazon Web Services 账户的 S3 存储桶启用 S3 恶意软件防护。
-
在输入 S3 存储桶详细信息下,输入 Amazon S3 存储桶的名称。此外也可以选择浏览 S3 来选择 S3 存储桶。
S3 存储桶所在的 Amazon Web Services 区域与您启用 S3 恶意软件防护的 Amazon Web Services 账户必须相同。例如,假设您的账户属于
us-east-1区域,则您的 Amazon S3 存储桶所在的区域也必须为us-east-1。 -
在前缀下,您可以选择此 S3 存储桶中的所有对象或以特定前缀开头的对象。
-
如果您希望 GuardDuty 能够扫描选定存储桶中所有新上传的对象,择请选择此 S3 存储桶中的所有对象。
-
如果要扫描属于特定前缀的新上传对象,请选择以特定前缀开头的对象。此选项有助您将恶意软件扫描的范围仅集中在选定的对象前缀上。有关使用前缀的更多信息,请参阅《Amazon S3 用户指南》中的使用文件夹在 Amazon S3 控制台中整理对象。
选择添加前缀,然后输入前缀。您最多可以添加 5 个前缀。
-
为已扫描对象启用标记
此为可选步骤。如果您在将对象上传到存储桶之前启用标记选项,则在完成扫描后,GuardDuty 将添加一个预定义标签,键为 GuardDutyMalwareScanStatus,值为扫描结果。为发挥 S3 恶意软件防护的最佳效用,我们建议在扫描结束后再启用向 S3 对象添加标签的选项。使用此功能会产生标准的 S3 对象标记成本。有关更多信息,请参阅 S3 恶意软件防护的定价和使用成本。
- 为什么应启用标记?
-
-
启用标记是了解恶意软件扫描结果的诸多方法之一。有关 S3 恶意软件扫描结果的信息,请参阅在 S3 恶意软件防护中监控 S3 对象扫描。
-
在包含可能恶意对象的 S3 存储桶上设置基于标签的访问控制(TBAC)策略。有关注意事项以及如何实现基于标签的访问控制(TBAC),请参阅将基于标签的访问控制(TBAC)与 S3 恶意软件防护结合使用。
-
有关 GuardDuty 向 S3 对象添加标签的注意事项:
-
默认情况下,您最多可以将 10 个标签关联到一个对象。有关更多信息,请参阅《Amazon S3 用户指南》中的使用标签对存储进行分类。
如果所有 10 个标签都已在使用,则 GuardDuty 无法将该预定义标签添加到已扫描的对象。GuardDuty 还会将扫描结果发布到您的默认 EventBridge 事件总线。有关更多信息,请参阅 使用 Amazon EventBridge 监控 S3 对象扫描。
-
如果所选的 IAM 角色未包含允许 GuardDuty 标记 S3 对象的权限,即使为受保护的存储桶启用了标记,GuardDuty 也无法向此已扫描的 S3 对象添加标签。有关标记所需 IAM 角色权限的更多信息,请参阅创建或更新 IAM 角色策略。
GuardDuty 还会将扫描结果发布到您的默认 EventBridge 事件总线。有关更多信息,请参阅 使用 Amazon EventBridge 监控 S3 对象扫描。
在标记已扫描对象下选择一个选项
-
如果您希望 GuardDuty 为已扫描的 S3 对象添加标签,请选择标记对象。
-
如果您不希望 GuardDuty 为已扫描的 S3 对象添加标签,请选择不标记对象。
服务访问
按照以下步骤选择一个现有的服务角色或创建一个新的服务角色,该服务角色应具有代表您执行恶意软件扫描操作的必要权限。这些操作可能包括扫描新上传的 S3 对象以及(可选)向这些对象添加标签。有关该角色将拥有的权限的信息,请参阅创建或更新 IAM 角色策略。
在服务访问权限部分中,您可以执行以下操作之一:
-
创建并使用新的服务角色:您可以创建并使用具有执行恶意软件扫描所需权限的新服务角色。
在角色名称下,您可以选择使用 GuardDuty 预填充的名称,也可以输入您选择的有意义的名称来标识角色。例如
GuardDutyS3MalwareScanRole。角色名称的长度必须为 1 到 64 个字符。有效字符为 a-z、A-Z、0-9 以及“+=,.@-_”。 -
使用现有的服务角色:您可以从服务角色名称列表中选择一个现有的服务角色。
您可以在策略模板下查看 S3 存储桶的策略。务必要在输入 S3 存储桶详细信息部分中输入或选择一个 S3 存储桶。
在服务角色名称下,从服务角色列表中选择一个服务角色。
您可以根据自己的需求对该策略进行更改。有关如何创建或更新 IAM 角色的更多详细信息,请参阅创建或更新 IAM 角色策略。
有关 IAM 角色权限的问题,请参阅对 IAM 角色权限错误进行问题排查。
(可选)标记恶意软件防护计划 ID
这是一个可选步骤,有助您向将为 S3 存储桶资源创建的恶意软件防护计划资源添加标签。
每个标签都由两个部分组成:标签键和可选的标签值。有关标记及其优点的更多信息,请参阅 Tagging Amazon resources。
向恶意软件防护计划资源添加标签
-
输入标签键和可选的标签值。标签键和标签值都区分大小写。有关标签键和标签值名称的信息,请参阅 Tag naming limits and requirements。
-
要向恶意软件防护计划资源添加其他标签,请选择添加新标签并重复上一步的操作。您最多可以为每个资源添加 50 个标签。
-
请选择启用。
本节包含以编程方式在 Amazon 环境中启用 S3 恶意软件防护的步骤。这将需要您在 创建或更新 IAM 角色策略 步骤中创建的 IAM 角色的 Amazon 资源名称(ARN)。
使用 API/CLI 以编程方式启用 S3 恶意软件防护
-
通过使用 API
运行 CreateMalwareProtectionPlan 来为属于您自己账户的存储桶启用 S3 恶意软件防护。
-
通过使用 Amazon CLI
根据您希望通过哪种方式启用 S3 恶意软件防护,下表提供了特定应用场景的 Amazon CLI 示例命令。运行这些命令时,请将
红色显示的占位符示例替换为适合您账户的值。Amazon CLI 示例命令
-
使用以下 Amazon CLI 命令来为存储桶启用 S3 恶意软件防护,但不标记已扫描的 S3 对象:
aws guardduty create-malware-protection-plan --role "arn:aws:iam::111122223333:role/role-name" --protected-resource "S3Bucket"={"BucketName"="amzn-s3-demo-bucket1"} -
使用以下 Amazon CLI 命令来为存储桶启用 S3 恶意软件防护,限定特定对象前缀但不标记已扫描的 S3 对象:
aws guardduty create-malware-protection-plan --role "arn:aws:iam::111122223333:role/role-name" --protected-resource '{"S3Bucket":{"BucketName":"amzn-s3-demo-bucket1", "ObjectPrefixes": ["Object1","Object1"]}}' -
使用以下 Amazon CLI 命令来为存储桶启用 S3 恶意软件防护,并启用已扫描 S3 对象标记:
aws guardduty create-malware-protection-plan --role "arn:aws:iam::111122223333:role/role-name" --protected-resource "S3Bucket"={"BucketName"="amzn-s3-demo-bucket1"} --actions "Tagging"={"Status"="ENABLED"}
成功运行这些命令后,将会生成一个唯一的恶意软件防护计划 ID。要执行诸如更新或禁用存储桶防护计划之类的操作,您需要此恶意软件防护计划 ID。
-
有关 IAM 角色权限的问题,请参阅对 IAM 角色权限错误进行问题排查。