AWS Server Migration Service
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

适用于 AWS SMS 的服务相关角色

AWS SMS 使用服务相关角色来获取它代表您调用其他 AWS 服务所需的权限。有关更多信息,请参阅 IAM 用户指南 中的使用服务相关角色

在引入 AWS SMS 的服务相关角色之前,您需要创建两个 IAM 角色来向 AWS SMS 授予其所需的权限。不再需要这些角色即可使用 AWS SMS。但为了完整起见,这里对它们进行了记录。有关更多信息,请参阅适用于 AWS SMS 的传统 IAM 角色

服务相关角色授予的权限

AWS SMS 使用名为 AWSServiceRoleForSMS 的服务相关角色来让 AWS SMS 管理您的复制作业。

AWSServiceRoleForSMS 信任 sms.amazonaws.com 服务委托人代入该角色。

角色权限策略允许 AWS SMS 对资源完成以下操作:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:ExecuteChangeSet" ], "Resource": "arn:aws:cloudformation:*:*:stack/sms-app-*/*", "Effect": "Allow", "Condition": { "ForAllValues:StringLikeIfExists": { "cloudformation:ResourceTypes": [ "AWS::EC2::*" ] } } }, { "Action": [ "cloudformation:DeleteChangeSet", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:GetTemplate" ], "Resource": "arn:aws:cloudformation:*:*:stack/sms-app-*/*", "Effect": "Allow" }, { "Action": [ "cloudformation:DescribeStacks", "cloudformation:ValidateTemplate", "cloudformation:DescribeStackResource", "s3:ListAllMyBuckets" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteObject", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:PutObjectAcl", "s3:PutLifecycleConfiguration" ], "Resource": "arn:aws:s3:::sms-app-*", "Effect": "Allow" }, { "Action": [ "sms:CreateReplicationJob", "sms:DeleteReplicationJob", "sms:GetReplicationJobs", "sms:GetReplicationRuns", "sms:GetServers", "sms:ImportServerCatalog", "sms:StartOnDemandReplicationRun", "sms:UpdateReplicationJob" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:CopyImage", "ec2:Describe*", "ec2:DeleteSnapshot", "ec2:DeregisterImage", "ec2:RunInstances" ], "Resource": "*", "Effect": "Allow" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": "arn:aws:ec2:*:*:instance/*" }, { "Action": "iam:GetRole", "Resource": "*", "Effect": "Allow" }, { "Action": "iam:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringLike": { "iam:AssociatedResourceArn": "arn:aws:cloudformation:*:*:stack/sms-app-*/*" } } }, { "Effect": "Allow", "Action": [ "ec2:ModifyInstanceAttribute", "ec2:StopInstances", "ec2:StartInstances", "ec2:TerminateInstances" ], "Resource": "*", "Condition": { "ForAllValues:StringLike": { "ec2:ResourceTag/aws:cloudformation:stack-id": "arn:aws:cloudformation:*:*:stack/sms-app-*/*" } } } ] }

创建服务相关角色

您无需手动创建 AWSServiceRoleForSMS 角色。如果您在使用 AWS 管理控制台创建或更新复制作业、应用程序或启动配置时选择 Allow automatic role creation (允许自动创建角色) 选项,则 AWS SMS 会为您创建此角色。

要让 AWS SMS 代表您创建服务相关角色,您必须具有所需权限。有关更多信息,请参阅 IAM 用户指南 中的服务相关角色权限

如果不使用控制台,则可以手动创建此服务相关角色。例如,使用以下 AWS CLI create-service-linked-role 命令可创建 AWSServiceRoleForSMS

aws iam create-service-linked-role --aws-service-name sms.amazonaws.com

编辑服务相关角色

您可以使用 IAM 编辑 AWSServiceRoleForSMS 的描述。有关更多信息,请参阅 IAM 用户指南 中的编辑服务相关角色

删除服务相关角色

如果您不再需要使用 AWS SMS,我们建议您删除 AWSServiceRoleForSMS 角色。只能在以下条件下删除服务相关角色:

  • 服务相关角色未由活动复制作业使用

  • 服务相关角色未由具有关联的活动复制作业的应用程序使用

  • 服务相关角色未由具有关联的 AWS CloudFormation 堆栈的应用程序使用

您可以使用 IAM 控制台、IAM CLI 或 IAM API 删除服务相关角色。有关更多信息,请参阅 IAM 用户指南 中的删除服务相关角色

在删除 AWSServiceRoleForSMS 角色后,AWS SMS 会在您开始复制作业时重新创建该角色。