AmazonGuardDutyMalwareProtectionServiceRolePolicy - AWS Managed Policy

AmazonGuardDutyMalwareProtectionServiceRolePolicy

Description: GuardDuty malware protection uses the service-linked role (SLR) named AWSServiceRoleForAmazonGuardDutyMalwareProtection. This service-linked role allows GuardDuty malware protection to perform agent-less scans to detect malware. It allows GuardDuty to create snapshots in your account, and share the snapshots with the GuardDuty service account to scan for malware. It evaluates these shared snapshots and includes the retrieved EC2 instance metadata in the GuardDuty Malware Protection findings. The AWSServiceRoleForAmazonGuardDutyMalwareProtection service-linked role trusts the malware-protection.guardduty.amazonaws.com service to assume the role.

AmazonGuardDutyMalwareProtectionServiceRolePolicy is an AWS managed policy.

Using this policy

This policy is attached to a service-linked role that allows the service to perform actions on your behalf. You cannot attach this policy to your users, groups, or roles.

Policy details

  • Type: Service-linked role policy

  • Creation time: July 19, 2022, 19:06 UTC

  • Edited time: January 25, 2024, 22:24 UTC

  • ARN: arn:aws:iam::aws:policy/aws-service-role/AmazonGuardDutyMalwareProtectionServiceRolePolicy

Policy version

Policy version: v2 (default)

The policy's default version is the version that defines the permissions for the policy. When a user or role with the policy makes a request to access an AWS resource, AWS checks the default version of the policy to determine whether to allow the request.

JSON policy document

{ "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" } } } ] }

Learn more