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

创建或更新 IAM 角色策略

要让 S3 恶意软件防护扫描以及(可选)向 S3 对象添加标签,您可以使用具有必要权限的服务角色代表您执行恶意软件扫描操作。有关使用服务角色启用 S3 恶意软件防护的更多信息,请参阅服务访问权限。此角色与 GuardDuty 恶意软件防护服务相关角色不同。

如果您倾向于使用 IAM 角色,则可以附加一个包含扫描所需权限的 IAM 角色,并(可选)向 S3 对象添加标签。您必须创建一个 IAM 角色或更新现有角色来包含这些权限。由于您启用 S3 恶意软件防护的每个 Amazon S3 存储桶都需要这些权限,因此您需要对要保护的每个 Amazon S3 存储桶执行此步骤。

以下列表说明了某些权限如何有助于 GuardDuty 代表您执行恶意软件扫描:

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

    有关更多信息,请参阅《Amazon EventBridge 用户指南》中的 Amazon EventBridge managed rules

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

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

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

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

注意

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

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

添加 IAM 策略权限

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

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

  • amzn-s3-demo-bucket 替换为您的 Amazon S3 存储桶名称。

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

    ... ... "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*" ], ... ...

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

  • 111122223333 替换为您的 Amazon Web Services 账户 ID。

  • us-east-1 替换为您的 Amazon Web Services 区域。

  • APKAEIBAERJR2EXAMPLE 替换为客户托管密钥 ID。如果您的 S3 存储桶是使用 Amazon KMS 密钥加密的,并且您在为存储桶配置恶意软件防护时选择了创建新角色选项,我们会添加相关权限。

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

IAM 角色策略模板

JSON
{ "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:::amzn-s3-demo-bucket/*" ] }, { "Sid": "AllowEnableS3EventBridgeEvents", "Effect": "Allow", "Action": [ "s3:PutBucketNotification", "s3:GetBucketNotification" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "AllowPutValidationObject", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/malware-protection-resource-validation-object" ] }, { "Sid": "AllowCheckBucketOwnership", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "AllowMalwareScan", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-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 角色。有关相关操作步骤的信息,请参阅修改角色信任策略

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