DevSecOps

GCP Security pour débutant : le guide complet 2026

GCP Security pour débutant : IAM, Workload Identity Federation, VPC Service Controls, Security Command Center, Secret Manager, checklist, différences AWS Azure.

Naim Aouaichia
13 min de lecture
  • GCP
  • Google Cloud
  • Cloud security
  • IAM
  • DevSecOps
  • VPC Service Controls
  • Security Command Center
  • GKE
  • Workload Identity

La sécurité de Google Cloud Platform (GCP) repose sur cinq piliers pour un débutant : comprendre le modèle de responsabilité partagée Google, maîtriser la hiérarchie Organization → Folder → Project, configurer l'IAM (principaux, rôles prédéfinis, service accounts, bindings et conditions), isoler les périmètres sensibles via VPC Service Controls, et monitorer en continu avec Security Command Center + Cloud Audit Logs. Les deux risques #1 sur GCP en 2026 sont les clés JSON de service accounts exfiltrées (remplacement obligatoire par Workload Identity Federation) et les buckets Cloud Storage publics involontaires (bloquer via Public access prevention + Organization Policy). Cet article détaille les concepts fondamentaux, les commandes gcloud essentielles, les différences avec AWS et Azure, les outils de scan, et la checklist à appliquer sur un nouveau projet.

Modèle de responsabilité partagée GCP

Avant toute configuration, comprendre qui est responsable de quoi.

CoucheResponsabilité
Infrastructure physique (data centers, réseau)Google
Hyperviseur, OS host, hardwareGoogle
OS guest (VMs Compute Engine)Client
Middleware, runtime, librariesClient
Application code et dépendancesClient
Configuration réseau (VPC, firewall)Client
IAM et contrôle d'accèsClient
Chiffrement au repos (par défaut)Google (clés Google-managed)
Chiffrement des données en transit TLSPartagé (Google fournit, client configure)
Secrets, clés, tokens applicatifsClient
Détection et réponse aux incidentsPartagé

Les services managés (Cloud Run, App Engine, Cloud Functions, BigQuery) décalent plus de responsabilité vers Google, mais l'IAM, la configuration d'accès, les secrets et la logique applicative restent toujours à la charge du client.

Resource Hierarchy : la fondation

GCP organise ses ressources selon une hiérarchie native à 4 niveaux :

Organization (domaine d'entreprise, ex. example.com)

    ├── Folder (optionnel, regroupement logique)
    │      │
    │      ├── Folder (imbrication possible jusqu'à 10 niveaux)
    │      │      │
    │      │      └── Project (unité de facturation + isolation par défaut)
    │      │             │
    │      │             └── Resource (VM, bucket, DB, cluster, etc.)
    │      │
    │      └── Project

    └── Project (directement sous Org)

Règle fondamentale : les policies IAM et les Organization Policies sont héritées descendantes. Une contrainte appliquée au niveau Organization s'applique par défaut à tous les projets en dessous, sauf override explicite.

Organization Policies essentielles pour un débutant

# Interdire la création de clés JSON de service accounts (recommandé)
gcloud resource-manager org-policies enable-enforce \
  iam.disableServiceAccountKeyCreation \
  --organization=ORG_ID
 
# Interdire l'accès public aux Cloud Storage par défaut
gcloud resource-manager org-policies enable-enforce \
  storage.publicAccessPrevention \
  --organization=ORG_ID
 
# Restreindre les régions autorisées (conformité data residency)
gcloud resource-manager org-policies allow \
  gcp.resourceLocations \
  "in:eu-locations" \
  --organization=ORG_ID
 
# Exiger OS Login sur toutes les VMs (pas de clés SSH manuelles)
gcloud resource-manager org-policies enable-enforce \
  compute.requireOsLogin \
  --organization=ORG_ID

Ces quatre Organization Policies couvrent déjà une large part des risques de misconfiguration classiques.

IAM : le cœur du contrôle d'accès

Concepts fondamentaux

Principal (identité)
  ├── User Google (alice@example.com)
  ├── Service Account (app-backend@project.iam.gserviceaccount.com)
  ├── Google Group (security-team@example.com)
  ├── Workforce Identity (SSO entreprise)
  └── Workload Identity Federation (workload externe)
 
Role (ensemble de permissions)
  ├── Primitive (Owner, Editor, Viewer - à éviter en 2026)
  ├── Predefined (ex. roles/storage.objectViewer - granulaire)
  └── Custom (permissions précises définies par vous)
 
Binding
  = (principal + role) attaché à une ressource ou à un scope hiérarchique
    avec condition IAM optionnelle
 
IAM Condition (optionnelle)
  Expression CEL qui restreint quand/comment le binding s'applique
  Exemples : heures, attributs ressource, contexte réseau

Les erreurs IAM les plus fréquentes à éviter

  1. Primitive roles : roles/owner, roles/editor accordent des permissions énormes. Éviter sauf cas exceptionnel documenté.
  2. Attribution au niveau Project quand elle devrait être au niveau ressource (bucket, topic, dataset).
  3. Service account avec Owner : une clé compromise donne un contrôle complet du projet.
  4. Partage de service accounts entre services différents.
  5. Absence de review régulière : IAM Policy Analyzer hebdomadaire recommandé.

Commandes IAM essentielles

# Qui a accès à ce bucket ?
gcloud storage buckets get-iam-policy gs://my-bucket
 
# Ajouter un binding sur un bucket
gcloud storage buckets add-iam-policy-binding gs://my-bucket \
  --member=user:alice@example.com \
  --role=roles/storage.objectViewer
 
# Voir les rôles d'un user au niveau projet
gcloud projects get-iam-policy PROJECT_ID \
  --flatten="bindings[].members" \
  --filter="bindings.members:alice@example.com" \
  --format="table(bindings.role)"
 
# Lister les service accounts d'un projet
gcloud iam service-accounts list --project=PROJECT_ID
 
# Analyser les permissions réellement utilisées (detect over-privileged)
gcloud asset analyze-iam-policy-longrunning \
  --organization=ORG_ID \
  --identity="user:alice@example.com"

Service Accounts : le piège des clés JSON

Les service accounts sont l'identité utilisée par le code pour accéder à GCP. Deux méthodes d'authentification possibles, et la différence est critique.

Méthode à éviter - clés JSON

Génération d'une clé JSON → fichier téléchargé localement
→ envoyé dans secrets CI/CD ou fichier .env
→ risque d'exfiltration via :
    - commit accidentel dans un repo public (trufflehog détecte)
    - laptop développeur compromis
    - logs applicatifs mal filtrés
    - phishing de développeur
→ credentials long-lived, difficile à rotate

Cette méthode est explicitement déconseillée par Google depuis 2023. Le top 5 des causes de compromission GCP en 2025-2026 inclut systématiquement « fuite de clé JSON service account ».

Méthode recommandée 2026 - Workload Identity Federation

Workload Identity Federation (WIF) permet à un workload externe (GitHub Actions, GitLab CI, Jenkins, Kubernetes hors GKE) d'obtenir un token GCP court-durée via une fédération OIDC, sans jamais télécharger de clé.

# GitHub Actions - déploiement GCP avec WIF (sans clé JSON)
name: deploy-gcp
on: [push]
permissions:
  contents: read
  id-token: write  # requis pour OIDC
 
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
 
      - id: auth
        uses: google-github-actions/auth@v2
        with:
          workload_identity_provider: projects/123/locations/global/workloadIdentityPools/gh/providers/gh-oidc
          service_account: deployer@my-project.iam.gserviceaccount.com
 
      - name: Deploy to Cloud Run
        run: gcloud run deploy my-app --image=gcr.io/my-project/app:${{ github.sha }}

Pour les workloads qui tournent dans GKE, utiliser Workload Identity Federation for GKE : chaque Kubernetes Service Account est mappé à un GCP Service Account, sans secrets en cluster.

Réseau : VPC, firewall et Service Controls

VPC et segmentation

# Créer un VPC custom (ne jamais utiliser le VPC default en prod)
gcloud compute networks create prod-vpc --subnet-mode=custom
 
# Créer un subnet par environnement
gcloud compute networks subnets create prod-eu-west1 \
  --network=prod-vpc --region=europe-west1 --range=10.10.0.0/24
 
# Firewall rule par défaut : tout bloquer en entrée
gcloud compute firewall-rules create deny-all-ingress \
  --network=prod-vpc --action=DENY --direction=INGRESS \
  --rules=all --priority=65534
 
# Autoriser SSH seulement depuis IAP (pas d'Internet direct)
gcloud compute firewall-rules create allow-ssh-from-iap \
  --network=prod-vpc --action=ALLOW --direction=INGRESS \
  --rules=tcp:22 --source-ranges=35.235.240.0/20

Le tunneling via Identity-Aware Proxy (IAP) évite d'exposer SSH sur Internet, authentifié via Google et IAM.

VPC Service Controls (VPC-SC)

VPC Service Controls créent un périmètre de sécurité logique autour d'un ensemble de services GCP (Cloud Storage, BigQuery, Pub/Sub, etc.). Les données ne peuvent pas sortir du périmètre, même si un attaquant dispose de credentials valides.

Sans VPC-SC :
  Attaquant vole une clé de service account
    → peut exfiltrer les données d'un bucket vers un bucket attaquant
    → pas de frein technique
 
Avec VPC-SC :
  Périmètre défini autour du projet + services
    → même avec credentials valides, exfiltration vers l'extérieur bloquée
    → logs d'audit des tentatives

VPC-SC est la réponse GCP aux exfiltrations de données type SolarWinds. Pas d'équivalent direct AWS ou Azure.

Cloud Armor

WAF natif GCP, protège Load Balancers et Cloud Run des attaques L7 (OWASP Top 10, DDoS volumétrique). Intégration native avec les règles preconfigured OWASP ModSecurity Core Rule Set.

Secrets et chiffrement

Secret Manager

Service dédié à la gestion des secrets (tokens API, mots de passe, certificats). Remplace les secrets stockés en dur dans le code ou dans Cloud Storage.

# Créer un secret
gcloud secrets create db-password --replication-policy=automatic
 
# Stocker une version
echo -n "super-secret-password" | gcloud secrets versions add db-password --data-file=-
 
# Accorder accès à un service account
gcloud secrets add-iam-policy-binding db-password \
  --member=serviceAccount:app@my-project.iam.gserviceaccount.com \
  --role=roles/secretmanager.secretAccessor
 
# Accéder dans le code (Python)
# from google.cloud import secretmanager
# client = secretmanager.SecretManagerServiceClient()
# name = f"projects/my-project/secrets/db-password/versions/latest"
# response = client.access_secret_version(request={"name": name})
# password = response.payload.data.decode("UTF-8")

Cloud KMS

Service de gestion de clés cryptographiques. Utilisé pour :

  • Chiffrement de données sensibles au-delà du chiffrement automatique Google.
  • Customer-Managed Encryption Keys (CMEK) sur Cloud Storage, BigQuery, Compute disks.
  • Signature et vérification (ex. cosign keyless avec Fulcio + Cloud KMS).
  • Hardware Security Module (Cloud HSM) pour exigences certifiées FIPS 140-2 niveau 3.

Monitoring et détection

Cloud Audit Logs

Logs d'audit centralisés générés automatiquement pour toutes les actions API. Trois types :

TypeContenuActivé par défaut
Admin ActivityActions IAM, création/suppression ressourcesOui, gratuit
Data AccessLecture/écriture donnéesNon (coût élevé)
System EventActions internes GoogleOui
Policy DeniedRefus d'accès IAM ou VPC-SCOui

Activer Data Access logs sur les buckets et bases de données sensibles est recommandé pour la forensics mais génère du volume. Alternative 2026 : activer uniquement sur ressources classées sensibles (PII, PCI, santé).

Security Command Center

Plateforme centrale de sécurité GCP. Trois niveaux en 2026.

Standard (gratuit) :
  Security Health Analytics (100+ contrôles CIS)
  Sensitive Actions Service
  Inventory des ressources
 
Premium (~50 USD/mois par compte de service actif) :
  Event Threat Detection (détection d'attaques)
  Container Threat Detection (GKE runtime)
  Web Security Scanner (DAST managé)
  Rapports PCI DSS, CIS, ISO 27001, NIST 800-53
 
Enterprise (pricing custom) :
  Attack Path Simulation (visualisation chaînes d'attaque)
  Mandiant Threat Intelligence intégré
  CSPM multi-cloud (AWS, Azure)
  SIEM-like Cloud Chronicle

Pour un débutant : activer Standard dès le premier jour, évaluer Premium dès qu'on a des données sensibles ou une conformité en ligne de mire.

Bonnes pratiques essentielles pour démarrer

Les 10 actions à appliquer sur un nouveau projet GCP.

  1. Créer une hiérarchie : Organization + Folder par environnement (dev, staging, prod) + Project par application.
  2. Activer Security Command Center Standard sur l'Organization.
  3. Appliquer les 4 Organization Policies : disableServiceAccountKeyCreation, publicAccessPrevention, resourceLocations, requireOsLogin.
  4. Désactiver le VPC default et créer un VPC custom avec subnets par environnement.
  5. IAM au niveau le plus granulaire : rôles prédéfinis sur ressources, pas primitive au projet.
  6. Workload Identity Federation obligatoire pour tout CI/CD externe.
  7. Secret Manager pour tous les secrets applicatifs, jamais dans le code.
  8. Activer Cloud Audit Logs Admin Activity (gratuit, par défaut) et Data Access sur ressources sensibles.
  9. VPC Service Controls autour des projets contenant PII ou données sensibles.
  10. Scanner régulièrement avec Prowler ou Security Command Center. Viser CIS GCP Benchmark > 80 %.

Différences clés avec AWS et Azure

AspectAWSAzureGCP
HiérarchieOrganizations + OUsManagement Groups + SubscriptionsOrganization + Folders + Projects (natif)
Identités humainesIAM Users / IAM Identity CenterEntra ID (ex-Azure AD)Google Workspace / Cloud Identity
Service identityIAM Roles via STSManaged IdentitiesService Accounts
Federation workloads externesOIDC via IAM roleWorkload Identity FederationWorkload Identity Federation
Security Posture ManagementSecurity HubDefender for CloudSecurity Command Center
Secrets managementSecrets ManagerKey VaultSecret Manager
WAF natifAWS WAFAzure Application GatewayCloud Armor
Périmètre de donnéesAucun direct (VPC + endpoints)Private EndpointsVPC Service Controls (unique)
Chiffrement au repos par défautOuiOuiOui

Le différenciateur GCP le plus cité : hiérarchie native propre et VPC Service Controls comme périmètre d'exfiltration. Le différenciateur AWS : maturité et profondeur du catalogue. Le différenciateur Azure : intégration Microsoft (Entra ID, M365, Defender).

Outils open source pour auditer GCP

Prowler (multi-cloud OSS) :
  CLI en Python, 200+ contrôles GCP
  Mapping CIS, NIST, ISO, HIPAA, PCI DSS
  Intégration CI/CD (exit code, SARIF, JSON)
  Commande : prowler gcp --project-ids my-project
 
ScoutSuite (NCC Group) :
  Rapport HTML visuel
  Commande : scout gcp --project-id my-project
 
Cloud Custodian (CNCF) :
  Policies YAML déclaratives
  Remédiation automatique possible
  Détection continue
 
Forseti Security :
  Historique, maintenu par communauté
  Policies Rego / OPA compatibles
 
gcloud scc (natif) :
  Query SCC findings depuis CLI
  gcloud scc findings list --organization=ORG_ID

Ressources d'apprentissage structurées

Gratuit :
  Google Cloud Skills Boost (anciennement Qwiklabs)
    → « Security Engineer Learning Path » : 40 labs pratiques
  GCP Security Best Practices Center (docs.cloud.google.com/security)
  GCP CIS Benchmark v2.0 (PDF public, 170+ pages)
  Blog Google Cloud Security (publications régulières)
 
Livres :
  Google Cloud Certified Professional Cloud Security Engineer Study Guide (2023)
  Google Cloud Platform Security Handbook - Packt (2024)
 
Certifications :
  Professional Cloud Security Engineer (PCSE) : 200 USD, 2 h
  Associate Cloud Engineer (ACE) : prérequis recommandé
 
Labs hands-on :
  Google CloudSkillsBoost : quests Security Engineer
  KodeKloud GCP Security path
  Cybrary Google Cloud Security Fundamentals
 
Communauté :
  Reddit r/googlecloud
  Google Cloud Security Community (security.googlecloudcommunity.com)
  Stack Overflow tag google-cloud-platform

Points clés à retenir

  • 5 piliers GCP security pour débutant : modèle de responsabilité partagée, Resource Hierarchy, IAM, VPC Service Controls + Cloud Armor, Security Command Center + Cloud Audit Logs.
  • Deux risques dominants 2026 : clés JSON de service account exfiltrées (remplacer par Workload Identity Federation) et buckets Cloud Storage publics involontaires (bloquer via Organization Policy).
  • 4 Organization Policies à appliquer au jour 1 : disableServiceAccountKeyCreation, publicAccessPrevention, resourceLocations, requireOsLogin.
  • VPC Service Controls est le différenciateur GCP sans équivalent AWS/Azure : périmètre d'exfiltration qui protège même en cas de credentials volés.
  • Security Command Center Standard (gratuit) couvre 60 % des besoins CSPM basiques. Premium devient rentable dès qu'il y a données sensibles ou conformité (PCI DSS, HIPAA, ISO 27001).
  • Outils open source : Prowler (multi-cloud, 200+ contrôles GCP), ScoutSuite, Cloud Custodian. Combo minimal Prowler + Cloud Custodian = CSPM viable pour petite équipe.
  • Certification cible : Professional Cloud Security Engineer (PCSE). Labs gratuits sur Google Cloud Skills Boost.

Pour un parcours d'apprentissage complet qui intègre GCP Security avec AWS et Azure, voir la roadmap Cloud Security 2026. Pour resituer GCP Security dans une discipline DevSecOps complète, lire la roadmap DevSecOps et différence entre DevOps et DevSecOps. Pour sécuriser les workloads GKE avec des contrôles images et runtime, scan de conteneurs : pourquoi et comment détaille la stack outillée.

Questions fréquentes

  • Par où commencer quand on débute en GCP Security ?
    Trois fondamentaux dans l'ordre : comprendre le modèle de responsabilité partagée et la hiérarchie Organization → Folder → Project, maîtriser l'IAM (principaux, rôles prédéfinis vs custom, bindings, conditions), et installer Security Command Center Standard (gratuit). Ces trois briques couvrent 60 % du risque courant. Ensuite seulement aborder VPC Service Controls, Workload Identity Federation et Cloud KMS. Un débutant peut être opérationnel sur les bases en 3-4 semaines de pratique guidée.
  • Quelles sont les différences clés entre la sécurité AWS et GCP ?
    Quatre différences structurantes : la hiérarchie GCP est native (Org → Folder → Project → Resource) alors qu'AWS agrège via AWS Organizations plus tardif. Les IAM roles GCP sont attachés à des identités globales Google (pas à des utilisateurs IAM locaux). Les service accounts GCP sont des principals à part entière (pas juste des rôles). VPC Service Controls est un périmètre de sécurité sans équivalent direct AWS (s'approche plus des security groups + PrivateLink combinés). Workload Identity Federation est plus répandu en GCP qu'en AWS sur les workloads GKE.
  • Les clés JSON de service account, c'est vraiment dangereux ?
    Oui, c'est le premier vecteur de compromission GCP en 2026. Les clés JSON sont des credentials long-lived exfiltrables via un phishing, un laptop compromis, un repo Git public, un log mal filtré. Google recommande explicitement depuis 2023 de migrer vers Workload Identity Federation (pour les charges de travail externes ou K8s) et Application Default Credentials avec gcloud CLI ou metadata server. Désactiver la création de clés JSON via Organization Policy `iam.disableServiceAccountKeyCreation` est la mesure défensive la plus impactante.
  • Security Command Center est-il gratuit ?
    Security Command Center a trois niveaux en 2026 : Standard (gratuit, incluant Security Health Analytics avec contrôles basiques CIS), Premium (~50 USD par compte de service actif par mois, ajoute Event Threat Detection, Container Threat Detection, Web Security Scanner, rapports conformité) et Enterprise (pricing custom, ajoute attack path simulation, Mandiant threat intelligence, CSPM multi-cloud). Pour un débutant : Standard est suffisant pour commencer, Premium devient rentable dès qu'on gère des données sensibles ou qu'on vise PCI DSS, HIPAA ou ISO 27001.
  • Comment sécuriser un cluster GKE correctement ?
    Neuf contrôles cumulatifs en 2026 : activer GKE Autopilot ou Standard avec image COS nodes, activer Workload Identity Federation pour les pods, configurer Binary Authorization pour signer les images, activer les Pod Security Standards (PSS Restricted), utiliser Config Connector ou policies Gatekeeper/Kyverno, chiffrer etcd via Cloud KMS, restreindre le Control Plane via Private Cluster + Authorized Networks, activer GKE Sandbox (gVisor) pour workloads non-trustés, et faire remonter les logs GKE dans Cloud Logging avec alertes.
  • Quels outils open source pour scanner un environnement GCP ?
    Trois outils de référence gratuits en 2026 : Prowler (supporte GCP depuis 2023, 200+ contrôles CIS, mapping NIST/PCI/HIPAA), ScoutSuite (NCC Group, multi-cloud, reporting HTML), et Cloud Custodian (policies YAML déclaratives avec remediation automatique). Pour les alternatives commerciales freemium : Wiz Community Edition (avec limite), Orca Security Community, et Lacework. Le combo Prowler + Cloud Custodian couvre 80 % des besoins CSPM open source pour une petite équipe.

Écrit par

Naim Aouaichia

Expert cybersécurité et fondateur de Zeroday Cyber Academy

Expert cybersécurité avec un master spécialisé et un parcours hybride : développement, DevOps, DevSecOps, SOC, GRC. Fondateur de Hash24Security et Zeroday Cyber Academy. Formateur et créateur de contenu technique sur la cybersécurité appliquée, la sécurité des LLM et le DevSecOps.