先决条件-创建或更新 IAM PassRole 策略 - Amazon GuardDuty
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

先决条件-创建或更新 IAM PassRole 策略

要让 S3 的恶意软件防护能够扫描并且(可选)向您的 S3 对象添加标签,您必须创建并附加一个包含以下所需权限的 IAM 角色:

  • 允许 Amazon EventBridge 操作创建和管理 EventBridge 托管规则,以便 S3 恶意软件防护可以监听您的 S3 对象通知。

    有关更多信息,请参阅《亚马逊 EventBridge 用户指南》中的亚马逊 EventBridge 托管规则

  • 允许 Amazon S3 和 EventBridge 操作向发送 EventBridge 有关此存储桶中所有事件的通知

    有关更多信息,请参阅 Amazon S3 用户指南 EventBridge中的启用亚马逊

  • 允许 Amazon S3 操作访问上传的 S3 对象GuardDutyMalwareScanStatus,并向扫描的 S3 对象添加预定义标签。使用对象前缀时,请仅在目标前缀上添加s3:prefix条件。这样可以 GuardDuty防止访问存储桶中的所有 S3 对象。

  • 在使用支持的 DSSE-KMS 和 SSE-KMS 加密扫描测试对象并将其放入存储桶之前,允许 KMS 密钥操作访问对象。

注意

每次为账户中的存储桶启用 S3 恶意软件防护时,都需要执行此步骤。如果您已有现有 IAM PassRole,则可以更新其策略以包含其他 S3 存储桶资源的详细信息。该添加 IAM 策略权限主题提供了有关如何执行此操作的示例。

使用以下策略创建或更新 IAM PassRole。

添加 IAM 策略权限

您可以选择更新现有 IAM 的内联策略 PassRole,也可以选择创建新的 IAM PassRole。有关步骤的信息,请参阅 IAM 用户指南中的创建 IAM 角色或修改角色权限策略

将以下权限模板添加到您的首选 IAM 角色中。将以下占位符值替换为与您的账户关联的相应值:

  • 对于 DOC-EXAMPLE-BUCKET,请替换为您的 Amazon S3 存储桶名称。

    要 PassRole 对多个 S3 存储桶资源使用相同的 IAM,请更新现有策略,如以下示例所示:

    ... ... "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" ], ... ...

    在添加与 S3 存储桶关联的新 ARN 之前,请务必添加逗号 (,)。无论您在策略模板Resource中提及 S3 存储桶的任何地方,都要执行此操作。

  • 对于 111122223333,请用您的身份证替换。 Amazon Web Services 账户

  • 对于 us-east-1,请替换为你的。 Amazon Web Services 区域

  • 对于 APKAEIBAERJR2EXAMPLE,请替换为您的客户托管密钥 ID。如果您的存储桶是使用加密的 Amazon KMS key,请将占位符值替换为*,如以下示例所示:

    "Resource": "arn:aws:kms:us-east-1:111122223333:key/*"

IAM PassRole 策略模板

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowManagedRuleToSendS3EventsToGuardDuty", "Effect": "Allow", "Action": [ "events:PutRule", "events:DeleteRule", "events:PutTargets", "events:RemoveTargets" ], "Resource": [ "arn:aws:events:us-east-1:111122223333:rule/DO-NOT-DELETE-AmazonGuardDutyMalwareProtectionS3*" ], "Condition": { "StringLike": { "events:ManagedBy": "malware-protection-plan.guardduty.amazonaws.com" } } }, { "Sid": "AllowGuardDutyToMonitorEventBridgeManagedRule", "Effect": "Allow", "Action": [ "events:DescribeRule", "events:ListTargetsByRule" ], "Resource": [ "arn:aws:events:us-east-1:111122223333:rule/DO-NOT-DELETE-AmazonGuardDutyMalwareProtectionS3*" ] }, { "Sid": "AllowPostScanTag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:GetObjectTagging", "s3:PutObjectVersionTagging", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }, { "Sid": "AllowEnableS3EventBridgeEvents", "Effect": "Allow", "Action": [ "s3:PutBucketNotification", "s3:GetBucketNotification" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "AllowPutValidationObject", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/malware-protection-resource-validation-object" ] }, { "Sid": "AllowCheckBucketOwnership", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "AllowMalwareScan", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }, { "Sid": "AllowDecryptForMalwareScan", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/APKAEIBAERJR2EXAMPLE", "Condition": { "StringLike": { "kms:ViaService": "s3.us-east-1.amazonaws.com" } } } ] }

添加信任关系策略

将以下信任策略附加到您的 IAM 角色。有关步骤的信息,请参阅修改角色信任策略

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "malware-protection-plan.guardduty.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }