Copy {
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AmazonEC2BackupAndRestore1142V1",
"Effect":"Allow",
"Action":[
"ebs:CompleteSnapshot",
"ebs:GetSnapshotBlock",
"ebs:ListChangedBlocks",
"ebs:ListSnapshotBlocks",
"ebs:PutSnapshotBlock",
"ebs:StartSnapshot",
"ec2:AssociateIamInstanceProfile",
"ec2:AttachNetworkInterface",
"ec2:AttachVolume",
"ec2:CreateImage",
"ec2:CreateNetworkInterface",
"ec2:CreateSnapshot",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:DeleteNetworkInterface",
"ec2:DeregisterImage",
"ec2:DescribeAccountAttributes",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeIamInstanceProfileAssociations",
"ec2:DescribeImages",
"ec2:DescribeInstanceAttribute",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstanceTypeOfferings",
"ec2:DescribeInstanceTypes",
"ec2:DescribeInstances",
"ec2:DescribeKeyPairs",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeRegions",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSnapshots",
"ec2:DescribeSubnets",
"ec2:DescribeTags",
"ec2:DescribeVolumeAttribute",
"ec2:DescribeVolumes",
"ec2:DescribeVpcEndpoints",
"ec2:DescribeVpcs",
"ec2:DetachNetworkInterface",
"ec2:DisassociateIamInstanceProfile",
"ec2:GetConsoleOutput",
"ec2:GetEbsDefaultKmsKeyId",
"ec2:GetEbsEncryptionByDefault",
"ec2:ModifyNetworkInterfaceAttribute",
"ec2:RegisterImage",
"ec2:RunInstances",
"ec2:StartInstances",
"ec2:StopInstances",
"iam:GetAccountAuthorizationDetails",
"iam:GetInstanceProfile",
"iam:GetRole",
"iam:GetUser",
"iam:ListInstanceProfiles",
"iam:ListRoles",
"kms:ListAliases"
],
"Resource":"*"
},
{
"Sid": "RestrictModifyInstanceAttributeRestoreAddon",
"Effect": "Allow",
"Action": "ec2:ModifyInstanceAttribute",
"Resource": "*",
"Condition": {
"StringLikeIfExists": {
"ec2:Attribute/instanceType": "*"
},
"StringEqualsIfExists": {
"ec2:Attribute/ebsOptimized": [
"false",
"true"
],
"ec2:Attribute/blockDeviceMapping.DeleteOnTermination": [
"false",
"true"
],
"ec2:Attribute/disableApiTermination": [
"false",
"true"
]
}
}
},
{
"Sid":"RestrictedVolumeAndSnapshotDeletion",
"Effect":"Allow",
"Action":[
"ec2:DeleteSnapshot",
"ec2:DeleteVolume"
],
"Resource":"*",
"Condition":{
"StringLike":{
"ec2:ResourceTag/_GX_BACKUP_":"*"
}
}
},
{
"Sid":"RestrictedTagDeletion",
"Effect":"Allow",
"Action":"ec2:DeleteTags",
"Resource":"*",
"Condition":{
"ForAnyValue:StringEquals":{
"aws:TagKeys":[
"CV_Integrity_Snap",
"CV_Retain_Snap",
"Description",
"Name",
"_GX_AMI_",
"_GX_BACKUP_",
"commvault:vendor"
]
}
}
},
{
"Sid":"RestrictedVolumeDetach",
"Effect":"Allow",
"Action":"ec2:DetachVolume",
"Resource":"arn:*:ec2:*:*:volume/*",
"Condition":{
"StringLike":{
"ec2:ResourceTag/_GX_BACKUP_":"*"
}
}
},
{
"Sid":"RestrictedDeleteInstance1",
"Effect":"Allow",
"Action":"ec2:TerminateInstances",
"Resource":"*",
"Condition":{
"StringLike":{
"ec2:ResourceTag/CV_Integrity_Snap":"*"
}
}
},
{
"Sid":"RestrictedDeleteInstance2",
"Effect":"Allow",
"Action":"ec2:TerminateInstances",
"Resource":"*",
"Condition":{
"StringLike":{
"ec2:ResourceTag/_GX_BACKUP_":"*"
}
}
},
{
"Sid":"AllowDetachfromInstance",
"Effect":"Allow",
"Action":"ec2:DetachVolume",
"Resource":"arn:*:ec2:*:*:instance/*"
},
{
"Sid": "RestrictPassRoleToEC2RestoreAddon",
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::*:role/*",
"Condition": {
"StringEquals": {
"iam:PassedToService": "ec2.amazonaws.com"
},
"ArnLike": {
"iam:AssociatedResourceARN": [
"arn:aws:ec2:*:*:instance/*"
]
}
}
},
{
"Sid":"HotaddBackupAddon",
"Effect":"Allow",
"Action":[
"ec2:DescribeVolumesModifications",
"ec2:ModifySnapshotAttribute",
"ec2:ModifyVolume"
],
"Resource":"*"
},
{
"Sid":"ImportRestoreAddon",
"Effect":"Allow",
"Action":[
"ec2:CancelImportTask",
"ec2:DescribeImportImageTasks",
"ec2:ImportImage",
"ec2:ModifyImageAttribute"
],
"Resource":"*"
},
{
"Sid":"KMSPermissionsIfNotAllowedAtKeyPolicy",
"Effect":"Allow",
"Action":[
"kms:CreateAlias",
"kms:CreateGrant",
"kms:CreateKey",
"kms:Decrypt",
"kms:DescribeKey",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyPair",
"kms:GenerateDataKeyPairWithoutPlaintext",
"kms:GenerateDataKeyWithoutPlaintext",
"kms:ListAliases",
"kms:ListGrants",
"kms:ListKeys",
"kms:ListResourceTags",
"kms:ReEncryptFrom",
"kms:ReEncryptTo",
"kms:TagResource"
],
"Resource":"*"
},
{
"Sid":"AgentlessRestore",
"Effect":"Allow",
"Action":[
"ssm:CancelCommand",
"ssm:DescribeInstanceInformation",
"ssm:ListCommands"
],
"Resource":"*"
},
{
"Sid":"RestrictedSendCommandForAgentlessRestore",
"Effect":"Allow",
"Action":[
"ssm:SendCommand"
],
"Resource":[
"arn:*:ec2:*:*:instance/*",
"arn:*:ssm:*:*:document/AWS-RunPowerShellScript",
"arn:*:ssm:*:*:document/AWS-RunShellScript",
"arn:*:ssm:*:*:document/AWS-UpdateSSMAgent"
]
},
{
"Sid":"S3PermissionsForRestore",
"Effect":"Allow",
"Action":[
"s3:CreateBucket",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetBucketAcl",
"s3:GetBucketLocation",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:ListAllMyBuckets",
"s3:ListBucket",
"s3:PutBucketAcl",
"s3:PutBucketOwnershipControls",
"s3:PutEncryptionConfiguration",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectTagging"
],
"Resource":"*"
},
{
"Sid":"SnapReplication",
"Effect":"Allow",
"Action":[
"ec2:CopySnapshot",
"ec2:ModifySnapshotAttribute"
],
"Resource":"*"
},
{
"Sid":"VPCBackupPermissions",
"Effect":"Allow",
"Action":[
"ec2:DescribeCarrierGateways",
"ec2:DescribeCustomerGateways",
"ec2:DescribeDhcpOptions",
"ec2:DescribeEgressOnlyInternetGateways",
"ec2:DescribeFlowLogs",
"ec2:DescribeInternetGateways",
"ec2:DescribeManagedPrefixLists",
"ec2:DescribeNatGateways",
"ec2:DescribeNetworkAcls",
"ec2:DescribeRouteTables",
"ec2:DescribeTransitGatewayVpcAttachments",
"ec2:DescribeTransitGateways",
"ec2:DescribeVpcAttribute",
"ec2:DescribeVpcPeeringConnections",
"ec2:DescribeVpnConnections",
"ec2:DescribeVpnGateways",
"ec2:GetManagedPrefixListEntries",
"ec2:GetSubnetCidrReservations"
],
"Resource":"*"
},
{
"Sid":"EbsDirectOptional",
"Effect":"Allow",
"Action":[
"iam:SimulatePrincipalPolicy"
],
"Resource":"*"
},
{
"Sid":"PermissionForBetterJPROptional",
"Effect":"Allow",
"Action":[
"sts:DecodeAuthorizationMessage"
],
"Resource":"*"
},
{
"Sid":"TenancyPermissionForRestore",
"Effect":"Allow",
"Action":[
"ec2:DescribeHosts"
],
"Resource":"*"
}
]
}