使用基于标签的访问控制 (TBAC) 和 S3 的恶意软件防护 - Amazon GuardDuty
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

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

GuardDuty 使用预定义的标签,密钥为GuardDutyMalwareScanStatus,值作为恶意软件扫描状态之一。有关这些值的信息,请参见S3 object potential scan result value

GuardDuty 向 S3 对象添加标签的注意事项:

  • 默认情况下,您最多可以将 10 个标签与一个对象关联。有关更多信息,请参阅 Amazon S3 用户指南中的使用标签对存储进行分类

    如果所有 10 个标签都已在使用中,则 GuardDuty 无法将预定义的标签添加到扫描的对象。 GuardDuty 还会将扫描结果发布到您的默认 EventBridge 事件总线。有关更多信息,请参阅 使用亚马逊 EventBridge

  • 当所选的 IAM 角色不包括标记 S3 对象的权限时,即使为受保护的存储桶启用了标记, GuardDuty 也无法向扫描的 S3 对象添加标签。 GuardDuty 有关标记所需的 IAM 角色权限的更多信息,请参阅先决条件-创建或更新 IAM PassRole 策略

    GuardDuty 还会将扫描结果发布到您的默认 EventBridge 事件总线。有关更多信息,请参阅 使用亚马逊 EventBridge

在 S3 存储桶资源上添加 TBAC

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

以下列表说明了使用 TBAC 可以做什么:

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

    GuardDutyMalwareScanStatus:Potential key value

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

S3 存储桶资源策略示例:

IAM PassRole 角色名称替换为您用于在存储桶中为 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:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-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:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }

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