9
votes

AWS Elastic BeanStalk Servicerole Erreur lors de la connexion à un rôle

Je suis connecté à un rôle via SSO et j'essaie de créer un nouvel environnement de base élastique (le plus récent Tomcat si cela compte) et je reçois l'erreur suivante qui m'empêche de faire de même que l'environnement a commencé à construire:

(Espace de noms: 'AWS: ElasticBeansk: Environnement', optionName: 'Servicerole'): Rôle de service non valide

Cela se produit même lorsque j'essaie de cloner un environnement existant. J'ai essayé de générer un rôle de service et de créer manuellement une. Les deux donnent l'erreur. Cette erreur ne se produit pas lorsque je me connecte à un utilisateur avec les mêmes autorisations.


4 commentaires

Vous connectez-vous avec un utilisateur IAM? Votre utilisateur IAM a-t-il iam: passrole autorisation? Pouvez-vous vérifier la liste des autorisations requises dans votre stratégie utilisateur IAM ici: docs.aws.amazon.com/elasticBeanstalk/Latest/dg/... ?


Vous obtenez également cette erreur uniquement dans la console AWS Management ou de l'API / CLI également? Pouvez-vous essayer d'utiliser le compte root?


J'utilise la console et je suis connecté à un rôle via un fournisseur SSO. Se connecter à un compte en fait corrigé le problème, mais ce n'est pas une option à long terme pour des raisons de sécurité, donc je continuerai à enquêter.


Nous avons été informés par AWS supportant qu'il y a un bogue de leur côté qui fait que cela échoue avec SSO. Je suis sur le même bateau pour l'instant et je devrai créer des utilisateurs IAM temporaires jusqu'à ce qu'ils le réparent.


3 Réponses :


12
votes

Lorsque vous clonez un environnement à l'aide de la console élastique BeanStalk, vous avez la possibilité de choisir une nouvelle plate-forme et un rôle de service. Le rôle de service est un nouveau concept de beanstalk documenté ici . Le service n'est pas requis si vous utilisez une surveillance de base sur la santé, mais si vous choisissez d'utiliser surveillance de la santé améliorée .

Lors de la création d'un environnement, vous pouvez choisir de passer un iaminstanceProfile (généralement nommé AWS-ELASTICBEANSTALK-EC2-ROOLE ) et un rôle de service (généralement nommé AWS-ELASTICBEANSTALK-SERVICE-ROLE < / code>). Ces deux rôles sont nécessaires lors de l'utilisation d'une surveillance améliorée de la santé des applications. Veuillez noter que ces deux rôles nécessitent un ensemble d'autorisations complètement différent et que vous devriez utiliser différents rôles pour chacun d'entre eux. Vous pouvez trouver la liste des autorisations requises pour le rôle de service et le profil d'instance documenté ici .

Lors de la création / du clonage / de la modification des environnements à l'aide de la console AWS, vous aurez une option pour choisir un rôle de service. Si vous n'avez jamais utilisé de rôle de service auparavant, vous recevrez une option pour «créer un nouveau rôle». La console vous permet de créer le rôle de service requis par BeanStalk à l'aide d'un bouton unique. Vous pouvez afficher les autorisations avant de créer le rôle.

Après la première création, la console vous présentera une liste déroulante avec le rôle que vous avez créé précédemment (généralement nommé aws-élasticbeanstalk-service-rôle ) et vous pouvez réutiliser ce rôle de service.

de la documentation: "Un rôle de service est le rôle de l'IAM que l'élastique beanstalk suppose lors de l'appelant d'autres services en votre nom. Elastic BeanStalk utilise le rôle de service que vous spécifiez lors de la création d'un environnement de base élastique lorsqu'il appelle Amazon élastique Compute Cloud ( Amazon EC2), équilibrage des charges élastiques et API d'échelonnement automobile pour rassembler des informations sur la santé de ses ressources AWS. "

Lors de la création / de l'utilisation d'un rôle, vous devez vous assurer que l'utilisateur IAM a une autorisation de rôle pour le rôle que vous avez créé. Si vous n'utilisez pas le compte root, assurez-vous que vous avez le Conditions correctes pour l'utilisateur IAM. Remarque L'IAM: La permission de passrole permet à votre utilisateur d'IAM de réussir le rôle de Beanstalk Service.

mise à jour

Il y avait un problème avec une seule connexion qui a été résolu. Veuillez mettre à jour ici ou dans le fil du forum AWS ci-dessous si vous voyez toujours des problèmes. Fil du forum AWS: https://forums.aws.amazon.com/thread. JSPA? Threadid = 171369


6 commentaires

Merci pour la réponse détaillée. Nous frappons un mur similaire comme @thefroatgt, avec exactement le même comportement et la même solution de contournement, c'est-à-dire que cela ne fonctionne que via un utilisateur IAM, mais pas lors de l'assumation d'un rôle IAM. Ce dernier s'applique aux trois scénarios, Cross Compte via la console AWS ou via l'AWS CLI (par exemple, update-environnement ) et par programme via le SDK AWS, nous commençons donc à penser qu'il pourrait y avoir un problème. sur le côté AWS pour un changement, plutôt que la question de l'autorisation habituelle de notre part. Nous pouvons reproduire de manière fiable les deux scénarios dans divers comptes. Toute autre idée? Merci beaucoup!


Une chose que j'ai remarquée, c'est que la relation de fiducie pour le aws-élasticbeanstalk-service-service a une condition pour STS: externalid == élasticbeanstalkstalk . Conceptuellement, je peux voir comment cette protection adjointe confuse pourrait être considérée comme utile, mais je n'ai pas encore vu cela facilitée par d'autres rôles générés automatiquement. Hors des désespérés et de la spéculation sur différents chemins de code qui pourrait ne pas encore soumettre un STS: externeid , j'ai supprimé la condition d'un peu, mais pas de manière inattendue, cela ne fait pas une différence non plus.


Un autre obstacle, même si vous vous connectez à un utilisateur pour créer un environnement, vous ne pouvez pas afficher cet environnement sur la console avec un rôle, il vous rapproche de la liste des environnements.


Pour référence, ce problème est expérimenté par un nombre croissant d'utilisateurs et par exemple. Discuté dans Erreur lors de la création d'un nouvel environnement: "Rôle de service non valide" (Forum élastique beanstalk ) et EB Déploitation OptionName: 'ServiceRole' ( UTOOLITY Q & A FORUM) .


@Steffenopel doit être corrigé maintenant. S'il vous plaît laissez-nous savoir si vous voyez toujours des problèmes.


@Rohitbanga - Merci pour la mise à jour, très appréciée! Nous avons confirmé que cela fonctionne comme prévu maintenant pour nous via la console AWS Management Console, ainsi que via le ELASTICASTING Tâche d'environnement dans Tâches pour AWS .



0
votes

Il semble y avoir un fil sur le forum de support AWS ici: https: // forums.aws.amazon.com/thread.jspa?messageid=670359

J'ai le même problème lors de la tentative d'accès à un environnement beanstalk via CrossAccount IAM Policy.

Je pense que cela se connecte à la console avec un compte IAM appartenant à ce compte AWS avec résoudre le problème. Im certains aws folks travaillent dessus


1 commentaires

J'étais correct, lié aux utilisateurs fédérés. forums.aws.aMazon.com/thread.jspa?threadId=212981. Correction de bugs à venir bientôt



3
votes

J'ai eu la même erreur hier et un autre aujourd'hui en utilisant la même pile " incapable d'attribuer un rôle. Veuillez vérifier que vous avez la permission de réussir ce rôle: xxxxxx. " "

et j'ai résolu l'affectation de cette politique " awselasticbeanstalklasslaccess " à mon utilisateur

Ici, vous pourriez lire plus: http://docs.aws.amazon .Com / ElasticBeanStalkstalk / Dernières / DG / Concepts-Roles.html # Concepts-Rôles-Utilisateur


0 commentaires