Je souhaite résoudre l'erreur Accès refusé que j'obtiens lorsque j'appelle l'API DescribeStacks.
Brève description
L'erreur suivante peut s'afficher lorsque vous exécutez la commande de l’interface de la ligne de commande AWS (AWS CLI) DescribeStacks :
« Une erreur s'est produite (AccessDenied) lors de l'appel de l'opération DescribeStacks : L'utilisateur : arn:aws:sts::#AccountId:assumed-role/#RoleName/xxx n’est pas autorisé à effectuer : cloudformation:ListStacks sur la ressource : arn:aws:cloudformation:us-east-1:#AccountId:stack/*/* car aucune politique basée sur l'identité permet l’action cloudformation:ListStacks : ». L'erreur apparaît lorsque le rôle « #RoleName » ne comporte pas l’action « Formation : ListStacks ».
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes AWS CLI, consultez la section Résoudre les erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.
L'erreur « Échec de chargement des piles » correspondante peut s'afficher lorsque vous utilisez la console de gestion AWS. Pour vérifier qu'il s'agit d'un problème lié aux autorisations, vérifiez les événements AWS CloudTrail, puis filtrez l'appel d'API ListStacks.
Résolution
L'erreur décrite précédemment se produit lorsque le rôle ne dispose pas de l'autorisation requise pour effectuer une action cloudformation:ListStacks.
Remarque : L'autorisation DescribeStacks requiert également l'autorisation d’accéder à ListStacks si aucun nom de pile n'est spécifié.
Mettre à jour la stratégie d'autorisations pour autoriser l'accès à ListStacks
Effectuez les étapes suivantes sur la console de gestion AWS pour modifier la stratégie d'autorisations du rôle :
-
Connectez-vous à la console de gestion AWS en tant qu'administrateur.
-
Saisissez IAM dans la barre de recherche. Sous Services, sélectionnez IAM comme service sur la console de gestion AWS.
-
Dans le volet de navigation de gauche, sélectionnez l'onglet Rôles.
-
Saisissez le nom du rôle dans la barre de recherche et choisissez le lien hypertexte du nom du rôle (surligné en bleu).
-
Dans l'onglet Autorisations, choisissez l'icône + pour l'un des types de stratégies gérées par le client ou les stratégies en ligne du client. Puis, cliquez sur le bouton Modifier. Pour plus d’informations, consultez la section Modification des stratégies IAM.
-
Consultez la page Web Modifier les autorisations dans #PolicyName. Assurez-vous qu'elle inclut cloudformation:ListStacks. La stratégie mise à jour se présente comme suit :
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor",
"Effect": "Allow",
"Action": [
"cloudformation:DescribeStacks",
"cloudformation:ListStacks"
],
"Resource": "*"
}
]
}
-
Sélectionnez Suivant. Puis, cliquez sur le bouton Enregistrer les modifications pour implémenter les modifications de la stratégie.
-
Testez la commande aws cloudformation describe-stacks pour vous assurer qu'elle s'exécute correctement.
Informations connexes
DescribeStacks
describe-stacks
ListStacks