如何使用 AWS Backup 对失败的 Amazon EC2 还原任务进行故障排除?

上次更新时间:2022 年 1 月 12 日

我正在使用 AWS Backup 从 AWS Backup 的恢复点恢复一个 Amazon Elastic Compute Cloud (Amazon EC2) 实例。但我收到了一条已编码的错误消息,其内容是:“您无权执行此操作。请检查与您的 AWS Backup 角色关联的权限,并参阅 AWS 文档以了解更多详细信息。”

解决方法

在以下条件下,通常出现此错误:

  • 原始 Amazon EC2 实例附上了实例配置文件。
  • 您尝试还原 AWS Backup 控制台中的实例,方法是为 Restore role(还原角色)设置 Default role(原定设置角色),以及为 Instance IAM role(实例 IAM 角色)设置 Restore with Original IAM Role(通过初始 IAM 角色还原)。

要解决此问题,请根据您的使用案例使用以下任一选项。

使用 “Proceed with no IAM role”(使用非 IAM 角色继续操作)选项

  • 当您为 AWS Backup 控制台中的实例运行还原任务时,请选择 Instance IAM role(实例 IAM 角色)中的 Proceed with no IAM role(使用非 IAM 角色继续操作)。使用此选项,您可以还原实例,并且还原的实例不会附上实例配置文件。稍后,您可以将实例配置文件附上此还原的实例

使用 “Restore with Original IAM role”(使用原始 IAM 角色还原)选项

当您运行还原任务时,您可以为 Instance IAM role(实例 IAM 角色)选择 Restore with Original IAM Role(使用原始 IAM 角色还原),然后将其他权限附上 Restore role(还原角色):

1.    如果您知道您使用了哪个角色进行恢复,请跳到步骤 2。否则,请使用 AWS Command Line Interface (AWS CLI) 运行 decode-authorization-message 命令以查找用于还原实例的角色。如果您使用基于 Linux 的操作系统,则可以组合使用此命令和 jq 工具来获得方便查看的输出:

# aws sts decode-authorization-message --encoded-message (encoded error message) --query DecodedMessage --output text | jq '.'

注意:如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI

您会收到与以下类似的输出:

{
  "allowed": false,

…..

  "context": {
    "principal": {
      "id": "AROAAAAAAAAAA:AWSBackup-AWSBackupDefaultServiceRole",
      "arn": "arn:aws:sts::111122223333:assumed-role/AWSBackupDefaultServiceRole/AWSBackup-AWSBackupDefaultServiceRole"
    },
    "action": "iam:PassRole",
    "resource": "arn:aws:iam::111122223333:role/AmazonSSMRoleForInstancesQuickSetup",
    "conditions": {
      "items": [

…..      

}

示例输入显示 Restore role(还原角色)与 AWSBackupDefaultServiceRole 相同。Restore role(还原角色)必须具有 iam:PassRole 的权限才能与 AmazonSSMRoleForInstancesQuickSetup 交互,还原实例时将需要后者。

2.    打开 IAM console(IAM 控制台),然后创建以下策略: 

注意:请将 111122223333 替换为您的 AWS 账户 ID。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/*",
            "Effect": "Allow"
        }
    ]
}

然后,将此策略附加到您的 Restore role(还原角色)。

3.    更新 IAM 角色后,重新运行还原任务


这篇文章对您有帮助吗?


您是否需要账单或技术支持?