2016-02-02 3 views
0

J'ai créé une configuration elastic-beanstalk avec eb init et l'ai déployée avec la commande eb create. Quand je ssh à l'instance, je peux voir que l'AWS CLI est installée. Ce que j'essaye de faire est de configurer le CLI avec mon ID de clé d'accès et clé d'accès secrète d'AWS avec la commande eb create ou init, de sorte que je n'ai pas à SSH à l'environnement chaque fois et fais un configuration manuelle.Comment configurer AWS CLI dans une instance elastic-beanstalk

Existe-t-il un moyen de configurer l'interface de ligne de commande avec le déploiement de l'environnement (lors du premier démarrage)? J'ai essayé de passer des variables d'environnement mais cela ne semble pas faire quoi que ce soit.

Merci

+0

Je vous recommande de lire avant de continuer: http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html –

Répondre

4

Si vous souhaitez utiliser l'AWS CLI installé sur les instances EC2 qui font partie de votre environnement Beanstalk, je recommanderais selon exemple des informations d'identification de profil au lieu de copier/coller un access_key_id et secret_access_key. Les profils d'instance sont essentiellement des rôles IAM qui vous permettent de passer des rôles IAM aux instances au lancement et les instances disposent automatiquement d'informations d'identification à utiliser sur les instances EC2. Outre les outils AWS standard tels que AWS CLI, les SDK AWS utilisent automatiquement les informations d'identification du profil d'instance lorsqu'elles sont disponibles. Vous pouvez trouver l'ordre de priorité utilisé par AWS CLI pour rechercher des informations d'identification documentées here.

Vous pouvez transmettre un profil d'instance à votre environnement à l'aide du paramètre Option avec l'espace de noms "aws: autoscaling: launchconfiguration" et le nom d'option "IamInstanceProfile". Ceci est rendu plus facile avec la console et le cli eb. Étant donné que vous utilisez déjà eb cli pour créer l'environnement, vous devez déjà passer le profil d'instance pour lancer un environnement. Généralement, le profil de l'instance est nommé "aws-elasticbeanstalk-ec2-role" (le nom par défaut) mais il peut également être nommé quelque chose d'autre. Faites-moi savoir si vous n'êtes pas en mesure de trouver le profil d'instance pour votre environnement.

De plus, vous devez mettre à jour le rôle IAM associé aux stratégies nécessaires pour fournir l'accès au rôle aux services que vous souhaitez appeler à l'aide de l'AWS CLI. La page This documente les autorisations minimales requises sur votre rôle pour l'exécution de beanstalk élastique. Vous pouvez ajouter d'autres autorisations si vous avez besoin de la console IAM. Enfin, si vous souhaitez toujours passer directement les clés ACCESS_KEY et SECRET_KEY, vous pouvez utiliser les variables d'environnement définies dans la console de gestion AWS ou via ebextensions, puis exécuter des commandes utilisant ebextensions qui copient ces variables d'environnement dans ~/.aws./credentials qui est l'une des sources d'informations d'identification que l'AWS CLI recherche, comme indiqué here. Faites-moi savoir si vous avez besoin d'aide pour écrire des ebextensions. La documentation pour ebextensions est disponible et here.

Je recommande fortement d'utiliser des profils d'instance.