Lorsque j’essaie d’exécuter ma machine d’état AWS Step Functions, je reçois le message d’erreur suivant : « Neither the global service principal states.amazonaws.com, nor the regional one is authorized to assume the provided role. »
Résolution
Vérifier que vous avez configuré les relations d’approbation requises pour le rôle IAM endossé par votre machine d'état
L'un des points de terminaison suivants doit être répertorié en tant qu'entité de confiance dans la stratégie d’approbation du rôle AWS Identity and Access Management (IAM) :
- Un point de terminaison régional AWS : states.region.amazonaws.com
- Le point de terminaison global AWS : states.amazonaws.com
Utilisez la console IAM pour mettre à jour la stratégie d’approbation du rôle IAM afin que celle-ci inclue l'un des points de terminaison précédents.
Remarque : Lorsque l’action d’API StartExecution est appelée, Step Functions utilise le rôle IAM associé à la machine d’état pendant toute la durée d’exécution de l’action. Si vous modifiez le rôle IAM pendant l'exécution de l'action, Step Functions n'utilise pas le rôle IAM sur l'action d'API.
Vérifier que le rôle IAM attribué à votre machine d’état existe toujours
Effectuez les opérations suivantes :
- Ouvrez la console Step Functions.
- Dans le volet de navigation, sélectionnez Machines d’état.
- Pour Noms, choisissez le nom de votre machine d’état.
- Dans la section Détails, cliquez sur le lien situé sous le ARN du rôle IAM. Si le rôle IAM existe, il s’ouvre dans la console IAM. Si le rôle IAM n’existe pas, la console IAM ouvre une page indiquant Aucune entité trouvée.
Si le rôle IAM attribué à votre machine d’état n’existe pas, créez un nouveau rôle IAM qui inclut les autorisations requises. Puis, configurez votre machine d’état afin qu’elle endosse le nouveau rôle IAM que vous avez créé.
Important : Le nouveau rôle IAM doit porter un nom différent de celui du rôle IAM précédent.
Pour en savoir plus, consultez la section Comment AWS Step Functions fonctionne avec IAM.
Informations connexes
Créer un flux de travail sans serveur avec AWS Step Functions et AWS Lambda