IAM Setup
In order to use the RiverMeadow platform to migrate workloads to AWS, the platform must be granted the required IAM permissions.
- CloudFormation
- Manual
The easiest way to grant the RiverMeadow platform the required permissions is to run the RiverMeadow provided AWS CloudFormation template that will automate the creation of an IAM role in the target AWS account. The CloudFormation template can be downloaded from the RiverMeadow UI.

The AWS IAM role required by the RiverMeadow platform can also be created manually by creating the IAM role using the AWS console or automated solution like Terraform.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:AuthorizeSecurityGroupIngress",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress",
"ec2:RevokeSecurityGroupEgress"
],
"Resource": "arn:aws:ec2:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"iam:ListInstanceProfiles",
"ssm:GetParameter",
"servicequotas:ListServiceQuotas",
"mgh:CreateProgressUpdateStream",
"mgh:ImportMigrationTask",
"mgh:NotifyMigrationTaskState",
"mgh:PutResourceAttributes",
"mgh:AssociateDiscoveredResource",
"mgh:ListDiscoveredResources",
"mgh:AssociateCreatedArtifact",
"discovery:ListConfigurations"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:DescribeAvailabilityZones",
"ec2:DescribeSecurityGroups",
"ec2:DescribeVpcs",
"ec2:DescribeSubnets",
"ec2:DescribeHosts",
"ec2:DescribeImages",
"ec2:DescribeRegions",
"ec2:DescribeInstances",
"ec2:DescribeInstanceStatus",
"ec2:DescribeConversionTasks",
"ec2:DescribeVolumes",
"ec2:DescribeSnapshots",
"ec2:DescribeAddresses",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeInstanceTypeOfferings",
"ec2:DescribeInstanceTypes",
"ec2:CreateSecurityGroup",
"ec2:ModifyInstanceAttribute",
"ec2:ModifyNetworkInterfaceAttribute",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:AttachVolume",
"ec2:DetachVolume",
"ec2:DeleteVolume",
"ec2:CreateImage",
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot",
"ec2:DescribeSnapshots",
"ec2:GetConsoleScreenshot",
"ec2:MonitorInstances",
"ec2:GetConsoleOutput"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"kms:ListAliases",
"kms:DescribeKey"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"outposts:ListOutposts",
"outposts:GetOutpostInstanceTypes"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"fsx:DescribeFileSystems",
"fsx:DescribeVolumes"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:TerminateInstances",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:RunInstances"
],
"Resource": "*",
"Condition": {
"ForAllValues:StringLike": {
"ec2.ResourceTag/appenv": [
"rmmigrate-dta"
]
}
}
},
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "*"
}
]
}