La sécurité des données est une responsabilité du Data Engineer, pas seulement du RSSI. En entretien, on évalue la capacité à concevoir des architectures qui protègent les données par défaut.
Quelle est la différence entre chiffrement at-rest et in-transit ? Comment les implémentez-vous ?
Quelles sont les règles absolues pour la gestion des secrets dans un pipeline data ?
# JAMAIS : credentials en dur dans le code
conn = psycopg2.connect(password='motdepasse123') # NON
# Bonne pratique 1 : variables d environnement
import os
conn = psycopg2.connect(password=os.environ['DB_PASSWORD'])
# Bonne pratique 2 : Secret Manager (GCP/AWS)
from google.cloud import secretmanager
def get_secret(name: str) -> str:
client = secretmanager.SecretManagerServiceClient()
secret = client.access_secret_version(name=name)
return secret.payload.data.decode('UTF-8')
# Bonne pratique 3 : Workload Identity (zéro credential)
# Le service s authentifie via son identité cloud
# Aucun secret à stocker ou à faire tourner
# Bonne pratique 4 : .gitignore strict
# .env, *.pem, credentials.json, *_key.jsonComment implémentez-vous le principe du moindre privilège dans votre stack data ?
Comment anonymisez-vous techniquement les données PII dans votre data warehouse ?
-- Pseudonymisation : hashage avec sel (réversible avec le sel)
SELECT
SHA256(email || 'sel_secret_2025') AS email_hash,
SHA256(phone || 'sel_secret_2025') AS phone_hash,
-- données non-PII conservées
age_bucket,
region
FROM users;
-- Masquage dynamique Snowflake : montrer selon le rôle
CREATE OR REPLACE MASKING POLICY email_mask AS
(val STRING) RETURNS STRING ->
CASE
WHEN CURRENT_ROLE() IN ('DATA_ANALYST_PII') THEN val
ELSE REGEXP_REPLACE(val, '.+@', '****@')
END;
ALTER TABLE users MODIFY COLUMN email
SET MASKING POLICY email_mask;
-- Généralisation : remplacer valeur précise par intervalle
SELECT
CASE
WHEN age < 25 THEN '18-24'
WHEN age < 35 THEN '25-34'
ELSE '35+'
END AS age_bracket
FROM users;Comment implémentez-vous les audit logs sur votre data warehouse ?
Qu est-ce que 'secure by default' dans une architecture data ?
| Niveau | Maitrise | Signal GO | NO-GO |
|---|---|---|---|
| Confirmé | Secrets dans variables d env, TLS, RBAC basique | N a jamais de credentials en dur dans le code, utilise des variables d environnement | Stocke des mots de passe dans le code ou les logs |
| Senior | Secret Manager, Workload Identity, dynamic masking, audit logs | Utilise Workload Identity ou Secret Manager, a mis en place le dynamic masking | Ne sait pas ce qu est Workload Identity |
Premier entretien gratuit. Rapport GO/NO-GO sous 48h.