还原 Amazon EC2 实例
还原 EC2 实例时,Amazon Backup 会创建亚马逊机器映像(AMI)、实例、Amazon EBS 根卷、Amazon EBS 数据卷(如果受保护的资源有数据卷)和 Amazon EBS 快照。您可以使用 Amazon Backup 控制台自定义一些实例设置,也可以使用 Amazon CLI 或 Amazon SDK 自定义更多设置。
还原 EC2 实例时应注意以下几点:
-
Amazon Backup 将已还原的实例配置为使用受保护资源最初所用的相同密钥对。在还原过程中,您无法为已还原的实例指定不同的密钥对。
-
Amazon Backup 不备份和还原启动 Amazon EC2 实例时使用的用户数据。
-
配置已还原的实例时,您可以选择使用受保护资源最初所用的相同实例配置文件,或在没有实例配置文件的情况下启动。这是为了防止可能出现权限升级。您可以使用 Amazon EC2 控制台更新已还原实例的实例配置文件。
如果您使用原始实例配置文件,则必须授予 Amazon Backup 以下权限,其中资源 ARN 是与实例配置文件关联的 IAM 角色的 ARN。
{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/role-name" },将
role-name替换为将附加到还原的 EC2 实例的 EC2 实例配置文件角色的名称。这不是 Amazon Backup 服务角色,而是 IAM 角色,用于为 EC2 实例上运行的应用程序提供权限。 -
在还原期间,所有 Amazon EC2 配额和配置限制均适用。
-
如果包含 Amazon EC2 恢复点的保管库具有保管库锁定功能,请参阅其它安全注意事项以获取更多信息。
使用 Amazon Backup 控制台还原 Amazon EC2 恢复点
您可以从单个恢复点还原整个 Amazon EC2 实例,包括根卷、数据卷和一些实例配置设置,例如实例类型和密钥对。
使用 Amazon Backup 控制台还原 Amazon EC2 资源
打开 Amazon Backup 控制台,网址为:https://console.aws.amazon.com/backup
。 -
在导航窗格中,选择受保护的资源,然后选择 Amazon EC2 资源的 ID 以打开资源详细信息页面。
-
在恢复点窗格中,选择要还原的恢复点 ID 旁边的单选按钮。在窗格的右上角,选择还原。
-
在网络设置窗格中,我们使用受保护实例中的设置,为实例类型、VPC、子网、安全组和实例 IAM 角色选择默认值。您可以使用这些默认值,也可以根据需要进行更改。
-
在还原角色窗格中,使用默认角色或选择 IAM 角色指定一个 IAM 角色,以授予 Amazon Backup 还原备份的权限。
-
在受保护的资源标签窗格中,默认选择将标签从受保护的资源复制到还原的资源。如果不想复制这些标签,请清除该复选框。
-
在高级设置窗格中,接受实例设置的默认值或根据需要进行更改。有关这些设置的信息,请选择该设置的信息以打开其帮助窗格。
-
完成实例配置后,选择还原备份。
使用 Amazon CLI 还原 Amazon EC2
在命令行界面中,start-restore-job
以下列表中所列的是接受的元数据,您可以传递它们以还原 Amazon EC2 恢复点。
InstanceType KeyName SubnetId Architecture EnaSupport SecurityGroupIds IamInstanceProfileName CpuOptions InstanceInitiatedShutdownBehavior HibernationOptions DisableApiTermination CreditSpecification Placement RootDeviceType RamdiskId KernelId UserData Monitoring NetworkInterfaces ElasticGpuSpecification CapacityReservationSpecification InstanceMarketOptions LicenseSpecifications EbsOptimized VirtualizationType Platform RequireIMDSv2 BlockDeviceMappings aws:backup:request-id
Amazon Backup 接受以下仅提供信息的属性。但是,添加它们不会影响还原:
vpcId
BlockDeviceMappings 是您可以包含的可选参数。Amazon Backup 支持以下 BlockDeviceMappings 属性。
注意
不支持 SnapshotId 和 OutpostArn。
{ "BlockDeviceMappings": [ { "DeviceName" : string, "NoDevice" : string, "VirtualName" : string, "Ebs": { "DeleteOnTermination": boolean, "Iops": number, "VolumeSize": number, "VolumeType": string, "Throughput": number, "Encrypted": boolean, "KmsKeyId": string } } }
例如:
{ "BlockDeviceMappings": [ { "DeviceName": "/def/tuvw", "Ebs": { "DeleteOnTermination": true, "Iops": 3000, "VolumeSize": 16, "VolumeType": "gp3", "Throughput": 125, "Encrypted": true, "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/ab3cde45-67f8-9g01-hi2j-3456klmno7p8" } }, { "DeviceName": "/abc/xyz", "Ebs": { "DeleteOnTermination": false, "Iops": 3000, "VolumeSize": 16, "VolumeType": "gp3", "Throughput": 125, "Encrypted": false } } ] }
您还可以在不包含任何存储的参数的情况下还原 Amazon EC2 实例。Amazon Backup 控制台的“受保护的资源”选项卡上提供了此选项。
重要
如果您在从跨账户或跨区域备份中还原时未覆盖 BlockDeviceMappings 中的 Amazon KMS 密钥,则还原可能会失败。有关更多信息,请参阅 Amazon EC2 实例还原问题故障排除。
Amazon EC2 实例还原问题故障排除
跨账户还原失败
描述:尝试从与您的账户共享的备份中还原时,Amazon EC2 实例还原失败。
可能的问题:您的账户可能无权访问共享账户中用于加密源卷的 Amazon KMS 密钥。KMS 密钥可能不会与您的账户共享。
或者,附加到源实例的卷未进行加密。
解决方案:要解决此问题,请将 encrypted 属性设置为 true,然后执行下列操作之一:
-
覆盖
BlockDeviceMappings中的 KMS 密钥并指定您在账户中拥有的 KMS 密钥。 -
更新 KMS 密钥策略,请求拥有者账户授予您访问用于加密卷的 KMS 密钥的权限。有关更多信息,请参阅允许其他账户中的用户使用 KMS 密钥。
跨区域还原失败
描述:尝试从跨区域备份中还原时,Amazon EC2 实例还原失败。
问题:备份中的卷可能使用目标区域中不可用的单区域 Amazon KMS 密钥进行加密。或者,附加到源实例的卷未进行加密。
解决方案:要解决此问题,请将 encrypted 属性设置为 true,然后使用目标区域中的 KMS 密钥覆盖 BlockDeviceMappings 中的 KMS 密钥。