将基于标签的访问控制(TBAC)与 S3 恶意软件防护结合使用 - Amazon GuardDuty

将基于标签的访问控制(TBAC)与 S3 恶意软件防护结合使用

为存储桶启用 S3 恶意软件防护时,您可以选择启用标记(可选)。尝试扫描新上传到选定存储桶的 S3 对象后,GuardDuty 会向已扫描对象添加标签,从而提供恶意软件扫描状态。启用标记时会产生直接使用成本。有关更多信息,请参阅 S3 恶意软件防护的定价和使用成本

GuardDuty 使用预定义标签,键为 GuardDutyMalwareScanStatus,值作为恶意软件扫描状态之一。有关这些值的更多信息,请参阅 可能的 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 对象扫描

在 S3 存储桶资源上添加 TBAC

您可以使用 S3 存储桶资源策略来为 S3 对象管理基于标签的访问控制(TBAC)。您可以向特定用户提供访问和读取 S3 对象的权限。如果组织是使用 AWS Organizations 创建的,则必须强制任何人都不能修改 GuardDuty 添加的标签。有关更多信息,请参阅《AWS Organizations 用户指南》中的 Preventing tags from being modified except by authorized principals。链接主题中使用的示例提到的是 ec2。使用此示例时,请将 ec2 替换为 s3

以下列表说明了 TBAC 的可能用途:

  • 除 S3 恶意软件防护服务主体之外,阻止所有用户读取尚未使用以下标签键值对标记的 S3 对象:

    GuardDutyMalwareScanStatus:Potential key value

  • 仅允许 GuardDuty 向已扫描 S3 对象添加键为 GuardDutyMalwareScanStatus,值为扫描结果的标签。以下策略模板可能允许具有访问权限的特定用户潜在覆盖标签键值对。

S3 存储桶资源策略示例:

请将 IAM-role-name 替换为用于在存储桶中配置 S3 恶意软件防护的 IAM 角色。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "NoReadExceptForClean", "Effect": "Deny", "NotPrincipal": { "AWS": [ "arn:aws:iam::555555555555:root", "arn:aws:iam::555555555555:role/IAM-role-name", "arn:aws:iam::555555555555:assumed-role/IAM-role-name/GuardDutyMalwareProtection" ] }, "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": { "StringNotEquals": { "s3:ExistingObjectTag/GuardDutyMalwareScanStatus": "NO_THREATS_FOUND" } } }, { "Sid": "OnlyGuardDutyCanTag", "Effect": "Deny", "NotPrincipal": { "AWS": [ "arn:aws:iam::555555555555:root", "arn:aws:iam::555555555555:role/IAM-role-name", "arn:aws:iam::555555555555:assumed-role/IAM-role-name/GuardDutyMalwareProtection" ] }, "Action": "s3:PutObjectTagging", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

有关标记 S3 资源的更多信息,请参阅标记和访问控制策略