AccueilBlogTest technique sécurité des données : chiffrement, accès, RGPD technique
Guide recrutement data

Test technique sécurité des données : chiffrement, accès, RGPD technique

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.

Data Builder·Juin 2025·6 min de lecture·Data Engineer
Sommaire
  1. Chiffrement des données
  2. Gestion des secrets
  3. Contrôle d accès RBAC
  4. Anonymisation et pseudonymisation
  5. Audit logs
  6. Secure by default
  7. Grille

1Chiffrement at-rest et in-transit

Question discriminante

Quelle est la différence entre chiffrement at-rest et in-transit ? Comment les implémentez-vous ?

2Gestion des secrets : jamais en dur

Question discriminante

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.json

3Contrôle d accès RBAC

Question discriminante

Comment implémentez-vous le principe du moindre privilège dans votre stack data ?

4Anonymisation et pseudonymisation techniques

Question discriminante

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;

5Audit logs : tracer tous les accès

Question discriminante

Comment implémentez-vous les audit logs sur votre data warehouse ?

6Secure by default : le principe

Question discriminante

Qu est-ce que 'secure by default' dans une architecture data ?

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirméSecrets dans variables d env, TLS, RBAC basiqueN a jamais de credentials en dur dans le code, utilise des variables d environnementStocke des mots de passe dans le code ou les logs
SeniorSecret Manager, Workload Identity, dynamic masking, audit logsUtilise Workload Identity ou Secret Manager, a mis en place le dynamic maskingNe sait pas ce qu est Workload Identity

Vous recrutez un Data Engineer soucieux de la sécurité ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.