如何排查在使用 AWS Backup 还原 Amazon EC2 实例时收到已编码的授权失败消息的问题?

上次更新时间:2020 年 3 月 27 日

我使用 AWS Backup 从快照还原 Amazon Elastic Compute Cloud (Amazon EC2) 实例。但我收到了一条已编码的错误消息,其内容是:“您无权执行此操作。请检查与您的 AWS Backup 角色关联的权限,并参阅 AWS 文档以了解更多详细信息。” 我应该如何排查此问题?

解决方法

使用 AWS Security Token Service (AWS STS) 来解码失败消息。然后确认运行还原作业的 AWS Identity and Access Management (IAM) 角色拥有充分的权限。

注意:当您在 AWS Backup 上使用默认 IAM 角色来运行还原作业,但原始 EC2 实例附加了实例配置文件时,通常会发生这种错误。

1.    使用 AWS 命令行界面 (AWS CLI) 运行 decode-authorization-message 命令:

注意:如果您使用基于 Linux 的操作系统,则可以组合使用此命令和 jq 工具来获得方便查看的输出:

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

2.    此命令会返回与以下类似的输出:

{
  "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": [

…..      

}

示例输出显示名为 AWSBackupDefaultServiceRole 的默认 IAM 角色被用于运行还原作业。此角色必须具有 iam:PassRole 的权限才能与 AmazonSSMRoleForInstancesQuickSetup 交互,还原实例时将需要后者。

3.    将以下策略添加到您用于执行还原作业的 IAM 角色:

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

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

更新 IAM 角色后,重新运行还原作业


访问控制(AWS Backup 开发人员指南)

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?