恶意软件防护的服务相关角色权限 EC2 - Amazon GuardDuty

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

恶意软件防护的服务相关角色权限 EC2

的恶意软件防护EC2使用名AWSServiceRoleForAmazonGuardDutyMalwareProtection为的服务相关角色 (SLR)。这SLR允许恶意软件防护执行无代理扫描,以检测您 GuardDuty 帐户中的恶意软件。EC2它 GuardDuty 允许在您的帐户中创建EBS卷快照,并与 GuardDuty 服务帐户共享该快照。 GuardDuty 评估快照后,它会在恶意软件防护中包含检索到的EC2实例和容器工作负载元数据以供EC2发现。AWSServiceRoleForAmazonGuardDutyMalwareProtection 服务相关角色信任 malware-protection.guardduty.amazonaws.com 服务来代入角色。

此角色的权限策略可帮助恶意软件防护执行以下任务:EC2

  • 使用亚马逊弹性计算云 (AmazonEC2) 操作来检索有关您的亚马逊EC2实例、卷和快照的信息。的恶意软件防护EC2还提供访问亚马逊EKS和亚马逊ECS集群元数据的权限。

  • GuardDutyExcluded标签未设置为的EBS卷创建快照true。默认情况下,创建的快照带有 GuardDutyScanId 标签。请勿删除此标签,否则恶意软件防护EC2将无法访问快照。

    重要

    将设置为时true,该 GuardDuty服务将无法在将来访问这些快照。GuardDutyExcluded这是因为此服务相关角色中的其他语句会 GuardDuty 阻止对GuardDutyExcluded设置为的快照执行任何操作。true

  • 仅当 GuardDutyScanId 标签存在且 GuardDutyExcluded 标签未设置为 true 时,才允许共享和删除快照。

    注意

    不允许恶意软件防护EC2将快照公开。

  • 访问客户托管的密钥(GuardDutyExcluded标签设置为的密钥除外)true,通过调用CreateGrant创建和访问与 GuardDuty 服务帐号共享的加密快照中的加密EBS卷。有关每个地区的 GuardDuty 服务帐号列表,请参阅GuardDuty 服务账号由 AWS 区域

  • 访问客户的 CloudWatch 日志,为EC2日志组创建恶意软件防护,并将恶意软件扫描事件日志放在/aws/guardduty/malware-scan-events日志组下。

  • 由客户决定是否要在其账户中保留检测到的恶意软件快照。如果扫描检测到恶意软件,则服务相关角色允许 GuardDuty 向快照添加两个标签-GuardDutyFindingDetectedGuardDutyExcluded

    注意

    GuardDutyFindingDetected 标签指定快照包含恶意软件。

  • 确定卷是否使用EBS托管密钥加密。 GuardDuty 执行DescribeKey操作以确定您账户中key IdEBS托管密钥的类型。

  • 从您的中获取使用加密的EBS卷的快照 AWS 托管式密钥, AWS 账户 然后将其复制到GuardDuty 服务账号。为此,我们使用权限GetSnapshotBlockListSnapshotBlocks。 GuardDuty 然后将扫描服务帐户中的快照。目前,EC2支持使用加密的扫描EBS卷的恶意软件防护 AWS 托管式密钥 可能并非所有版本都可用 AWS 区域。有关更多信息,请参阅 特定于区域的功能可用性

  • 允许 Amaz AWS KMS on EC2 代表恶意软件防护部门呼叫EC2对客户托管的密钥执行多项加密操作。共享使用客户管理密钥加密的快照,需要执行 kms:ReEncryptTokms:ReEncryptFrom 等操作。只有那些 GuardDutyExcluded 标签未设置为 true 的密钥才可访问。

该角色使用以下 AWS 托管策略(名为 AmazonGuardDutyMalwareProtectionServiceRolePolicy)配置。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "DescribeAndListPermissions", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ecs:ListClusters", "ecs:ListContainerInstances", "ecs:ListTasks", "ecs:DescribeTasks", "eks:DescribeCluster" ], "Resource": "*" }, { "Sid": "CreateSnapshotVolumeConditionalStatement", "Effect": "Allow", "Action": "ec2:CreateSnapshot", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "Null": { "aws:ResourceTag/GuardDutyExcluded": "true" } } }, { "Sid": "CreateSnapshotConditionalStatement", "Effect": "Allow", "Action": "ec2:CreateSnapshot", "Resource": "arn:aws:ec2:*:*:snapshot/*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "GuardDutyScanId" } } }, { "Sid": "CreateTagsPermission", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:*/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateSnapshot" } } }, { "Sid": "AddTagsToSnapshotPermission", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:snapshot/*", "Condition": { "StringLike": { "ec2:ResourceTag/GuardDutyScanId": "*" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "GuardDutyExcluded", "GuardDutyFindingDetected" ] } } }, { "Sid": "DeleteAndShareSnapshotPermission", "Effect": "Allow", "Action": [ "ec2:DeleteSnapshot", "ec2:ModifySnapshotAttribute" ], "Resource": "arn:aws:ec2:*:*:snapshot/*", "Condition": { "StringLike": { "ec2:ResourceTag/GuardDutyScanId": "*" }, "Null": { "aws:ResourceTag/GuardDutyExcluded": "true" } } }, { "Sid": "PreventPublicAccessToSnapshotPermission", "Effect": "Deny", "Action": [ "ec2:ModifySnapshotAttribute" ], "Resource": "arn:aws:ec2:*:*:snapshot/*", "Condition": { "StringEquals": { "ec2:Add/group": "all" } } }, { "Sid": "CreateGrantPermission", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "Null": { "aws:ResourceTag/GuardDutyExcluded": "true" }, "StringLike": { "kms:EncryptionContext:aws:ebs:id": "snap-*" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "CreateGrant", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "RetireGrant", "DescribeKey" ] }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Sid": "ShareSnapshotKMSPermission", "Effect": "Allow", "Action": [ "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "StringLike": { "kms:ViaService": "ec2.*.amazonaws.com" }, "Null": { "aws:ResourceTag/GuardDutyExcluded": "true" } } }, { "Sid": "DescribeKeyPermission", "Effect": "Allow", "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:*:*:key/*" }, { "Sid": "GuardDutyLogGroupPermission", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:CreateLogGroup", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/guardduty/*" }, { "Sid": "GuardDutyLogStreamPermission", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/guardduty/*:log-stream:*" }, { "Sid": "EBSDirectAPIPermissions", "Effect": "Allow", "Action": [ "ebs:GetSnapshotBlock", "ebs:ListSnapshotBlocks" ], "Resource": "arn:aws:ec2:*:*:snapshot/*", "Condition": { "StringLike": { "aws:ResourceTag/GuardDutyScanId": "*" }, "Null": { "aws:ResourceTag/GuardDutyExcluded": "true" } } } ] }

以下信任策略附加到 AWSServiceRoleForAmazonGuardDutyMalwareProtection 服务相关角色:

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

为恶意软件防护创建服务相关角色 EC2

当您首次启用恶意软件防护或EC2在以前未启用恶意软件防护EC2的受支持区域启用恶意软件防护时,系统会自动创建AWSServiceRoleForAmazonGuardDutyMalwareProtection服务相关角色。您也可以使用IAM控制台IAMCLI、或手动创建AWSServiceRoleForAmazonGuardDutyMalwareProtection服务相关角色。IAM API

注意

默认情况下,如果您是 Amazon 的新用户 GuardDuty,EC2则会自动启用恶意软件防护。

重要

为委派 GuardDuty 管理员账户创建的服务相关角色不适用于成员 GuardDuty 账户。

您必须配置权限以允许IAM委托人(例如用户、组或角色)创建、编辑或删除服务相关角色。要成功创建AWSServiceRoleForAmazonGuardDutyMalwareProtection服务相关角色,您使用的IAM身份必须 GuardDuty 具有所需的权限。要授予所需的权限,请将以下策略附加到此 用户、组或角色:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "guardduty:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "malware-protection.guardduty.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "organizations:EnableAWSServiceAccess", "organizations:RegisterDelegatedAdministrator", "organizations:ListDelegatedAdministrators", "organizations:ListAWSServiceAccessForOrganization", "organizations:DescribeOrganizationalUnit", "organizations:DescribeAccount", "organizations:DescribeOrganization" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:GetRole", "Resource": "arn:aws:iam::*:role/*AWSServiceRoleForAmazonGuardDutyMalwareProtection" } ] }

有关手动创建角色的更多信息,请参阅《IAM用户指南》中的创建服务相关角色

编辑恶意软件防护的服务相关角色 EC2

的恶意软件防护EC2不允许您编辑AWSServiceRoleForAmazonGuardDutyMalwareProtection服务相关角色。在创建服务相关角色后,您将无法更改角色的名称,因为可能有多种实体引用该角色。但是,您可以使用编辑角色的描述IAM。有关更多信息,请参阅《IAM用户指南》中的编辑服务相关角色

删除恶意软件防护的服务相关角色 EC2

如果不再需要使用某个需要服务相关角色的功能或服务,我们建议您删除该角色。这样您就没有未被主动监控或维护的未使用实体。

重要

要删除AWSServiceRoleForAmazonGuardDutyMalwareProtection,必须先EC2在所有启用恶意软件防护的区域禁用该保护。

如果您在尝试删除服务相关角色时EC2未禁用恶意软件防护,则删除操作将失败。有关更多信息,请参阅 启用或禁用 GuardDuty启动的恶意软件扫描

当您选择 “禁用” 来停止恶意软件防护EC2服务AWSServiceRoleForAmazonGuardDutyMalwareProtection时,不会自动删除。如果您随后选择 “启用” 再次启动恶意软件防护EC2服务,则 GuardDuty 将开始使用现有的AWSServiceRoleForAmazonGuardDutyMalwareProtection

使用手动删除服务相关角色 IAM

使用IAM控制台 AWS CLI、或删除AWSServiceRoleForAmazonGuardDutyMalwareProtection服务相关角色。IAM API有关更多信息,请参阅《IAM用户指南》中的删除服务相关角色

支持的 AWS 区域

Amazon GuardDuty 支持在所有提供恶意软件防护 AWS 区域 的地方使用AWSServiceRoleForAmazonGuardDutyMalwareProtection服务相关角色。EC2

有关当前可用区域的列表,请参阅中的 Amazon GuardDuty 终端节点和配额Amazon Web Services 一般参考。 GuardDuty

注意

AWS GovCloud (美国东部)和 AWS GovCloud (美国西部)的恶意软件防护目前不可用。EC2