Comment décoder un message d'erreur d'autorisation encodé pour AWS Backup ?

Lecture de 2 minute(s)
0

Je souhaite décoder un message d'état d'autorisation encodé pour AWS Backup.

Brève description

Un message est encodé, car les détails de l'état d'autorisation peuvent contenir des informations privilégiées non accessibles pour l'utilisateur qui a demandé l'opération. Les informations suivantes sont incluses dans un message décodé :

  • si la demande a été refusée à la suite d'un refus explicite ou de l'absence d'une autorisation explicite. Pour en savoir plus, reportez-vous à Déterminer si une requête est autorisée ou refusée au sein d'un compte.
  • Le principal qui a formulé la demande.
  • L'action demandée.
  • La ressource demandée.
  • Les valeurs des clés de conditions dans le cadre de la requête de l'utilisateur.

Par exemple, si un utilisateur n'est pas autorisé à effectuer une opération qu'il a demandée, la requête renvoie une réponse Client.UnauthorizedOperation (une réponse HTTP 403). Certaines opérations AWS renvoient également un message encodé contenant des détails sur l'échec de l'autorisation.

Résolution

Prérequis : Vous devez avoir l'autorisation Gestion des identités et des accès AWS (IAM) ssts:DecodeAuthorizationMessage pour décoder un message d'état d'autorisation.

Pour décoder un message d'état d'autorisation, utilisez l'Interface de la ligne de commande AWS (AWS CLI) pour exécuter la commande decode-authorization-message. Voici un exemple de commande :

Conseil : Si vous utilisez un système d'exploitation basé sur Linux, vous pouvez combiner cette commande à l'utilitaire jq (à partir du site Web GitHub) pour obtenir une sortie conviviale pour l'utilisateur.

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

Remarque : Si vous recevez des messages d'erreur lors de l'exécution des commandes AWS CLI, assurez-vous que vous utilisez la version la plus récente d'AWS CLI.

Un exemple de sortie de la commande précédente est présenté ci-dessous :

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

…..  

}

L'exemple de sortie montre que le rôle de restauration est AWSBackupDefaultServiceRole. Le rôle de restauration doit disposer de l'autorisation iam:PassRole afin d'interagir avec le rôle AmazonSSMRoleForInstancesQuickSetup requis pour restaurer l'instance. Pour résoudre ce problème, utilisez la politique IAM pour ajouter des autorisations au rôle IAM.

Informations connexes

Comment résoudre les échecs des tâches de restauration Amazon EC2 à l'aide d'AWS Backup ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an