Une macro de chiffrement au niveau des colonnes a été mise en place dans le workflow dbt. Cette macro permet le chiffrement des données directement identifiantes, garantissant que les informations sensibles soient chiffrées dès l'insertion, directement dans l'entrepôt de données.
Deux nouvelles variables d'environnement ont été ajoutées pour gérer les clés de chiffrement :
PII_ENCRYPTION_KEY : utilisée pour les données à caractère personnel (PII).GENETICS_ENCRYPTION_KEY : utilisée pour les données génétiques.Une macro, clickhouse__insert_into, a été introduite. Elle réalise les étapes suivantes :
pii et gen_and_loc).aes-128-cbc.Pour chaque colonne nécessitant un chiffrement :
not_salted est précisé.Colonnes chiffrées avec la clé PII_ENCRYPTION_KEY :
- nom, prénom
- sexe, genre, civilité
- situation matrimoniale
- jour, mois, date et lieu de naissance
- date, lieu et cause du décès, s'ils sont présents dans le dossier médical
- numéros de téléphone et coordonnées électroniques
- adresse de résidence
- Numéro d'identifiant permanent du patient : IPP ℹ️ sans sel
- Numéros d'identification des épisodes de soins : IEP, RSS, RUM ℹ️ sans sel
- Numéros d'identification : NIR – INS (Numéro d'identification au répertoire des personnes physiques – identifiant national de santé)
Colonnes chiffrées avec la clé GENETICS_ENCRYPTION_KEY :
- données génomiques
Dans dbt, des tags peuvent ajoutés au niveau des colonnes via les fichiers de configuration .yml.
Voir https://github.com/arkhn/codex/blob/main/documentation/7_contrib_encryption_data.md pour plus de détails.
Dans le fichier dbt_project.yml, définir dbt_encryption à True :
vars:
# Mettre à True si vous souhaitez utiliser le chiffrement des colonnes, False sinon
dbt_encryption: True
Dans tous les modèles, ajouter les tags suivants aux colonnes devant être chiffrées :
piigen_and_locnot_salted (si nécessaire)version:2
models:
- name: <model_name>
columns:
- name: <column_name>
data_type: <string>
description: <markdown_string>
data_tests: ...
tags:
-pii
Dans l'environnement Coder, les clés PII_ENCRYPTION_KEY et GENETICS_ENCRYPTION_KEY sont définies dans le fichier .env.
Pour générer une clé aléatoire pour votre environnement de développement, vous pouvez utiliser : openssl rand -hex 8.