App Runner est un runtime managé pour conteneurs et applications web. Un service s'exécute avec un rôle d'instance (le rôle que le code de votre application assume) et, en option, un rôle d'accès pour tirer depuis ECR. Créer ou mettre à jour un service avec votre image ou votre source exécute votre code avec ce rôle d'instance, et déployer depuis un dépôt source connecté constitue une voie de chaîne d'approvisionnement.
Déployer votre code#
aws apprunner list-services
aws apprunner describe-service --service-arn <arn> \
--query 'Service.InstanceConfiguration.InstanceRoleArn'
# Point a service at your image to run code under its instance role
aws apprunner create-service --service-name x \
--source-configuration 'ImageRepository={ImageIdentifier=<acct>.dkr.ecr.<region>.amazonaws.com/you:latest,ImageRepositoryType=ECR}' \
--instance-configuration 'InstanceRoleArn=<privileged-role>'
Notes d'exploitation#
- Créer un service avec un rôle d'instance choisi nécessite
iam:PassRole, c'est donc aussi une voie d'élévation de privilèges d'identité. - Le conteneur en cours d'exécution lit son rôle depuis le point de terminaison d'identifiants d'App Runner, selon le même schéma que les rôles de tâche ECS dans containers.
- Mettre à jour un service existant vers votre image est plus discret que d'en créer un nouveau et hérite du rôle existant.
Outils#
- AWS CLI (
apprunner create-service,update-service,describe-service).