AWS Backup を使用して、AWS Backup の復旧時点から Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを復元しています。しかし、「このオペレーションを実行する権限がありません。AWS Backup ロールに関するアクセス権限を確認してください。詳細については AWS Backup のドキュメントを参照してください。」というエンコードされたエラーメッセージが表示されます。
解決方法
このエラーは、次の条件において発生することがよくあります。
- 元の Amazon EC2 インスタンスにインスタンスプロファイルがアタッチされている。
- AWS Backup コンソールで、[復元ロール]の[デフォルトロール]と、[インスタンスの IAM ロール]の [元の IAM ロールで復元] の設定を使用して、インスタンスを復元しようとした。
この問題を解決するには、ユースケースに応じて次のいずれかのオプションを使用します。
[IAM ロールなしで続行] オプションを使用する
- AWS Backup コンソールでインスタンスの復元ジョブを実行するときに、[インスタンスの IAM ロール]で [IAM ロールなしで続行] を選択します。このオプションを使用すると、インスタンスを復元できますが、復元されたインスタンスにはインスタンスプロファイルがアタッチされていません。後で、この復元されたインスタンスにインスタンスプロファイルをアタッチできます。
[元の IAM ロールで復元] オプションを使用する
復元ジョブを実行するときに、復元ロールに追加のアクセス権限をアタッチした後、[インスタンスの IAM ロール] で [元の IAM ロールで復元] を選択できます。
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": [
…..
}
この出力例では、復元ロールが AWSBackupDefaultServiceRole と同じであることが示されています。復元ロールには、インスタンスの復元に必要となる AmazonSSMRoleForInstancesQuickSetup とやり取りするために、iam:PassRole アクセス許可が必要です。
2. IAM コンソールを開き、以下のポリシーを作成します。
注: 111122223333 をお客様の AWS アカウント ID に置き換えます。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::111122223333:role/*",
"Effect": "Allow"
}
]
}
次に、このポリシーを復元ロールにアタッチします。
3. IAM ロールを更新したら、復元ジョブを再実行します。
関連情報
アクセスコントロール
Amazon EC2 インスタンスを作成する