ssm:StartSession ouvre un shell interactif sur une instance managée, tunnelé à travers le service SSM plutôt que par un port réseau. C'est le pendant interactif de run command : les mêmes privilèges d'agent (root ou SYSTEM), la même propriété d'absence d'accès entrant, mais un terminal en direct pour le travail pratique.
Ouvrir une session#
# needs the session-manager-plugin installed locally
aws ssm start-session --target <instance-id>
# port forwarding to reach an internal service through the instance
aws ssm start-session --target <id> \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["3306"],"localPortNumber":["3306"]}'
Notes d'exploitation#
- Le document de redirection de port transforme une instance managée en pivot vers les sous-réseaux privés sans ouvrir de security group.
- Les sessions sont journalisées dans CloudTrail et, en option, dans S3 ou CloudWatch ; le chemin run command peut être plus discret pour une action unique.
- Comme avec run command, le shell s'exécute en tant qu'agent et atteint le rôle d'instance via IMDS.
Outils#
- AWS CLI + session-manager-plugin : démarrer des sessions et des redirections de port.