AWSApplicationMigrationNetworkMigrationMultiAccount
Summary
Provides permissions to automate VMware to AWS network infrastructure migration through CloudFormation
Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.
Identity
- ARN
arn:aws:iam::aws:policy/AWSApplicationMigrationNetworkMigrationMultiAccount- Default version
- v8
- Created
- Last edited
- Services
- cloudformation, ec2, elasticloadbalancing, iam, lambda, logs, ram, ssm
Control-plane actions (184)
By access level: 51 List, 7 Permissions management, 20 Read, 8 Tagging, 98 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| CloudFormation | 12 of 104 | 3 List, 3 Read, 2 Tagging, 4 Write; 12 restricted, 10 conditional | cloudformation:CreateStack, cloudformation:DeleteStack, cloudformation:DescribeStackEvents, cloudformation:DescribeStackResources, cloudformation:DescribeStacks, cloudformation:GetTemplateSummary, cloudformation:ListStackResources, cloudformation:ListStacks, cloudformation:TagResource, cloudformation:UntagResource, cloudformation:UpdateStack, cloudformation:UpdateTerminationProtection |
| EC2 | 116 of 834 | 43 List, 1 Permissions management, 2 Read, 1 Tagging, 69 Write; 110 restricted, 110 conditional | ec2:AcceptTransitGatewayVpcAttachment, ec2:AllocateAddress, ec2:AssociateNatGatewayAddress, ec2:AssociateRouteTable, ec2:AssociateSubnetCidrBlock, ec2:AssociateTransitGatewayRouteTable, ec2:AssociateVpcCidrBlock, ec2:AttachInternetGateway, ec2:AttachVolume, ec2:AuthorizeSecurityGroupEgress, ec2:AuthorizeSecurityGroupIngress, ec2:CreateInternetGateway and 104 more |
| ELB | 19 of 77 | 1 List, 8 Read, 1 Tagging, 9 Write; 19 restricted, 19 conditional | elasticloadbalancing:AddTags, elasticloadbalancing:CreateListener, elasticloadbalancing:CreateLoadBalancer, elasticloadbalancing:CreateTargetGroup, elasticloadbalancing:DeleteListener, elasticloadbalancing:DeleteLoadBalancer, elasticloadbalancing:DeleteTargetGroup, elasticloadbalancing:DescribeCapacityReservation, elasticloadbalancing:DescribeListenerAttributes, elasticloadbalancing:DescribeListeners, elasticloadbalancing:DescribeLoadBalancerAttributes, elasticloadbalancing:DescribeLoadBalancers and 7 more |
| IAM | 12 of 190 | 2 List, 3 Permissions management, 2 Read, 1 Tagging, 4 Write; 12 restricted, 12 conditional | iam:AttachRolePolicy, iam:CreateRole, iam:CreateServiceLinkedRole, iam:DeleteRole, iam:DeleteRolePolicy, iam:DetachRolePolicy, iam:GetRole, iam:GetRolePolicy, iam:ListAttachedRolePolicies, iam:ListRolePolicies, iam:PassRole, iam:TagRole |
| Lambda | 7 of 121 | 1 Permissions management, 3 Read, 1 Tagging, 2 Write; 7 restricted, 7 conditional | lambda:AddPermission, lambda:CreateFunction, lambda:DeleteFunction, lambda:GetFunction, lambda:GetFunctionConfiguration, lambda:ListTags, lambda:TagResource |
| CloudWatch Logs | 3 of 133 | 3 Write; 3 restricted, 3 conditional | logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents |
| Resource Access Manager | 7 of 39 | 1 Read, 1 Tagging, 5 Write; 7 restricted, 6 conditional | ram:AssociateResourceShare, ram:CreateResourceShare, ram:DeleteResourceShare, ram:DisassociateResourceShare, ram:GetResourceShares, ram:TagResource, ram:UpdateResourceShare |
| Systems Manager | 8 of 164 | 2 List, 2 Permissions management, 1 Read, 1 Tagging, 2 Write; 8 restricted, 8 conditional | ssm:AddTagsToResource, ssm:DeleteParameter, ssm:DeleteResourcePolicy, ssm:GetParameters, ssm:GetResourcePolicies, ssm:ListTagsForResource, ssm:PutParameter, ssm:PutResourcePolicy |
CloudFormation: 12 actions
- cloudformation:CreateStack (Write)
- cloudformation:DeleteStack (Write)
- cloudformation:DescribeStackEvents (Read)
- cloudformation:DescribeStackResources (Read)
- cloudformation:DescribeStacks (List)
- cloudformation:GetTemplateSummary (Read)
- cloudformation:ListStackResources (List)
- cloudformation:ListStacks (List)
- cloudformation:TagResource (Tagging)
- cloudformation:UntagResource (Tagging)
- cloudformation:UpdateStack (Write)
- cloudformation:UpdateTerminationProtection (Write)
EC2: 116 actions
- ec2:AcceptTransitGatewayVpcAttachment (Write)
- ec2:AllocateAddress (Write)
- ec2:AssociateNatGatewayAddress (Write)
- ec2:AssociateRouteTable (Write)
- ec2:AssociateSubnetCidrBlock (Write)
- ec2:AssociateTransitGatewayRouteTable (Write)
- ec2:AssociateVpcCidrBlock (Write)
- ec2:AttachInternetGateway (Write)
- ec2:AttachVolume (Write)
- ec2:AuthorizeSecurityGroupEgress (Write)
- ec2:AuthorizeSecurityGroupIngress (Write)
- ec2:CreateInternetGateway (Write)
- ec2:CreateNatGateway (Write)
- ec2:CreateNetworkAcl (Write)
- ec2:CreateNetworkAclEntry (Write)
- ec2:CreateNetworkInsightsPath (Write)
- ec2:CreateNetworkInterface (Write)
- ec2:CreateRoute (Write)
- ec2:CreateRouteTable (Write)
- ec2:CreateSecurityGroup (Write)
- ec2:CreateSubnet (Write)
- ec2:CreateTags (Tagging)
- ec2:CreateTransitGateway (Write)
- ec2:CreateTransitGatewayRoute (Write)
- ec2:CreateTransitGatewayRouteTable (Write)
- ec2:CreateTransitGatewayVpcAttachment (Write)
- ec2:CreateVpc (Write)
- ec2:DeleteInternetGateway (Write)
- ec2:DeleteLaunchTemplate (Write)
- ec2:DeleteLaunchTemplateVersions (Write)
- ec2:DeleteNatGateway (Write)
- ec2:DeleteNetworkAcl (Write)
- ec2:DeleteNetworkAclEntry (Write)
- ec2:DeleteNetworkInsightsAnalysis (Write)
- ec2:DeleteNetworkInsightsPath (Write)
- ec2:DeleteNetworkInterface (Write)
- ec2:DeleteRoute (Write)
- ec2:DeleteRouteTable (Write)
- ec2:DeleteSecurityGroup (Write)
- ec2:DeleteSnapshot (Write)
- ec2:DeleteSubnet (Write)
- ec2:DeleteTransitGateway (Write)
- ec2:DeleteTransitGatewayRoute (Write)
- ec2:DeleteTransitGatewayRouteTable (Write)
- ec2:DeleteTransitGatewayVpcAttachment (Write)
- ec2:DeleteVolume (Write)
- ec2:DeleteVpc (Write)
- ec2:DescribeAccountAttributes (List)
- ec2:DescribeAddresses (List)
- ec2:DescribeAvailabilityZones (List)
- ec2:DescribeCustomerGateways (List)
- ec2:DescribeEgressOnlyInternetGateways (List)
- ec2:DescribeHosts (List)
- ec2:DescribeImages (List)
- ec2:DescribeInstanceAttribute (List)
- ec2:DescribeInstanceStatus (List)
- ec2:DescribeInstanceTypes (List)
- ec2:DescribeInstances (List)
- ec2:DescribeInternetGateways (List)
- ec2:DescribeLaunchTemplateVersions (List)
- ec2:DescribeLaunchTemplates (List)
- ec2:DescribeManagedPrefixLists (List)
- ec2:DescribeNatGateways (List)
- ec2:DescribeNetworkAcls (List)
- ec2:DescribeNetworkInsightsAnalyses (List)
- ec2:DescribeNetworkInsightsPaths (List)
- ec2:DescribeNetworkInterfaces (List)
- ec2:DescribePrefixLists (List)
- ec2:DescribeRegions (List)
- ec2:DescribeRouteTables (List)
- ec2:DescribeSecurityGroupRules (List)
- ec2:DescribeSecurityGroups (List)
- ec2:DescribeSnapshots (List)
- ec2:DescribeSubnets (List)
- ec2:DescribeTransitGatewayAttachments (List)
- ec2:DescribeTransitGatewayConnects (List)
- ec2:DescribeTransitGatewayPeeringAttachments (List)
- ec2:DescribeTransitGatewayRouteTables (List)
- ec2:DescribeTransitGatewayVpcAttachments (List)
- ec2:DescribeTransitGateways (List)
- ec2:DescribeVolumes (List)
- ec2:DescribeVpcEndpointServiceConfigurations (List)
- ec2:DescribeVpcEndpoints (List)
- ec2:DescribeVpcPeeringConnections (List)
- ec2:DescribeVpcs (List)
- ec2:DescribeVpnConnections (List)
- ec2:DescribeVpnGateways (List)
- ec2:DetachInternetGateway (Write)
- ec2:DetachVolume (Write)
- ec2:DisableTransitGatewayRouteTablePropagation (Write)
- ec2:DisassociateNatGatewayAddress (Write)
- ec2:DisassociateRouteTable (Write)
- ec2:DisassociateTransitGatewayRouteTable (Write)
- ec2:EnableTransitGatewayRouteTablePropagation (Write)
- ec2:GetManagedPrefixListEntries (Read)
- ec2:GetSecurityGroupsForVpc (Read)
- ec2:GetTransitGatewayRouteTableAssociations (List)
- ec2:GetTransitGatewayRouteTablePropagations (List)
- ec2:ModifyInstanceAttribute (Write)
- ec2:ModifyLaunchTemplate (Write)
- ec2:ModifySubnetAttribute (Write)
- ec2:ModifyTransitGateway (Write)
- ec2:ModifyTransitGatewayVpcAttachment (Write)
- ec2:ModifyVolume (Write)
- ec2:ModifyVpcAttribute (Write)
- ec2:PutResourcePolicy (Permissions management)
- ec2:RejectTransitGatewayVpcAttachment (Write)
- ec2:ReleaseAddress (Write)
- ec2:ReplaceNetworkAclAssociation (Write)
- ec2:ReplaceNetworkAclEntry (Write)
- ec2:ReplaceRoute (Write)
- ec2:ReplaceTransitGatewayRoute (Write)
- ec2:RevokeSecurityGroupEgress (Write)
- ec2:RevokeSecurityGroupIngress (Write)
- ec2:SearchTransitGatewayRoutes (List)
- ec2:StartNetworkInsightsAnalysis (Write)
ELB: 19 actions
- elasticloadbalancing:AddTags (Tagging)
- elasticloadbalancing:CreateListener (Write)
- elasticloadbalancing:CreateLoadBalancer (Write)
- elasticloadbalancing:CreateTargetGroup (Write)
- elasticloadbalancing:DeleteListener (Write)
- elasticloadbalancing:DeleteLoadBalancer (Write)
- elasticloadbalancing:DeleteTargetGroup (Write)
- elasticloadbalancing:DescribeCapacityReservation (Read)
- elasticloadbalancing:DescribeListenerAttributes (Read)
- elasticloadbalancing:DescribeListeners (Read)
- elasticloadbalancing:DescribeLoadBalancerAttributes (Read)
- elasticloadbalancing:DescribeLoadBalancers (List)
- elasticloadbalancing:DescribeTags (Read)
- elasticloadbalancing:DescribeTargetGroupAttributes (Read)
- elasticloadbalancing:DescribeTargetGroups (Read)
- elasticloadbalancing:DescribeTargetHealth (Read)
- elasticloadbalancing:ModifyListenerAttributes (Write)
- elasticloadbalancing:ModifyLoadBalancerAttributes (Write)
- elasticloadbalancing:ModifyTargetGroupAttributes (Write)
IAM: 12 actions
- iam:AttachRolePolicy (Permissions management)
- iam:CreateRole (Write)
- iam:CreateServiceLinkedRole (Write)
- iam:DeleteRole (Write)
- iam:DeleteRolePolicy (Permissions management)
- iam:DetachRolePolicy (Permissions management)
- iam:GetRole (Read)
- iam:GetRolePolicy (Read)
- iam:ListAttachedRolePolicies (List)
- iam:ListRolePolicies (List)
- iam:PassRole (Write)
- iam:TagRole (Tagging)
Lambda: 7 actions
- lambda:AddPermission (Permissions management)
- lambda:CreateFunction (Write)
- lambda:DeleteFunction (Write)
- lambda:GetFunction (Read)
- lambda:GetFunctionConfiguration (Read)
- lambda:ListTags (Read)
- lambda:TagResource (Tagging)
CloudWatch Logs: 3 actions
- logs:CreateLogGroup (Write)
- logs:CreateLogStream (Write)
- logs:PutLogEvents (Write)
Resource Access Manager: 7 actions
- ram:AssociateResourceShare (Write)
- ram:CreateResourceShare (Write)
- ram:DeleteResourceShare (Write)
- ram:DisassociateResourceShare (Write)
- ram:GetResourceShares (Read)
- ram:TagResource (Tagging)
- ram:UpdateResourceShare (Write)
Systems Manager: 8 actions
- ssm:AddTagsToResource (Tagging)
- ssm:DeleteParameter (Write)
- ssm:DeleteResourcePolicy (Permissions management)
- ssm:GetParameters (Read)
- ssm:GetResourcePolicies (List)
- ssm:ListTagsForResource (List)
- ssm:PutParameter (Write)
- ssm:PutResourcePolicy (Permissions management)
Data-plane actions (1)
By access level: 1 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| Lambda | 1 of 14 | 1 Write; 1 restricted, 1 conditional | lambda:InvokeFunction |
Lambda: 1 actions
- lambda:InvokeFunction (Write)
Excluded and conditional actions
No patterns are excluded by NotAction or Deny statements.
Resource scope and attachment
Resource scope across granted actions: mixed.
Can be attached: Yes, to users, groups and roles.
Why this tier
- Grants 114 write, tagging or permissions-management actions, short of full control of any service.
- Grants iam:PassRole, but only for scoped roles or under conditions (for example iam:PassedToService).
- Grants permissions-management actions on iam, but only for scoped resources or under conditions.
Guidance
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Related policies
Same service
- AdministratorAccess-AWSElasticBeanstalk
- AIDevOpsReleaseManagementVPCPolicy
- AmazonAppStreamServiceAccess
- AmazonBioDiscoveryServiceLinkedRolePolicy
- AmazonDataZoneEnvironmentRolePermissionsBoundary
- AmazonDataZoneProjectDeploymentPermissionsBoundary
- AmazonDataZoneProjectRolePermissionsBoundary
- AmazonDataZoneSageMakerProvisioningRolePolicy
Same domain
Frequently asked questions
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Policy JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EC2CFNReadonlyPrefixList",
"Effect": "Allow",
"Action": [
"ec2:GetManagedPrefixListEntries"
],
"Resource": [
"arn:aws:ec2:*:*:prefix-list/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
}
}
},
{
"Sid": "NetworkAnalyzer",
"Effect": "Allow",
"Action": [
"ec2:DescribeSecurityGroupRules",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSubnets",
"ec2:DescribeVpcs",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeAvailabilityZones"
],
"Resource": [
"*"
]
},
{
"Sid": "CreatePermissionsByCFNNACL",
"Effect": "Allow",
"Action": [
"ec2:ReplaceNetworkAclAssociation"
],
"Resource": [
"arn:aws:ec2:*:*:network-acl/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
}
}
},
{
"Sid": "CreatePermissionsByCFNNACLSN",
"Effect": "Allow",
"Action": [
"ec2:ReplaceNetworkAclAssociation"
],
"Resource": [
"arn:aws:ec2:*:*:subnet/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "EC2CFNReadonly",
"Effect": "Allow",
"Action": [
"ec2:DescribeAccountAttributes",
"ec2:DescribeAddresses",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeCustomerGateways",
"ec2:DescribeEgressOnlyInternetGateways",
"ec2:DescribeHosts",
"ec2:DescribeImages",
"ec2:DescribeInstanceAttribute",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstanceTypes",
"ec2:DescribeInstances",
"ec2:DescribeInternetGateways",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeManagedPrefixLists",
"ec2:DescribeNatGateways",
"ec2:DescribeNetworkAcls",
"ec2:DescribeLaunchTemplateVersions",
"ec2:DescribeNetworkInsightsAnalyses",
"ec2:DescribeNetworkInsightsPaths",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribePrefixLists",
"ec2:DescribeRegions",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroupRules",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSnapshots",
"ec2:DescribeSubnets",
"ec2:DescribeTransitGatewayAttachments",
"ec2:DescribeTransitGatewayConnects",
"ec2:DescribeTransitGatewayPeeringAttachments",
"ec2:DescribeTransitGatewayRouteTables",
"ec2:DescribeTransitGatewayVpcAttachments",
"ec2:DescribeTransitGateways",
"ec2:DescribeVolumes",
"ec2:DescribeVpcEndpointServiceConfigurations",
"ec2:DescribeVpcEndpoints",
"ec2:DescribeVpcPeeringConnections",
"ec2:DescribeVpcs",
"ec2:DescribeVpnConnections",
"ec2:DescribeVpnGateways",
"ec2:GetTransitGatewayRouteTableAssociations",
"ec2:GetTransitGatewayRouteTablePropagations"
],
"Resource": [
"*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
}
}
},
{
"Sid": "MGNCFNDescribe",
"Effect": "Allow",
"Action": [
"cloudformation:DescribeStacks",
"cloudformation:ListStacks"
],
"Resource": "arn:aws:cloudformation:*:*:stack/Nmd*"
},
{
"Sid": "CFNCreate",
"Effect": "Allow",
"Action": [
"cloudformation:CreateStack"
],
"Resource": "arn:aws:cloudformation:*:*:stack/Nmd*",
"Condition": {
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService",
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CFNTagOnCreate",
"Effect": "Allow",
"Action": [
"cloudformation:TagResource",
"cloudformation:UntagResource"
],
"Resource": "arn:aws:cloudformation:*:*:stack/Nmd*",
"Condition": {
"StringEquals": {
"cloudformation:CreateAction": [
"CreateStack",
"UpdateStack"
]
}
}
},
{
"Sid": "CFNOperations",
"Effect": "Allow",
"Action": [
"cloudformation:DeleteStack",
"cloudformation:UpdateStack",
"cloudformation:UpdateTerminationProtection",
"cloudformation:DescribeStackResources",
"cloudformation:GetTemplateSummary",
"cloudformation:ListStackResources",
"cloudformation:DescribeStackEvents"
],
"Resource": "arn:aws:cloudformation:*:*:stack/Nmd*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CFNProvision",
"Effect": "Allow",
"Action": [
"ec2:AllocateAddress"
],
"Resource": [
"arn:aws:ec2:*:*:elastic-ip/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "AnalyzerEC2PutResourcePolicy",
"Effect": "Allow",
"Action": [
"ec2:PutResourcePolicy"
],
"Resource": [
"arn:aws:ec2:*:*:security-group/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "AnalyzerEC2ResourceOperations",
"Effect": "Allow",
"Action": [
"ec2:DeleteSecurityGroup",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress"
],
"Resource": [
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:security-group-rule/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "AnalyzerEC2ResourceSgTag",
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup"
],
"Resource": [
"arn:aws:ec2:*:*:vpc/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "AnalyzerEC2RequestSgTag",
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup"
],
"Resource": [
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:security-group-rule/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "AnalyzerEC2SecurityGroupTags",
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": [
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:security-group-rule/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService",
"ec2:CreateAction": [
"CreateSecurityGroup"
]
}
}
},
{
"Sid": "EC2TagCFNSG",
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": [
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:security-group-rule/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreatePermissionsByCFN",
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup"
],
"Resource": [
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:vpc/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
}
}
},
{
"Sid": "CreatePermissionsByResourceTag",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkAcl",
"ec2:CreateNetworkAclEntry",
"ec2:CreateSubnet",
"ec2:CreateRoute",
"ec2:CreateRouteTable",
"ec2:CreateNatGateway",
"ec2:CreateTransitGatewayRouteTable",
"ec2:CreateTransitGatewayVpcAttachment",
"ec2:CreateTransitGatewayRoute",
"ec2:CreateNetworkInterface",
"ec2:CreateNetworkInsightsPath"
],
"Resource": [
"arn:aws:ec2:*:*:network-acl/*",
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:route-table/*",
"arn:aws:ec2:*:*:natgateway/*",
"arn:aws:ec2:*:*:transit-gateway/*",
"arn:aws:ec2:*:*:transit-gateway-route-table/*",
"arn:aws:ec2:*:*:transit-gateway-attachment/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:network-insights-path/*",
"arn:aws:ec2:*:*:vpc/*",
"arn:aws:ec2:*:*:elastic-ip/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"ec2:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "AllowCreateTGWVpcAttachmentSameOrg",
"Effect": "Allow",
"Action": [
"ec2:CreateTransitGatewayVpcAttachment"
],
"Resource": [
"arn:aws:ec2:*:*:transit-gateway/*",
"arn:aws:ec2:*:*:vpc/*",
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:transit-gateway-attachment/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceOrgID": "${aws:PrincipalOrgID}"
}
}
},
{
"Sid": "CFNProvisionNetworking",
"Effect": "Allow",
"Action": [
"ec2:CreateInternetGateway",
"ec2:CreateVpc",
"ec2:CreateTransitGateway"
],
"Resource": [
"arn:aws:ec2:*:*:internet-gateway/*",
"arn:aws:ec2:*:*:vpc/*",
"arn:aws:ec2:*:*:transit-gateway/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreatePermissionsByRequestTagNetworking",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkAcl",
"ec2:CreateSubnet",
"ec2:CreateRouteTable"
],
"Resource": [
"arn:aws:ec2:*:*:network-acl/*",
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:route-table/*",
"arn:aws:ec2:*:*:vpc/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreatePermissionsByRequestTagRouting",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkAclEntry",
"ec2:CreateRoute"
],
"Resource": [
"arn:aws:ec2:*:*:network-acl/*",
"arn:aws:ec2:*:*:route-table/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreatePermissionsByRequestTagNAT",
"Effect": "Allow",
"Action": [
"ec2:CreateNatGateway"
],
"Resource": [
"arn:aws:ec2:*:*:natgateway/*",
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:elastic-ip/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreatePermissionsByRequestTagTransitGateway",
"Effect": "Allow",
"Action": [
"ec2:CreateTransitGatewayRouteTable",
"ec2:CreateTransitGatewayRoute"
],
"Resource": [
"arn:aws:ec2:*:*:transit-gateway/*",
"arn:aws:ec2:*:*:transit-gateway-route-table/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreatePermissionsByRequestTagTGWAttachment",
"Effect": "Allow",
"Action": [
"ec2:CreateTransitGatewayVpcAttachment"
],
"Resource": [
"arn:aws:ec2:*:*:transit-gateway/*",
"arn:aws:ec2:*:*:transit-gateway-attachment/*",
"arn:aws:ec2:*:*:vpc/*",
"arn:aws:ec2:*:*:subnet/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreatePermissionsByRequestTagNetworkInterface",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface"
],
"Resource": [
"arn:aws:ec2:*:*:network-interface/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "DeleteENI",
"Effect": "Allow",
"Action": [
"ec2:DeleteNetworkInterface"
],
"Resource": [
"arn:aws:ec2:*:*:network-interface/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreatePermissionsByRequestTagInsights",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInsightsPath"
],
"Resource": [
"arn:aws:ec2:*:*:network-insights-path/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "EC2TagCFN",
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": [
"arn:aws:ec2:*:*:transit-gateway/*",
"arn:aws:ec2:*:*:transit-gateway-policy-table/*",
"arn:aws:ec2:*:*:transit-gateway-connect-peer/*",
"arn:aws:ec2:*:*:transit-gateway-route-table/*",
"arn:aws:ec2:*:*:transit-gateway-attachment/*",
"arn:aws:ec2:*:*:internet-gateway/*",
"arn:aws:ec2:*:*:natgateway/*",
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:network-acl/*",
"arn:aws:ec2:*:*:route-table/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:network-insights-path/*",
"arn:aws:ec2:*:*:network-insights-access-scope-analysis/*",
"arn:aws:ec2:*:*:network-insights-access-scope/*",
"arn:aws:ec2:*:*:launch-template/*",
"arn:aws:ec2:*:*:elastic-ip/*",
"arn:aws:ec2:*:*:network-insights-analysis/*",
"arn:aws:ec2:*:*:vpc/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService",
"ec2:CreateAction": [
"CreateTransitGatewayVpcAttachment",
"CreateTransitGatewayRouteTableAnnouncement",
"CreateTransitGatewayRouteTable",
"CreateTransitGatewayRoute",
"CreateTransitGatewayPrefixListReference",
"CreateTransitGatewayPolicyTable",
"CreateTransitGatewayPeeringAttachment",
"CreateTransitGatewayConnectPeer",
"CreateTransitGatewayConnect",
"CreateTransitGateway",
"CreateInternetGateway",
"CreateNatGateway",
"CreateSubnet",
"CreateNetworkAcl",
"CreateRouteTable",
"CreateNetworkInterface",
"CreateNetworkInsightsPath",
"CreateNetworkInsightsAccessScope",
"CreateLaunchTemplate",
"AllocateAddress",
"StartNetworkInsightsAnalysis",
"CreateVpc"
]
}
}
},
{
"Sid": "deployerWorkload",
"Effect": "Allow",
"Action": [
"ssm:GetParameters"
],
"Resource": [
"arn:aws:ssm:*:*:parameter/network-migration/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
}
}
},
{
"Sid": "putParameter",
"Effect": "Allow",
"Action": [
"ssm:PutParameter",
"ssm:AddTagsToResource"
],
"Resource": [
"arn:aws:ssm:*:*:parameter/network-migration/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService",
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "deleteParameter",
"Effect": "Allow",
"Action": [
"ssm:DeleteParameter",
"ssm:DeleteResourcePolicy",
"ssm:ListTagsForResource"
],
"Resource": [
"arn:aws:ssm:*:*:parameter/network-migration/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "ramResourceSharing",
"Effect": "Allow",
"Action": [
"ssm:PutResourcePolicy",
"ssm:GetResourcePolicies"
],
"Resource": [
"arn:aws:ssm:*:*:parameter/network-migration/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
}
}
},
{
"Sid": "ramTagResource",
"Effect": "Allow",
"Action": [
"ram:TagResource"
],
"Resource": "arn:aws:ram:*:*:resource-share/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService",
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreateResourceShareTransitGateway",
"Effect": "Allow",
"Action": [
"ram:CreateResourceShare"
],
"Resource": "arn:aws:ram:*:*:resource-share/*",
"Condition": {
"Bool": {
"ram:RequestedAllowsExternalPrincipals": "false"
},
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "AssociateResourceShare",
"Effect": "Allow",
"Action": [
"ram:AssociateResourceShare"
],
"Resource": "arn:aws:ram:*:*:resource-share/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService",
"ram:RequestedResourceType": [
"ec2:TransitGateway",
"ssm:Parameter"
]
}
}
},
{
"Sid": "CreateResourceShareWithResourceTag",
"Effect": "Allow",
"Action": [
"ram:DeleteResourceShare",
"ram:DisassociateResourceShare",
"ram:UpdateResourceShare"
],
"Resource": "arn:aws:ram:*:*:resource-share/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "AllowGetResourceShares",
"Effect": "Allow",
"Action": [
"ram:GetResourceShares"
],
"Resource": "arn:aws:ram:*:*:resource-share/*"
},
{
"Sid": "CreateCustomResourceLogGroup",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:log-group:/aws/lambda/network-migration-modify-tgw*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
}
}
},
{
"Sid": "CreateCustomResourceLambda",
"Effect": "Allow",
"Action": [
"lambda:CreateFunction",
"lambda:TagResource"
],
"Resource": [
"arn:aws:lambda:*:*:function:network-migration*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService",
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "GetCustomResource",
"Effect": "Allow",
"Action": [
"lambda:GetFunction",
"lambda:ListTags"
],
"Resource": [
"arn:aws:lambda:*:*:function:network-migration*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
}
}
},
{
"Sid": "OperationsCustomResourceLambda",
"Effect": "Allow",
"Action": [
"lambda:AddPermission",
"lambda:DeleteFunction",
"lambda:GetFunctionConfiguration",
"lambda:InvokeFunction"
],
"Resource": [
"arn:aws:lambda:*:*:function:network-migration*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreateRoleCustomResource",
"Effect": "Allow",
"Action": [
"iam:CreateRole",
"iam:TagRole"
],
"Resource": "arn:aws:iam::*:role/Nmd*modifyTransitGateway*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService",
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "PassGetRoleCustomResource",
"Effect": "Allow",
"Action": [
"iam:GetRole"
],
"Resource": "arn:aws:iam::*:role/Nmd*modifyTransitGateway*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
}
}
},
{
"Sid": "PassRoleCustomResource",
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": "arn:aws:iam::*:role/Nmd*modifyTransitGateway*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"iam:PassedToService": "lambda.amazonaws.com"
}
}
},
{
"Sid": "OperationsRoleCustomResource",
"Effect": "Allow",
"Action": [
"iam:DeleteRole",
"iam:DeleteRolePolicy",
"iam:DetachRolePolicy",
"iam:GetRolePolicy",
"iam:ListRolePolicies",
"iam:ListAttachedRolePolicies"
],
"Resource": "arn:aws:iam::*:role/Nmd*modifyTransitGateway*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "AttachCustomResourceRole",
"Effect": "Allow",
"Action": [
"iam:AttachRolePolicy"
],
"Resource": "arn:aws:iam::*:role/Nmd*modifyTransitGateway*",
"Condition": {
"ArnEquals": {
"iam:PolicyARN": [
"arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole",
"arn:aws:iam::aws:policy/AWSApplicationMigrationNetworkMigrationCustomResource"
]
},
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "MGNCFNBasedResourcesProvision",
"Effect": "Allow",
"Action": [
"ec2:AcceptTransitGatewayVpcAttachment",
"ec2:AssociateNatGatewayAddress",
"ec2:AssociateRouteTable",
"ec2:AssociateSubnetCidrBlock",
"ec2:AssociateTransitGatewayRouteTable",
"ec2:AssociateVpcCidrBlock",
"ec2:AttachInternetGateway",
"ec2:AttachVolume",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:DeleteInternetGateway",
"ec2:DeleteLaunchTemplate",
"ec2:DeleteLaunchTemplateVersions",
"ec2:DeleteNatGateway",
"ec2:DeleteNetworkAcl",
"ec2:DeleteNetworkAclEntry",
"ec2:DeleteNetworkInsightsAnalysis",
"ec2:DeleteNetworkInsightsPath",
"ec2:DeleteNetworkInterface",
"ec2:DeleteRoute",
"ec2:DeleteRouteTable",
"ec2:DeleteSecurityGroup",
"ec2:DeleteSnapshot",
"ec2:DeleteSubnet",
"ec2:DeleteTransitGateway",
"ec2:DeleteTransitGatewayRoute",
"ec2:DeleteTransitGatewayRouteTable",
"ec2:DeleteTransitGatewayVpcAttachment",
"ec2:DeleteVolume",
"ec2:DeleteVpc",
"ec2:DetachInternetGateway",
"ec2:DetachVolume",
"ec2:DisableTransitGatewayRouteTablePropagation",
"ec2:DisassociateNatGatewayAddress",
"ec2:DisassociateRouteTable",
"ec2:DisassociateTransitGatewayRouteTable",
"ec2:EnableTransitGatewayRouteTablePropagation",
"ec2:ModifyInstanceAttribute",
"ec2:ModifyLaunchTemplate",
"ec2:ModifySubnetAttribute",
"ec2:ModifyTransitGateway",
"ec2:ModifyTransitGatewayVpcAttachment",
"ec2:ModifyVolume",
"ec2:ModifyVpcAttribute",
"ec2:RejectTransitGatewayVpcAttachment",
"ec2:ReleaseAddress",
"ec2:ReplaceNetworkAclAssociation",
"ec2:ReplaceNetworkAclEntry",
"ec2:ReplaceRoute",
"ec2:ReplaceTransitGatewayRoute",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress",
"ec2:SearchTransitGatewayRoutes",
"ec2:StartNetworkInsightsAnalysis"
],
"Resource": [
"arn:aws:ec2:*:*:transit-gateway/*",
"arn:aws:ec2:*:*:transit-gateway-policy-table/*",
"arn:aws:ec2:*:*:transit-gateway-connect-peer/*",
"arn:aws:ec2:*:*:transit-gateway-route-table/*",
"arn:aws:ec2:*:*:transit-gateway-attachment/*",
"arn:aws:ec2:*:*:internet-gateway/*",
"arn:aws:ec2:*:*:natgateway/*",
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:network-acl/*",
"arn:aws:ec2:*:*:route-table/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:network-insights-path/*",
"arn:aws:ec2:*:*:network-insights-access-scope-analysis/*",
"arn:aws:ec2:*:*:network-insights-access-scope/*",
"arn:aws:ec2:*:*:launch-template/*",
"arn:aws:ec2:*:*:elastic-ip/*",
"arn:aws:ec2:*:*:network-insights-analysis/*",
"arn:aws:ec2:*:*:vpc/*",
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*:*:snapshot/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:security-group-rule/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "CreateTransitGatewaySLR",
"Effect": "Allow",
"Action": [
"iam:CreateServiceLinkedRole"
],
"Resource": [
"arn:aws:iam::*:role/aws-service-role/transitgateway.amazonaws.com/AWSServiceRoleForVPCTransitGateway"
],
"Condition": {
"StringEquals": {
"iam:AWSServiceName": "transitgateway.amazonaws.com"
}
}
},
{
"Sid": "AnalyzerENIResourceTag",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface"
],
"Resource": [
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:security-group/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "Ec2ViaCfnSecurityGroupsForVpcRead",
"Effect": "Allow",
"Action": [
"ec2:GetSecurityGroupsForVpc"
],
"Resource": "arn:aws:ec2:*:*:vpc/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "ElbViaCfnListenerCreateOnLoadBalancer",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:CreateListener"
],
"Resource": [
"arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*",
"arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
],
"elasticloadbalancing:ListenerProtocol": [
"HTTP",
"TCP",
"TCP_UDP",
"UDP"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "ElbViaCfnListenerOperationsWrite",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:DeleteListener",
"elasticloadbalancing:ModifyListenerAttributes"
],
"Resource": [
"arn:aws:elasticloadbalancing:*:*:listener/app/*",
"arn:aws:elasticloadbalancing:*:*:listener/net/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "ElbViaCfnLoadBalancerAndTargetGroupOperationsWrite",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:DeleteLoadBalancer",
"elasticloadbalancing:DeleteTargetGroup",
"elasticloadbalancing:ModifyLoadBalancerAttributes",
"elasticloadbalancing:ModifyTargetGroupAttributes"
],
"Resource": [
"arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*",
"arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*",
"arn:aws:elasticloadbalancing:*:*:targetgroup/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "ElbViaCfnLoadBalancerCreateWithRequestTag",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:CreateLoadBalancer"
],
"Resource": [
"arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*",
"arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService",
"elasticloadbalancing:Scheme": "internal"
}
}
},
{
"Sid": "ElbViaCfnOperationsReadOnly",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:DescribeCapacityReservation",
"elasticloadbalancing:DescribeListenerAttributes",
"elasticloadbalancing:DescribeListeners",
"elasticloadbalancing:DescribeLoadBalancerAttributes",
"elasticloadbalancing:DescribeLoadBalancers",
"elasticloadbalancing:DescribeTags",
"elasticloadbalancing:DescribeTargetGroupAttributes",
"elasticloadbalancing:DescribeTargetGroups",
"elasticloadbalancing:DescribeTargetHealth"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
}
}
},
{
"Sid": "ElbViaCfnTagOnCreate",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:AddTags"
],
"Resource": [
"arn:aws:elasticloadbalancing:*:*:listener/app/*",
"arn:aws:elasticloadbalancing:*:*:listener/net/*",
"arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*",
"arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*",
"arn:aws:elasticloadbalancing:*:*:targetgroup/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService",
"elasticloadbalancing:CreateAction": [
"CreateListener",
"CreateLoadBalancer",
"CreateTargetGroup"
]
}
}
},
{
"Sid": "ElbViaCfnTargetGroupCreateWithRequestTag",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:CreateTargetGroup"
],
"Resource": "arn:aws:elasticloadbalancing:*:*:targetgroup/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"cloudformation.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "IamElbServiceLinkedRoleCreate",
"Effect": "Allow",
"Action": [
"iam:CreateServiceLinkedRole"
],
"Resource": "arn:aws:iam::*:role/aws-service-role/elasticloadbalancing.amazonaws.com/AWSServiceRoleForElasticLoadBalancing",
"Condition": {
"StringEquals": {
"iam:AWSServiceName": "elasticloadbalancing.amazonaws.com"
}
}
}
]
}
Version history
Current version v8, edited by AWS on 2026-11-10. Version history is recorded from 2026-11-11. Earlier versions are in the IAM console under Policy versions.
Attach snippets
AWS CLI
aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AWSApplicationMigrationNetworkMigrationMultiAccount
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AWSApplicationMigrationNetworkMigrationMultiAccount
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AWSApplicationMigrationNetworkMigrationMultiAccountCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AWSApplicationMigrationNetworkMigrationMultiAccountTerraform
resource "aws_iam_role_policy_attachment" "awsapplicationmigrationnetworkmigrationmultiaccount" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/AWSApplicationMigrationNetworkMigrationMultiAccount"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("AWSApplicationMigrationNetworkMigrationMultiAccount"),
);Sources
Pending editorial review. No editorial sources are listed yet.