本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将基于标签的访问控制(TBAC)与 S3 恶意软件防护结合使用
为存储桶启用 S3 恶意软件防护时,您可以选择启用标记(可选)。尝试扫描新上传到选定存储桶的 S3 对象后,向已扫描对象 GuardDuty 添加标签,从而提供恶意软件扫描状态。启用标记时会产生直接使用成本。有关更多信息,请参阅 S3 恶意软件防护的定价和使用成本。
GuardDuty 使用预定义标签,键为为GuardDutyMalwareScanStatus
,值作为恶意软件扫描状态之一。有关这些值的更多信息,请参阅 可能的 S3 对象扫描状态和结果状态。
GuardDuty 向 S3 对象添加标签的注意事项:
-
默认情况下,您最多可以将 10 个标签关联到一个对象。有关更多信息,请参阅《Amazon S3 用户指南》中的使用标签对存储进行分类。
如果所有 10 个标签都已在使用,则 GuardDuty 无法将该预定义标签添加到已扫描的对象。 GuardDuty 还会将扫描结果发布到您的默认 EventBridge 事件总线。有关更多信息,请参阅 使用 Amazon 监控 S3 对象扫描 EventBridge。
-
如果所选的 IAM 角色未包含允许 S3 对象标记,即使为受保护的存储桶启用了标记, GuardDuty 也无法向此已扫描的 S3 对象添加标签。 GuardDuty 有关标记所需 IAM 角色权限的更多信息,请参阅创建或更新 IAM 角色策略。
GuardDuty 还会将扫描结果发布到您的默认 EventBridge 事件总线。有关更多信息,请参阅 使用 Amazon 监控 S3 对象扫描 EventBridge。
在 S3 存储桶资源上添加 TBAC
您可以使用 S3 存储桶资源策略来为 S3 对象管理基于标签的访问控制(TBAC)。您可以向特定用户提供访问和读取 S3 对象的权限。如果组织是使用创建的 Amazon Organizations,则必须强制任何人都不能修改由添加的标签 GuardDuty。有关更多信息,请参阅《Amazon 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 角色。 -
555555555555
-提供与受保护存储桶 Amazon Web Services 账户 关联的。 -
amzn-s3-demo-bucket
-提供受保护的存储桶名称。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "NoReadUnlessClean", "Effect": "Deny", "NotPrincipal": { "AWS": [ "arn:aws:sts::555555555555:assumed-role/IAM-role-name/GuardDutyMalwareProtection", "arn:aws:iam::555555555555:role/IAM-role-name" ] }, "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringNotEquals": { "s3:ExistingObjectTag/GuardDutyMalwareScanStatus": "NO_THREATS_FOUND" } } }, { "Sid": "OnlyGuardDutyCanTagScanStatus", "Effect": "Deny", "NotPrincipal": { "AWS": [ "arn:aws:sts::555555555555:assumed-role/IAM-role-name/GuardDutyMalwareProtection", "arn:aws:iam::555555555555:role/IAM-role-name" ] }, "Action": "s3:PutObjectTagging", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "ForAnyValue:StringEquals": { "s3:RequestObjectTagKeys": "GuardDutyMalwareScanStatus" } } } ] }
有关标记 S3 资源的更多信息,请参阅标记和访问控制策略。