我正在使用 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 角色后,重新运行还原任务。
相关信息
访问控制
还原 Amazon EC2 实例