AWS Backup の認証ステータスメッセージがエンコードされているのをデコードするには、どうすればよいですか。

所要時間1分
0

AWS Backup の認証ステータスメッセージがエンコードされているのをデコードしようと思います。

簡単な説明

あるメッセージがエンコードされています。その認証ステータスの詳細に、操作をリクエストしたユーザーには見えない特権的情報が含まれている可能性があるためです。デコードされたメッセージには、次の種類の情報が含まれています。

  • 明示的な拒否のため、または明示的な許可がなかったため、リクエストが拒否されたかどうか。詳細については、「リクエストを許可するか拒否するかをアカウント内で判断する」を参照してください。
  • リクエストを行ったプリンシパル。
  • リクエストされたアクション。
  • リクエストされたリソース。
  • ユーザーのリクエストのコンテキストでの条件キーの値。

たとえば、ユーザーがリクエストした操作を実行する権限がそのユーザーにない場合、そのリクエストからは Client.unauthorizedOperation レスポンス (HTTP 403 レスポンス) が返されます。AWS オペレーションによっては、認証失敗の詳細を示すメッセージをエンコードしたものも返すことがあります。

解像度

前提条件: 認証ステータスメッセージをデコードするには、sts:DecodeAuthorizationMessage AWS Identity と Access Management (IAM) 権限が必要です。

認証ステータスメッセージをデコードするには、AWS コマンドラインインターフェイス (AWS CLI) を使用して decode-authorization-message コマンドを実行します。次に示すのはサンプルコマンドです。

ヒント: Linux ベースのオペレーティングシステムを使用している場合は、このコマンドを (GitHub Web サイトの) 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 であることを示しています。復元ロールには iam:PassRole 権限が必要です。インスタンスの復元に必要とされる AmazonSSMRoleForInstancesQuickSetup ロールと連携できるようにするためです。この例で問題を解決するには、IAM ポリシーを使用して IAM ロールにアクセス権を追加します。

関連情報

失敗した Amazon EC2 復元ジョブのトラブルシューティングに AWS Backup を使用する方法を教えてください。

AWS公式
AWS公式更新しました 10ヶ月前
コメントはありません