

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

# 将基于标签的访问控制（TBAC）与 S3 恶意软件防护结合使用
<a name="tag-based-access-s3-malware-protection"></a>

为存储桶启用 S3 恶意软件防护时，您可以选择启用标记（可选）。尝试扫描选定存储桶中新上传的 S3 对象后，向扫描的对象 GuardDuty 添加标签以提供恶意软件扫描状态。启用标记时会产生直接使用成本。有关更多信息，请参阅 [S3 恶意软件防护的定价和使用成本](pricing-malware-protection-for-s3-guardduty.md)。

GuardDuty 使用预定义的标签，密钥为`GuardDutyMalwareScanStatus`，值作为恶意软件扫描状态之一。有关这些值的更多信息，请参阅 [可能的 S3 对象扫描状态和结果状态](monitoring-malware-protection-s3-scans-gdu.md#s3-object-scan-result-value-malware-protection)。

** GuardDuty 向 S3 对象添加标签的注意事项：**
+ 默认情况下，您最多可以将 10 个标签关联到一个对象。有关更多信息，请参阅《Amazon S3 用户指南》中的[使用标签对存储进行分类](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)**。

  如果所有 10 个标签都已在使用中，则 GuardDuty 无法将预定义的标签添加到扫描的对象。 GuardDuty 还会将扫描结果发布到您的默认 EventBridge 事件总线。有关更多信息，请参阅 [使用 Amazon 监控 S3 对象扫描 EventBridge](monitor-with-eventbridge-s3-malware-protection.md)。
+ 当所选的 IAM 角色不包括标记 S3 对象的权限时，即使为受保护的存储桶启用了标记， GuardDuty 也无法向扫描的 S3 对象添加标签。 GuardDuty 有关标记所需 IAM 角色权限的更多信息，请参阅[创建或更新 IAM 角色策略](malware-protection-s3-iam-policy-prerequisite.md)。

  GuardDuty 还会将扫描结果发布到您的默认 EventBridge 事件总线。有关更多信息，请参阅 [使用 Amazon 监控 S3 对象扫描 EventBridge](monitor-with-eventbridge-s3-malware-protection.md)。

## 在 S3 存储桶资源上添加 TBAC
<a name="apply-tbac-s3-malware-protection"></a>

您可以使用 S3 存储桶资源策略来为 S3 对象管理基于标签的访问控制（TBAC）。您可以向特定用户提供访问和读取 S3 对象的权限。如果您的组织是通过使用创建的 AWS Organizations，则必须强制任何人都不能修改由添加的标签 GuardDuty。有关更多信息，请参阅《AWS Organizations 用户指南》**中的 [Preventing tags from being modified except by authorized principals](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples_tagging.html#example-require-restrict-tag-mods-to-admin)。链接主题中使用的示例提到的是 `ec2`。使用此示例时，请*ec2*替换为`s3`。

以下列表说明了 TBAC 的可能用途：
+ 除 S3 恶意软件防护服务主体之外，阻止所有用户读取尚未使用以下标签键值对标记的 S3 对象：

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

**S3 存储桶资源策略示例：**

替换示例策略中的以下占位符值：
+ *IAM-role-name*-提供用于在存储桶中为 S3 配置恶意软件防护的 IAM 角色。
+ *555555555555*-提供与受保护存储桶 AWS 账户 关联的。
+ *amzn-s3-demo-bucket*-提供受保护的存储桶名称。

------
#### [ JSON ]

****  

```
{
    "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 资源的更多信息，请参阅[标记和访问控制策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging-and-policies.html)。