创建或更新IAM角色策略 - Amazon GuardDuty

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

创建或更新IAM角色策略

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

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

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

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

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

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

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

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

  • 在扫描测试对象并将测试对象放到存储桶之前,允许KMS关键操作访问对象,然后使用支持的DSSEKMS和加密进行SSE加KMS密。

注意

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

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

添加IAM策略权限

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

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

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

    要将同一个IAM角色用于多个 S3 存储桶资源,请更新现有策略,如以下示例所示:

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

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

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

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

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

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

IAM角色策略模板

{ "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角色。有关相关操作步骤的信息,请参阅修改角色信任策略

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