Elastic Beanstalk regroupe EC2, un bucket S3 d'application et un profil d'instance dans un environnement managé. La plateforme expose deux éléments qu'il vaut la peine de prendre : la configuration d'environnement, qui porte souvent des secrets dans les propriétés d'environnement, et le rôle du profil d'instance sur les hôtes EC2 sous-jacents, atteignable dès que vous exécutez du code dessus.
Lire la configuration et déployer du code#
aws elasticbeanstalk describe-configuration-settings --application-name <a> --environment-name <e> \
--query 'ConfigurationSettings[].OptionSettings' | grep -iE 'env|secret|password'
# Application versions live in an S3 bucket; a new version deploys your code
aws elasticbeanstalk describe-applications
aws s3 cp app.zip s3://elasticbeanstalk-<region>-<acct>/<path>
aws elasticbeanstalk create-application-version --application-name <a> \
--version-label x --source-bundle S3Bucket=...,S3Key=...
aws elasticbeanstalk update-environment --environment-name <e> --version-label x
Notes d'exploitation#
- Les propriétés d'environnement sont le magasin de secrets habituel des applications Beanstalk ; extrayez-les en premier.
- Déployer une version d'application exécute votre code sur les hôtes EC2 de l'environnement, ce qui livre le rôle du profil d'instance via IMDS.
- Le bucket S3 d'application lui-même est souvent faiblement cadré ; lisez-le directement lorsque l'API est refusée.
Outils#
- AWS CLI (
elasticbeanstalk describe-configuration-settings,create-application-version).