IAM Permission Boundary
bucketAV utilizes CloudFormation to deploy a production-ready malware scanning system to your AWS account. Part of that process is creating IAM roles. The EC2 instance uses those IAM roles to receive outstanding scan jobs via SQS or to download S3 objects for scanning, for example.
In case your AWS organization uses IAM permission boundaries, you need to set the PermissionsBoundary
parameter when deploying bucketAV’s CloudFormation stacks.
Required IAM actions
Here is a list of all IAM actions required by the IAM roles created by bucketAV. Ensure that your permission boundary also grants access to those IAM actions.
autoscaling:CompleteLifecycleAction
autoscaling:DescribeAutoScalingInstances
autoscaling:RecordLifecycleActionHeartbeat
aws-marketplace:MeterUsage
cloudformation:DescribeStacks
cloudwatch:GetMetricStatistics
cloudwatch:PutMetricData
dynamodb:DeleteItem
dynamodb:GetItem
dynamodb:PutItem
dynamodb:Scan
dynamodb:UpdateItem
ec2messages:AcknowledgeMessage
ec2messages:DeleteMessage
ec2messages:FailMessage
ec2messages:GetEndpoint
ec2messages:GetMessages
ec2messages:SendReply
events:DescribeEventBus
events:DescribeRule
events:ListRuleNamesByTarget
kms:Decrypt
lambda:InvokeFunction
logs:CreateLogGroup
logs:CreateLogStream
logs:DescribeLogGroups
logs:DescribeLogStreams
logs:PutLogEvents
organizations:DescribeOrganization
s3:DeleteObject*
s3:GetBucketLocation
s3:GetBucketNotification
s3:GetObject*
s3:GetObjectTagging
s3:GetObjectVersionTagging
s3:ListAllMyBuckets
s3:ListBucket*
s3:PutBucketNotification
s3:PutObjectTagging
s3:PutObjectVersionTagging
sns:ListSubscriptionsByTopic
sns:Publish
sqs:ChangeMessageVisibility
sqs:ChangeMessageVisibilityBatch
sqs:DeleteMessage
sqs:DeleteMessageBatch
sqs:ReceiveMessage
sqs:SendMessage
ssm:GetParameter
ssm:GetParametersByPath
ssm:ListAssociations
ssm:ListInstanceAssociations
ssm:PutParameter
ssm:UpdateInstanceInformation
ssmmessages:CreateControlChannel
ssmmessages:CreateDataChannel
ssmmessages:OpenControlChannel
ssmmessages:OpenDataChannel
states:StartExecution
sts:AssumeRole
autoscaling:CompleteLifecycleAction
autoscaling:DescribeAutoScalingInstances
autoscaling:RecordLifecycleActionHeartbeat
aws-marketplace:MeterUsage
cloudformation:DescribeStacks
cloudwatch:GetMetricStatistics
cloudwatch:PutMetricData
dynamodb:DeleteItem
dynamodb:GetItem
dynamodb:PutItem
dynamodb:Scan
dynamodb:UpdateItem
ec2messages:AcknowledgeMessage
ec2messages:DeleteMessage
ec2messages:FailMessage
ec2messages:GetEndpoint
ec2messages:GetMessages
ec2messages:SendReply
events:DescribeEventBus
events:DescribeRule
events:ListRuleNamesByTarget
kms:Decrypt
lambda:InvokeFunction
logs:CreateLogGroup
logs:CreateLogStream
logs:DescribeLogGroups
logs:DescribeLogStreams
logs:PutLogEvents
organizations:DescribeOrganization
s3:DeleteObject*
s3:GetBucketLocation
s3:GetBucketNotification
s3:GetObject*
s3:GetObjectTagging
s3:GetObjectVersionTagging
s3:ListAllMyBuckets
s3:ListBucket*
s3:PutBucketNotification
s3:PutObjectTagging
s3:PutObjectVersionTagging
sns:ListSubscriptionsByTopic
sns:Publish
sqs:ChangeMessageVisibility
sqs:ChangeMessageVisibilityBatch
sqs:DeleteMessage
sqs:DeleteMessageBatch
sqs:ReceiveMessage
sqs:SendMessage
ssm:GetParameter
ssm:GetParametersByPath
ssm:ListAssociations
ssm:ListInstanceAssociations
ssm:PutParameter
ssm:UpdateInstanceInformation
ssmmessages:CreateControlChannel
ssmmessages:CreateDataChannel
ssmmessages:OpenControlChannel
ssmmessages:OpenDataChannel
states:StartExecution
sts:AssumeRole
autoscaling:CompleteLifecycleAction
autoscaling:DescribeAutoScalingInstances
autoscaling:RecordLifecycleActionHeartbeat
cloudformation:DescribeStacks
cloudwatch:GetMetricStatistics
cloudwatch:PutMetricData
dynamodb:DeleteItem
dynamodb:GetItem
dynamodb:PutItem
dynamodb:Scan
dynamodb:UpdateItem
ec2messages:AcknowledgeMessage
ec2messages:DeleteMessage
ec2messages:FailMessage
ec2messages:GetEndpoint
ec2messages:GetMessages
ec2messages:SendReply
events:DescribeEventBus
events:DescribeRule
events:ListRuleNamesByTarget
kms:Decrypt
lambda:InvokeFunction
logs:CreateLogGroup
logs:CreateLogStream
logs:DescribeLogGroups
logs:DescribeLogStreams
logs:PutLogEvents
organizations:DescribeOrganization
s3:DeleteObject*
s3:GetBucketLocation
s3:GetBucketNotification
s3:GetObject*
s3:GetObjectTagging
s3:GetObjectVersionTagging
s3:ListAllMyBuckets
s3:ListBucket*
s3:PutBucketNotification
s3:PutObjectTagging
s3:PutObjectVersionTagging
securityhub:BatchImportFindings
sns:ListSubscriptionsByTopic
sns:Publish
sqs:ChangeMessageVisibility
sqs:ChangeMessageVisibilityBatch
sqs:DeleteMessage
sqs:DeleteMessageBatch
sqs:ReceiveMessage
sqs:SendMessage
ssm:CreateOpsItem
ssm:GetParameter
ssm:GetParametersByPath
ssm:ListAssociations
ssm:ListInstanceAssociations
ssm:PutParameter
ssm:UpdateInstanceInformation
ssmmessages:CreateControlChannel
ssmmessages:CreateDataChannel
ssmmessages:OpenControlChannel
ssmmessages:OpenDataChannel
states:StartExecution
sts:AssumeRole
autoscaling:CompleteLifecycleAction
autoscaling:DescribeAutoScalingInstances
autoscaling:RecordLifecycleActionHeartbeat
cloudformation:DescribeStacks
cloudwatch:GetMetricStatistics
cloudwatch:PutMetricData
dynamodb:DeleteItem
dynamodb:GetItem
dynamodb:PutItem
dynamodb:Scan
dynamodb:UpdateItem
ec2messages:AcknowledgeMessage
ec2messages:DeleteMessage
ec2messages:FailMessage
ec2messages:GetEndpoint
ec2messages:GetMessages
ec2messages:SendReply
events:DescribeEventBus
events:DescribeRule
events:ListRuleNamesByTarget
kms:Decrypt
lambda:InvokeFunction
logs:CreateLogGroup
logs:CreateLogStream
logs:DescribeLogGroups
logs:DescribeLogStreams
logs:PutLogEvents
organizations:DescribeOrganization
s3:DeleteObject*
s3:GetBucketLocation
s3:GetBucketNotification
s3:GetObject*
s3:GetObjectTagging
s3:GetObjectVersionTagging
s3:ListAllMyBuckets
s3:ListBucket*
s3:PutBucketNotification
s3:PutObjectTagging
s3:PutObjectVersionTagging
securityhub:BatchImportFindings
sns:ListSubscriptionsByTopic
sns:Publish
sqs:ChangeMessageVisibility
sqs:ChangeMessageVisibilityBatch
sqs:DeleteMessage
sqs:DeleteMessageBatch
sqs:ReceiveMessage
sqs:SendMessage
ssm:CreateOpsItem
ssm:GetParameter
ssm:GetParametersByPath
ssm:ListAssociations
ssm:ListInstanceAssociations
ssm:PutParameter
ssm:UpdateInstanceInformation
ssmmessages:CreateControlChannel
ssmmessages:CreateDataChannel
ssmmessages:OpenControlChannel
ssmmessages:OpenDataChannel
states:StartExecution
sts:AssumeRole
autoscaling:CompleteLifecycleAction
autoscaling:DescribeAutoScalingInstances
autoscaling:RecordLifecycleActionHeartbeat
aws-marketplace:MeterUsage
cloudformation:DescribeStacks
cloudwatch:PutMetricData
ec2messages:AcknowledgeMessage
ec2messages:DeleteMessage
ec2messages:FailMessage
ec2messages:GetEndpoint
ec2messages:GetMessages
ec2messages:SendReply
logs:CreateLogGroup
logs:CreateLogStream
logs:DescribeLogGroups
logs:DescribeLogStreams
logs:PutLogEvents
secretsmanager:GetSecretValue
sns:Publish
sqs:ChangeMessageVisibility
sqs:ChangeMessageVisibilityBatch
sqs:DeleteMessage
sqs:DeleteMessageBatch
sqs:ReceiveMessage
sqs:SendMessage
ssm:GetParameter
ssm:GetParametersByPath
ssm:ListAssociations
ssm:ListInstanceAssociations
ssm:UpdateInstanceInformation
ssmmessages:CreateControlChannel
ssmmessages:CreateDataChannel
ssmmessages:OpenControlChannel
ssmmessages:OpenDataChannel
autoscaling:CompleteLifecycleAction
autoscaling:DescribeAutoScalingInstances
autoscaling:RecordLifecycleActionHeartbeat
aws-marketplace:MeterUsage
cloudformation:DescribeStacks
cloudwatch:PutMetricData
ec2messages:AcknowledgeMessage
ec2messages:DeleteMessage
ec2messages:FailMessage
ec2messages:GetEndpoint
ec2messages:GetMessages
ec2messages:SendReply
logs:CreateLogGroup
logs:CreateLogStream
logs:DescribeLogGroups
logs:DescribeLogStreams
logs:PutLogEvents
secretsmanager:GetSecretValue
sns:Publish
sqs:ChangeMessageVisibility
sqs:ChangeMessageVisibilityBatch
sqs:DeleteMessage
sqs:DeleteMessageBatch
sqs:ReceiveMessage
sqs:SendMessage
ssm:GetParameter
ssm:GetParametersByPath
ssm:ListAssociations
ssm:ListInstanceAssociations
ssm:UpdateInstanceInformation
ssmmessages:CreateControlChannel
ssmmessages:CreateDataChannel
ssmmessages:OpenControlChannel
ssmmessages:OpenDataChannel
autoscaling:CompleteLifecycleAction
autoscaling:DescribeAutoScalingInstances
autoscaling:RecordLifecycleActionHeartbeat
cloudformation:DescribeStacks
cloudwatch:PutMetricData
ec2messages:AcknowledgeMessage
ec2messages:DeleteMessage
ec2messages:FailMessage
ec2messages:GetEndpoint
ec2messages:GetMessages
ec2messages:SendReply
logs:CreateLogGroup
logs:CreateLogStream
logs:DescribeLogGroups
logs:DescribeLogStreams
logs:PutLogEvents
secretsmanager:GetSecretValue
sns:Publish
sqs:ChangeMessageVisibility
sqs:ChangeMessageVisibilityBatch
sqs:DeleteMessage
sqs:DeleteMessageBatch
sqs:ReceiveMessage
sqs:SendMessage
ssm:GetParameter
ssm:GetParametersByPath
ssm:ListAssociations
ssm:ListInstanceAssociations
ssm:UpdateInstanceInformation
ssmmessages:CreateControlChannel
ssmmessages:CreateDataChannel
ssmmessages:OpenControlChannel
ssmmessages:OpenDataChannel
autoscaling:CompleteLifecycleAction
autoscaling:DescribeAutoScalingInstances
autoscaling:RecordLifecycleActionHeartbeat
cloudformation:DescribeStacks
cloudwatch:PutMetricData
ec2messages:AcknowledgeMessage
ec2messages:DeleteMessage
ec2messages:FailMessage
ec2messages:GetEndpoint
ec2messages:GetMessages
ec2messages:SendReply
logs:CreateLogGroup
logs:CreateLogStream
logs:DescribeLogGroups
logs:DescribeLogStreams
logs:PutLogEvents
secretsmanager:GetSecretValue
sns:Publish
sqs:ChangeMessageVisibility
sqs:ChangeMessageVisibilityBatch
sqs:DeleteMessage
sqs:DeleteMessageBatch
sqs:ReceiveMessage
sqs:SendMessage
ssm:GetParameter
ssm:GetParametersByPath
ssm:ListAssociations
ssm:ListInstanceAssociations
ssm:UpdateInstanceInformation
ssmmessages:CreateControlChannel
ssmmessages:CreateDataChannel
ssmmessages:OpenControlChannel
ssmmessages:OpenDataChannel