AWSTransformServerMigrationAgentPolicy
Summary
Grants permissions for AWS Transform to perform server migration operations including replication, testing, and cutover using AWS Application Migration Service
Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.
Identity
- ARN
arn:aws:iam::aws:policy/AWSTransformServerMigrationAgentPolicy- Default version
- v4
- Created
- Last edited
- Services
- cloudwatch, ec2, elasticloadbalancing, fsx, iam, kms, mgn, organizations, s3, s3-outposts, secretsmanager, servicequotas, ssm, sts
Control-plane actions (144)
By access level: 40 List, 31 Read, 4 Tagging, 69 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| EC2 | 34 of 834 | 14 List, 3 Read, 1 Tagging, 16 Write; 34 restricted, 34 conditional | ec2:AttachVolume, ec2:AuthorizeSecurityGroupEgress, ec2:CreateLaunchTemplateVersion, ec2:CreateSecurityGroup, ec2:CreateSnapshot, ec2:CreateTags, ec2:CreateVolume, ec2:DeleteLaunchTemplateVersions, ec2:DeleteVolume, ec2:DescribeAccountAttributes, ec2:DescribeAvailabilityZones, ec2:DescribeImages and 22 more |
| ELB | 4 of 77 | 3 Read, 1 Write; 4 restricted, 4 conditional | elasticloadbalancing:DescribeTags, elasticloadbalancing:DescribeTargetGroups, elasticloadbalancing:DescribeTargetHealth, elasticloadbalancing:RegisterTargets |
| FSx | 8 of 56 | 4 Read, 1 Tagging, 3 Write; 8 restricted, 8 conditional | fsx:CreateSnapshot, fsx:CreateVolume, fsx:DeleteVolume, fsx:DescribeFileSystems, fsx:DescribeSnapshots, fsx:DescribeStorageVirtualMachines, fsx:DescribeVolumes, fsx:TagResource |
| IAM | 1 of 190 | 1 Write; 1 restricted, 1 conditional | iam:PassRole |
| KMS | 3 of 58 | 1 Read, 2 Write; 3 restricted, 3 conditional | kms:Decrypt, kms:DescribeKey, kms:GenerateDataKey |
| MGN | 66 of 147 | 18 List, 8 Read, 1 Tagging, 39 Write; 66 restricted, 66 conditional | mgn:AssociateApplications, mgn:AssociateSourceServers, mgn:ChangeServerLifecycleState, mgn:CreateApplication, mgn:CreateRemoteSourceAction, mgn:CreateWave, mgn:DeleteApplication, mgn:DeleteRemoteSourceAction, mgn:DeleteWave, mgn:DescribeJobLogItems, mgn:DescribeJobs, mgn:DescribeLaunchConfigurationTemplates and 54 more |
| Organizations | 1 of 63 | 1 List; 0 restricted, 0 conditional | organizations:ListAccounts |
| S3 | 8 of 155 | 1 List, 4 Read, 1 Tagging, 2 Write; 8 restricted, 8 conditional | s3:CreateBucket, s3:GetBucketLocation, s3:GetBucketPublicAccessBlock, s3:GetBucketTagging, s3:GetObjectAttributes, s3:ListBucketMultipartUploads, s3:PutBucketTagging, s3:PutEncryptionConfiguration |
| S3 Outposts | 1 of 48 | 1 List; 1 restricted, 1 conditional | s3-outposts:ListOutpostsWithS3 |
| Secrets Manager | 1 of 27 | 1 List; 1 restricted, 1 conditional | secretsmanager:ListSecrets |
| Service Quotas | 1 of 26 | 1 Read; 1 restricted, 1 conditional | servicequotas:GetServiceQuota |
| Systems Manager | 15 of 164 | 4 List, 7 Read, 4 Write; 15 restricted, 15 conditional | ssm:DeleteParameters, ssm:DescribeDocument, ssm:DescribeInstanceInformation, ssm:GetAutomationExecution, ssm:GetCommandInvocation, ssm:GetDocument, ssm:GetParameter, ssm:GetParameters, ssm:ListCommandInvocations, ssm:ListCommands, ssm:ListDocumentVersions, ssm:ListDocuments and 3 more |
| STS | 1 of 16 | 1 Write; 1 restricted, 1 conditional | sts:AssumeRole |
EC2: 34 actions
- ec2:AttachVolume (Write)
- ec2:AuthorizeSecurityGroupEgress (Write)
- ec2:CreateLaunchTemplateVersion (Write)
- ec2:CreateSecurityGroup (Write)
- ec2:CreateSnapshot (Write)
- ec2:CreateTags (Tagging)
- ec2:CreateVolume (Write)
- ec2:DeleteLaunchTemplateVersions (Write)
- ec2:DeleteVolume (Write)
- ec2:DescribeAccountAttributes (List)
- ec2:DescribeAvailabilityZones (List)
- ec2:DescribeImages (List)
- ec2:DescribeInstanceStatus (List)
- ec2:DescribeInstanceTypeOfferings (List)
- ec2:DescribeInstanceTypes (List)
- ec2:DescribeInstances (List)
- ec2:DescribeLaunchTemplateVersions (List)
- ec2:DescribeLaunchTemplates (List)
- ec2:DescribeSecurityGroups (List)
- ec2:DescribeSnapshots (List)
- ec2:DescribeSubnets (List)
- ec2:DescribeVolumes (List)
- ec2:DescribeVpcs (List)
- ec2:DetachVolume (Write)
- ec2:GetEbsDefaultKmsKeyId (Read)
- ec2:GetEbsEncryptionByDefault (Read)
- ec2:GetSubnetCidrReservations (Read)
- ec2:ModifyInstanceAttribute (Write)
- ec2:ModifyLaunchTemplate (Write)
- ec2:RevokeSecurityGroupEgress (Write)
- ec2:RunInstances (Write)
- ec2:StartInstances (Write)
- ec2:StopInstances (Write)
- ec2:TerminateInstances (Write)
ELB: 4 actions
- elasticloadbalancing:DescribeTags (Read)
- elasticloadbalancing:DescribeTargetGroups (Read)
- elasticloadbalancing:DescribeTargetHealth (Read)
- elasticloadbalancing:RegisterTargets (Write)
FSx: 8 actions
- fsx:CreateSnapshot (Write)
- fsx:CreateVolume (Write)
- fsx:DeleteVolume (Write)
- fsx:DescribeFileSystems (Read)
- fsx:DescribeSnapshots (Read)
- fsx:DescribeStorageVirtualMachines (Read)
- fsx:DescribeVolumes (Read)
- fsx:TagResource (Tagging)
IAM: 1 actions
- iam:PassRole (Write)
KMS: 3 actions
- kms:Decrypt (Write)
- kms:DescribeKey (Read)
- kms:GenerateDataKey (Write)
MGN: 66 actions
- mgn:AssociateApplications (Write)
- mgn:AssociateSourceServers (Write)
- mgn:ChangeServerLifeCycleState (Write)
- mgn:CreateApplication (Write)
- mgn:CreateRemoteSourceAction (Write)
- mgn:CreateWave (Write)
- mgn:DeleteApplication (Write)
- mgn:DeleteRemoteSourceAction (Write)
- mgn:DeleteWave (Write)
- mgn:DescribeJobLogItems (Read)
- mgn:DescribeJobs (List)
- mgn:DescribeLaunchConfigurationTemplates (List)
- mgn:DescribeReplicationConfigurationTemplates (List)
- mgn:DescribeReplicationServerAssociationsForMgn (Read)
- mgn:DescribeSourceServers (List)
- mgn:DescribeVcenterClients (List)
- mgn:DisassociateApplications (Write)
- mgn:DisassociateSourceServers (Write)
- mgn:FinalizeCutover (Write)
- mgn:GetAccountSettings (Read)
- mgn:GetLaunchConfiguration (Read)
- mgn:GetLaunchConfigurationDefaults (Read)
- mgn:GetReplicationConfiguration (Read)
- mgn:ListApplications (List)
- mgn:ListConnectors (Read)
- mgn:ListExportErrors (List)
- mgn:ListExports (List)
- mgn:ListImportErrors (List)
- mgn:ListImportFileEnrichments (List)
- mgn:ListImports (List)
- mgn:ListRemoteSourceActionInvocationResults (List)
- mgn:ListRemoteSourceActionInvocations (List)
- mgn:ListRemoteSourceActionJobs (List)
- mgn:ListRemoteSourceActions (List)
- mgn:ListSourceServerActions (List)
- mgn:ListTagsForResource (Read)
- mgn:ListTemplateActions (List)
- mgn:ListWaves (List)
- mgn:MarkAsArchived (Write)
- mgn:PauseReplication (Write)
- mgn:PutSourceServerAction (Write)
- mgn:PutTemplateAction (Write)
- mgn:RegisterAgentForMgn (Write)
- mgn:RemoveSourceServerAction (Write)
- mgn:RemoveTemplateAction (Write)
- mgn:ResumeReplication (Write)
- mgn:StartCutover (Write)
- mgn:StartExport (Write)
- mgn:StartImport (Write)
- mgn:StartImportFileEnrichment (Write)
- mgn:StartRemoteSourceActionJob (Write)
- mgn:StartReplication (Write)
- mgn:StartTest (Write)
- mgn:StopReplication (Write)
- mgn:TagResource (Tagging)
- mgn:TerminateTargetInstances (Write)
- mgn:UpdateAccountSettings (Write)
- mgn:UpdateApplication (Write)
- mgn:UpdateLaunchConfiguration (Write)
- mgn:UpdateLaunchConfigurationDefaults (Write)
- mgn:UpdateLaunchConfigurationTemplate (Write)
- mgn:UpdateRemoteSourceAction (Write)
- mgn:UpdateReplicationConfiguration (Write)
- mgn:UpdateReplicationConfigurationTemplate (Write)
- mgn:UpdateSourceServer (Write)
- mgn:UpdateWave (Write)
Organizations: 1 actions
- organizations:ListAccounts (List)
S3: 8 actions
- s3:CreateBucket (Write)
- s3:GetBucketLocation (Read)
- s3:GetBucketPublicAccessBlock (Read)
- s3:GetBucketTagging (Read)
- s3:GetObjectAttributes (Read)
- s3:ListBucketMultipartUploads (List)
- s3:PutBucketTagging (Tagging)
- s3:PutEncryptionConfiguration (Write)
S3 Outposts: 1 actions
- s3-outposts:ListOutpostsWithS3 (List)
Secrets Manager: 1 actions
- secretsmanager:ListSecrets (List)
Service Quotas: 1 actions
- servicequotas:GetServiceQuota (Read)
Systems Manager: 15 actions
- ssm:DeleteParameters (Write)
- ssm:DescribeDocument (Read)
- ssm:DescribeInstanceInformation (Read)
- ssm:GetAutomationExecution (Read)
- ssm:GetCommandInvocation (Read)
- ssm:GetDocument (Read)
- ssm:GetParameter (Read)
- ssm:GetParameters (Read)
- ssm:ListCommandInvocations (List)
- ssm:ListCommands (List)
- ssm:ListDocumentVersions (List)
- ssm:ListDocuments (List)
- ssm:PutParameter (Write)
- ssm:SendCommand (Write)
- ssm:StartAutomationExecution (Write)
STS: 1 actions
- sts:AssumeRole (Write)
Data-plane actions (8)
By access level: 2 List, 3 Read, 3 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| CloudWatch | 1 of 5 | 1 Read; 1 restricted, 1 conditional | cloudwatch:GetMetricData |
| S3 | 7 of 25 | 2 List, 2 Read, 3 Write; 7 restricted, 6 conditional | s3:AbortMultipartUpload, s3:DeleteObject, s3:GetObject, s3:GetObjectVersion, s3:ListBucket, s3:ListMultipartUploadParts, s3:PutObject |
CloudWatch: 1 actions
- cloudwatch:GetMetricData (Read)
S3: 7 actions
- s3:AbortMultipartUpload (Write)
- s3:DeleteObject (Write)
- s3:GetObject (Read)
- s3:GetObjectVersion (Read)
- s3:ListBucket (List)
- s3:ListMultipartUploadParts (List)
- s3:PutObject (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 76 write, tagging or permissions-management actions, short of full control of any service.
- Grants data-plane write actions on a data store, but only for scoped resources or under conditions.
- Grants iam:PassRole, but only for scoped roles or under conditions (for example iam:PassedToService).
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": "CloudWatchViaMgnOperationsReadOnly",
"Effect": "Allow",
"Action": [
"cloudwatch:GetMetricData"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "Ec2LaunchTemplateOperationsWrite",
"Effect": "Allow",
"Action": [
"ec2:CreateLaunchTemplateVersion",
"ec2:ModifyLaunchTemplate"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:ResourceTag/AWSApplicationMigrationServiceManaged": "false"
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "Ec2OperationsReadOnly",
"Effect": "Allow",
"Action": [
"ec2:DescribeVpcs",
"ec2:DescribeSubnets",
"ec2:DescribeInstanceTypes",
"ec2:DescribeInstanceTypeOfferings",
"ec2:DescribeSecurityGroups",
"ec2:DescribeLaunchTemplateVersions"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "Ec2TagOnCreateServerMigration",
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": [
"arn:aws:ec2:*:*:launch-template/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:security-group-rule/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/CreatedBy": "AWSApplicationMigrationService",
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"ec2:CreateAction": [
"CreateLaunchTemplate",
"CreateSecurityGroup"
]
}
}
},
{
"Sid": "Ec2ViaMgnInstanceLifecycleOperationsWrite",
"Effect": "Allow",
"Action": [
"ec2:AttachVolume",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:CreateSnapshot",
"ec2:DeleteLaunchTemplateVersions",
"ec2:DeleteVolume",
"ec2:DetachVolume",
"ec2:ModifyInstanceAttribute",
"ec2:RevokeSecurityGroupEgress",
"ec2:RunInstances",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:TerminateInstances"
],
"Resource": [
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:launch-template/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:volume/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedBy": "AWSTransform"
}
}
},
{
"Sid": "Ec2ViaMgnInstanceProvisionCreateWithRequestTag",
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup",
"ec2:CreateSnapshot",
"ec2:CreateVolume",
"ec2:RunInstances"
],
"Resource": [
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*::snapshot/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:RequestTag/CreatedBy": "AWSTransform",
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "Ec2ViaMgnLaunchOnSharedVpc",
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup",
"ec2:RunInstances"
],
"Resource": [
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:vpc/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceOrgID": "${aws:PrincipalOrgID}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedFor": "AWSTransform"
}
}
},
{
"Sid": "Ec2ViaMgnLaunchOnWorkspaceVpc",
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup",
"ec2:RunInstances"
],
"Resource": [
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:vpc/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedFor": "AWSTransform"
}
}
},
{
"Sid": "Ec2ViaMgnOperationsReadOnly",
"Effect": "Allow",
"Action": [
"ec2:DescribeAccountAttributes",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeImages",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeSnapshots",
"ec2:DescribeSubnets",
"ec2:GetSubnetCidrReservations",
"ec2:DescribeVolumes",
"ec2:GetEbsEncryptionByDefault",
"ec2:GetEbsDefaultKmsKeyId"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "Ec2ViaMgnCreateSecurityGroupOnAmsVpc",
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup"
],
"Resource": "arn:aws:ec2:*:*:vpc/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "Ec2ViaMgnRunInstancesOnAmsSubnet",
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Resource": [
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:network-interface/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "Ec2ViaMgnRunInstancesOnImage",
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Resource": "arn:aws:ec2:*::image/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "Ec2ViaMgnRunInstancesOnSg",
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Resource": "arn:aws:ec2:*:*:security-group/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "Ec2ViaMgnSecurityGroupCreate",
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup"
],
"Resource": "arn:aws:ec2:*:*:security-group/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"Null": {
"aws:RequestTag/AWSApplicationMigrationServiceManaged": "false"
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "Ec2ViaMgnTagOnCreateSecurityGroup",
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": "arn:aws:ec2:*:*:security-group/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"Null": {
"aws:RequestTag/AWSApplicationMigrationServiceManaged": "false"
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"ec2:CreateAction": "CreateSecurityGroup"
}
}
},
{
"Sid": "Ec2ViaMgnTagOnCreate",
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": [
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*::snapshot/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:RequestTag/CreatedBy": "AWSTransform",
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"ec2:CreateAction": [
"CreateSecurityGroup",
"CreateSnapshot",
"CreateVolume",
"RunInstances"
]
}
}
},
{
"Sid": "Ec2ViaMgnVolumeFromSnapshotCreate",
"Effect": "Allow",
"Action": [
"ec2:CreateVolume"
],
"Resource": "arn:aws:ec2:*::snapshot/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedBy": "AWSTransform",
"ec2:Owner": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "ElbOperationsReadOnly",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:DescribeTags",
"elasticloadbalancing:DescribeTargetGroups",
"elasticloadbalancing:DescribeTargetHealth"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "ElbTargetGroupRegisterTargetsWithResourceTag",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:RegisterTargets"
],
"Resource": "arn:aws:elasticloadbalancing:*:*:targetgroup/*/*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/CreatedBy": "AWSApplicationMigrationService"
}
}
},
{
"Sid": "FsxOperationsReadOnly",
"Effect": "Allow",
"Action": [
"fsx:DescribeFileSystems",
"fsx:DescribeStorageVirtualMachines"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "FsxViaMgnDescribeOperations",
"Effect": "Allow",
"Action": [
"fsx:DescribeVolumes",
"fsx:DescribeSnapshots"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "FsxViaMgnCreateVolume",
"Effect": "Allow",
"Action": "fsx:CreateVolume",
"Resource": [
"arn:aws:fsx:*:*:volume/*/*",
"arn:aws:fsx:*:*:storage-virtual-machine/*/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"Null": {
"aws:RequestTag/AWSApplicationMigrationServiceManaged": "false"
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "FsxViaMgnDeleteVolumeAndTag",
"Effect": "Allow",
"Action": [
"fsx:DeleteVolume",
"fsx:TagResource"
],
"Resource": "arn:aws:fsx:*:*:volume/*/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"Null": {
"aws:ResourceTag/AWSApplicationMigrationServiceManaged": "false"
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "FsxViaMgnCreateSnapshot",
"Effect": "Allow",
"Action": "fsx:CreateSnapshot",
"Resource": [
"arn:aws:fsx:*:*:snapshot/*/*",
"arn:aws:fsx:*:*:volume/*/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"Null": {
"aws:RequestTag/AWSApplicationMigrationServiceManaged": "false"
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "IamViaMgnEc2PassRole",
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": [
"arn:aws:iam::*:role/service-role/AWSApplicationMigrationConversionServerRole",
"arn:aws:iam::*:role/service-role/AWSApplicationMigrationLaunchInstanceWithDrsRole",
"arn:aws:iam::*:role/service-role/AWSApplicationMigrationLaunchInstanceWithSsmRole"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"iam:PassedToService": "ec2.amazonaws.com"
}
}
},
{
"Sid": "KmsS3EncryptionOperationsServerMigration",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:DescribeKey",
"kms:GenerateDataKey"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/EncryptionKeyId}",
"Condition": {
"StringLike": {
"kms:ViaService": "s3.*.amazonaws.com"
}
}
},
{
"Sid": "MgnAccountSettingsOperations",
"Effect": "Allow",
"Action": [
"mgn:GetAccountSettings",
"mgn:RegisterAgentForMgn",
"mgn:UpdateAccountSettings"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "MgnAppWaveCreate",
"Effect": "Allow",
"Action": [
"mgn:CreateApplication",
"mgn:CreateRemoteSourceAction",
"mgn:CreateWave"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:RequestTag/CreatedBy": "AWSTransform",
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "MgnAppWaveServerTagOperationsWrite",
"Effect": "Allow",
"Action": [
"mgn:TagResource"
],
"Resource": [
"arn:aws:mgn:*:*:application/*",
"arn:aws:mgn:*:*:source-server/*",
"arn:aws:mgn:*:*:wave/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:RequestTag/CreatedBy": "AWSTransform",
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/CreatedBy": "AWSTransform"
}
}
},
{
"Sid": "MgnImportExportOperationWrite",
"Effect": "Allow",
"Action": [
"mgn:StartExport",
"mgn:StartImport",
"mgn:StartImportFileEnrichment"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "MgnImportExportTagOperationsWrite",
"Effect": "Allow",
"Action": [
"mgn:TagResource"
],
"Resource": [
"arn:aws:mgn:*:*:export/*",
"arn:aws:mgn:*:*:import/*",
"arn:aws:mgn:*:*:remote-source-action-job/*",
"arn:aws:mgn:*:*:remote-source-action/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:RequestTag/CreatedBy": "AWSTransform",
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"mgn:CreateAction": [
"StartExport",
"StartImport",
"StartRemoteSourceActionJob",
"CreateRemoteSourceAction"
]
}
}
},
{
"Sid": "MgnJobAndErrorOperationsReadOnly",
"Effect": "Allow",
"Action": [
"mgn:DescribeJobLogItems",
"mgn:ListExportErrors",
"mgn:ListImportErrors",
"mgn:ListRemoteSourceActionInvocations"
],
"Resource": [
"arn:aws:mgn:*:*:export/*",
"arn:aws:mgn:*:*:import/*",
"arn:aws:mgn:*:*:job/*",
"arn:aws:mgn:*:*:remote-source-action-job/*"
],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedBy": "AWSTransform"
}
}
},
{
"Sid": "MgnJobTagOperationsWrite",
"Effect": "Allow",
"Action": [
"mgn:TagResource"
],
"Resource": "arn:aws:mgn:*:*:job/*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedBy": "AWSTransform",
"mgn:CreateAction": [
"StartCutover",
"StartTest",
"TerminateTargetInstances"
]
}
}
},
{
"Sid": "MgnRemoteSourceActionCrossAccountOperationsWithResourceTag",
"Effect": "Allow",
"Action": [
"mgn:StartRemoteSourceActionJob"
],
"Resource": [
"arn:aws:mgn:*:*:remote-source-action/*",
"arn:aws:mgn:*:*:source-server/*"
],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceOrgID": "${aws:PrincipalOrgID}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedBy": "AWSTransform"
}
}
},
{
"Sid": "MgnRemoteSourceActionJobCreateWithRequestTag",
"Effect": "Allow",
"Action": "mgn:StartRemoteSourceActionJob",
"Resource": "arn:aws:mgn:*:*:remote-source-action-job/*",
"Condition": {
"StringEquals": {
"aws:RequestTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:RequestTag/CreatedBy": "AWSTransform",
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "MgnRemoteSourceActionConnectorOperationsWithResourceTag",
"Effect": "Allow",
"Action": [
"mgn:StartRemoteSourceActionJob"
],
"Resource": "arn:aws:mgn:*:*:connector/*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedFor": "AWSTransform"
}
}
},
{
"Sid": "MgnRemoteSourceActionOperationsWithResourceTag",
"Effect": "Allow",
"Action": [
"mgn:DeleteRemoteSourceAction",
"mgn:UpdateRemoteSourceAction"
],
"Resource": "arn:aws:mgn:*:*:remote-source-action/*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedBy": "AWSTransform"
}
}
},
{
"Sid": "MgnSourceServerLifecycleOperations",
"Effect": "Allow",
"Action": [
"mgn:ChangeServerLifecycleState",
"mgn:FinalizeCutover",
"mgn:GetReplicationConfiguration",
"mgn:ListRemoteSourceActionInvocationResults",
"mgn:ListSourceServerActions",
"mgn:ListTagsForResource",
"mgn:MarkAsArchived",
"mgn:PauseReplication",
"mgn:PutSourceServerAction",
"mgn:RemoveSourceServerAction",
"mgn:ResumeReplication",
"mgn:StartCutover",
"mgn:StartRemoteSourceActionJob",
"mgn:StartReplication",
"mgn:StartTest",
"mgn:StopReplication",
"mgn:UpdateReplicationConfiguration",
"mgn:UpdateSourceServer"
],
"Resource": [
"arn:aws:mgn:*:*:source-server/*",
"arn:aws:mgn:*:*:remote-source-action/*"
],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedBy": "AWSTransform"
}
}
},
{
"Sid": "OrganizationsOperationsReadOnlyServerMigration",
"Effect": "Allow",
"Action": [
"organizations:ListAccounts"
],
"Resource": "*"
},
{
"Sid": "PostLaunchAutomationMonitoring",
"Effect": "Allow",
"Action": [
"ssm:GetAutomationExecution"
],
"Resource": "arn:aws:ssm:*:*:automation-execution/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "S3AgentSignatureOperationsReadOnly",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::aws-application-migration-service-*/latest/source-automation-client/linux/ssaf-client/ssaf_client.sig"
},
{
"Sid": "S3OutpostsOperationsReadOnly",
"Effect": "Allow",
"Action": [
"s3-outposts:ListOutpostsWithS3"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "S3TargetBucketOperationsServerMigration",
"Effect": "Allow",
"Action": [
"s3:CreateBucket",
"s3:GetBucketLocation",
"s3:GetBucketPublicAccessBlock",
"s3:GetBucketTagging",
"s3:ListBucket",
"s3:PutBucketTagging",
"s3:PutEncryptionConfiguration"
],
"Resource": "arn:aws:s3:::transform-vmware-target-*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "S3TargetObjectOperationsServerMigration",
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:GetObjectAttributes",
"s3:GetObjectVersion",
"s3:ListBucketMultipartUploads",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::transform-vmware-target-*/*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "SecretsManagerOperationsReadOnly",
"Effect": "Allow",
"Action": [
"secretsmanager:ListSecrets"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "ServerMigrationOperationsReadOnly",
"Effect": "Allow",
"Action": [
"mgn:DescribeJobs",
"mgn:DescribeLaunchConfigurationTemplates",
"mgn:DescribeReplicationConfigurationTemplates",
"mgn:DescribeReplicationServerAssociationsForMgn",
"mgn:DescribeSourceServers",
"mgn:DescribeVcenterClients",
"mgn:GetLaunchConfiguration",
"mgn:GetLaunchConfigurationDefaults",
"mgn:ListApplications",
"mgn:ListConnectors",
"mgn:ListExports",
"mgn:ListImportFileEnrichments",
"mgn:ListImports",
"mgn:ListRemoteSourceActionJobs",
"mgn:ListRemoteSourceActions",
"mgn:ListTemplateActions",
"mgn:ListWaves"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "ServerMigrationOperationsWrite",
"Effect": "Allow",
"Action": [
"mgn:AssociateApplications",
"mgn:AssociateSourceServers",
"mgn:DeleteApplication",
"mgn:DeleteWave",
"mgn:DisassociateApplications",
"mgn:DisassociateSourceServers",
"mgn:TerminateTargetInstances",
"mgn:UpdateApplication",
"mgn:UpdateLaunchConfiguration",
"mgn:UpdateLaunchConfigurationDefaults",
"mgn:UpdateWave"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedBy": "AWSTransform"
}
}
},
{
"Sid": "ServerMigrationTemplateOperationsWrite",
"Effect": "Allow",
"Action": [
"mgn:PutTemplateAction",
"mgn:RemoveTemplateAction",
"mgn:UpdateLaunchConfigurationTemplate",
"mgn:UpdateReplicationConfigurationTemplate"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "ServiceQuotasViaMgnOperationsReadOnly",
"Effect": "Allow",
"Action": [
"servicequotas:GetServiceQuota"
],
"Resource": "arn:aws:servicequotas:*:*:vpc/L-2AFB9258",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "SsmAgentCommandOperationsReadOnly",
"Effect": "Allow",
"Action": [
"ssm:DescribeInstanceInformation",
"ssm:GetCommandInvocation",
"ssm:ListCommandInvocations",
"ssm:ListCommands"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "SsmAgentCommandOperationsWrite",
"Effect": "Allow",
"Action": [
"ssm:SendCommand"
],
"Resource": "arn:aws:ssm:*:*:managed-instance/*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedFor": "AWSTransform"
}
}
},
{
"Sid": "SsmDocumentListOperationsReadOnly",
"Effect": "Allow",
"Action": [
"ssm:ListDocuments"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "SsmDocumentOnAwsManagedOperationsReadOnly",
"Effect": "Allow",
"Action": [
"ssm:DescribeDocument",
"ssm:GetDocument",
"ssm:ListDocumentVersions"
],
"Resource": "arn:aws:ssm:*::document/AWS*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "SsmDocumentOperationsReadOnly",
"Effect": "Allow",
"Action": [
"ssm:DescribeDocument",
"ssm:GetDocument",
"ssm:ListDocumentVersions"
],
"Resource": "arn:aws:ssm:*:*:document/*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "SsmMigrationDocumentOperations",
"Effect": "Allow",
"Action": [
"ssm:GetDocument",
"ssm:SendCommand"
],
"Resource": "arn:aws:ssm:*::document/AWSMigration-RunSourceServerAction",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "SsmParameterServerMigrationOperationsWrite",
"Effect": "Allow",
"Action": [
"ssm:DeleteParameters",
"ssm:GetParameter",
"ssm:GetParameters",
"ssm:PutParameter"
],
"Resource": "arn:aws:ssm:*:*:parameter/ManagedByAWSApplicationMigrationService-*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "SsmViaMgnPostLaunchCommandAndAutomation",
"Effect": "Allow",
"Action": [
"ssm:SendCommand",
"ssm:StartAutomationExecution"
],
"Resource": [
"arn:aws:ssm:*:*:automation-definition/*:*",
"arn:aws:ssm:*:*:automation-execution/*",
"arn:aws:ssm:*:*:document/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "SsmViaMgnPostLaunchCommandAndAutomationOnAwsManaged",
"Effect": "Allow",
"Action": [
"ssm:SendCommand",
"ssm:StartAutomationExecution"
],
"Resource": [
"arn:aws:ssm:*::automation-definition/AWS*:*",
"arn:aws:ssm:*::document/AWS*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}"
}
}
},
{
"Sid": "SsmViaMgnPostLaunchSendCommandToInstances",
"Effect": "Allow",
"Action": [
"ssm:SendCommand"
],
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"Null": {
"aws:ResourceTag/AWSApplicationMigrationServiceManaged": "false"
},
"StringEquals": {
"aws:RequestedRegion": "${aws:PrincipalTag/TargetRegion}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/ATWorkspace": "${aws:PrincipalTag/WorkspaceId}",
"aws:ResourceTag/CreatedBy": "AWSTransform"
}
}
},
{
"Sid": "StsCrossAccountAssumeRole",
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": "arn:aws:iam::*:role/AWSTransformRehostSharingRole_${aws:PrincipalAccount}",
"Condition": {
"StringEquals": {
"aws:ResourceOrgID": "${aws:PrincipalOrgID}",
"sts:ExternalId": "${aws:PrincipalAccount}:workspace/${aws:PrincipalTag/WorkspaceId}"
}
}
},
{
"Sid": "StsCrossAccountAssumeRoleViaMgn",
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": "arn:aws:iam::*:role/AWSTransformRehostSharingRole_${aws:PrincipalAccount}",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"mgn.amazonaws.com"
]
},
"StringEquals": {
"aws:ResourceOrgID": "${aws:PrincipalOrgID}",
"sts:ExternalId": "${aws:PrincipalAccount}:AWSTransform"
}
}
}
]
}
Version history
Current version v4, edited by AWS on 2026-11-12.
- v3 to v4, detected 2026-11-13: 17 added, 0 removed.
Attach snippets
AWS CLI
aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AWSTransformServerMigrationAgentPolicy
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AWSTransformServerMigrationAgentPolicy
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AWSTransformServerMigrationAgentPolicyCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AWSTransformServerMigrationAgentPolicyTerraform
resource "aws_iam_role_policy_attachment" "awstransformservermigrationagentpolicy" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/AWSTransformServerMigrationAgentPolicy"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("AWSTransformServerMigrationAgentPolicy"),
);Sources
Pending editorial review. No editorial sources are listed yet.