Cartographie de conformité¶
AKKO fournit des contrôles de sécurité intégrés qui correspondent aux principaux référentiels de conformité. Cette page documente comment chaque fonctionnalité AKKO s'aligne avec les exigences SOC 2, ISO 27001 et RGPD.
Ce n'est pas une certification
Cette cartographie est un guide de référence. L'obtention d'une certification formelle nécessite un audit indépendant, une documentation des politiques et des contrôles organisationnels au-delà de l'implémentation technique.
Tableau de correspondance des contrôles¶
| Fonctionnalité AKKO | Contrôle SOC 2 | ISO 27001 | RGPD |
|---|---|---|---|
| Keycloak SSO + MFA | CC6.1 Contrôle d'accès | A.9 Contrôle d'accès | Art. 32 Sécurité |
| OPA Sécurité au niveau des lignes | CC6.3 Accès logique | A.9.4 Accès système | Art. 25 Protection des données dès la conception |
| pgaudit + logs layer | CC7.2 Supervision | A.12.4 Journalisation | Art. 30 Registre des traitements |
| object storage Webhook d'audit | CC7.2 Supervision | A.12.4 Journalisation | Art. 30 Registre |
| Journal d'événements Keycloak | CC7.2 Supervision | A.12.4 Journalisation | Art. 5 Responsabilité |
| Politiques réseau | CC6.6 Périmètres système | A.13 Sécurité des communications | Art. 32 Sécurité |
| TLS partout | CC6.7 Chiffrement | A.10 Cryptographie | Art. 32 Sécurité |
| Fonction akko_ai_pii() | CC8.1 Gestion des changements | A.18 Conformité | Art. 17 Droit à l'effacement |
| CronJobs de sauvegarde | CC7.5 Récupération | A.12.3 Sauvegarde | Art. 32 Sécurité |
| Helm RBAC (5 rôles) | CC6.2 Accès basé sur les rôles | A.9.2 Accès utilisateur | Art. 32 Sécurité |
Chiffrement au repos¶
Chiffrement des PVC¶
Les PersistentVolumeClaims (PVC) Kubernetes peuvent être chiffrés au repos en configurant la classe de stockage sous-jacente :
- Fournisseurs cloud (EKS/AKS/GKE) : Activez le chiffrement sur la StorageClass en utilisant le KMS du fournisseur (ex. : chiffrement AWS EBS avec une CMK, Azure Disk SSE, GCP CMEK).
- Bare metal / k3s : Utilisez des volumes chiffrés LUKS ou un pilote CSI prenant en charge le chiffrement (ex. : Longhorn avec chiffrement activé).
- k3d (dev) : Non applicable -- le développement local ne nécessite pas de chiffrement au repos.
# Exemple : StorageClass AWS EBS chiffrée
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: encrypted-gp3
provisioner: ebs.csi.aws.com
parameters:
encrypted: "true"
kmsKeyId: "arn:aws:kms:eu-west-1:123456789:key/your-key-id"
type: gp3
PostgreSQL TDE¶
Le chiffrement transparent des données (TDE) PostgreSQL est disponible via :
- Extension pg_tde (PostgreSQL 16+) : Chiffre les fichiers de données des tables au niveau du stockage.
- Chiffrement intégral du disque (recommandé) : Chiffrez le PVC sous-jacent comme décrit ci-dessus -- c'est plus simple et couvre le WAL, les fichiers temporaires et les index.
object storage Server-Side Encryption (SSE)¶
object storage prend en charge le SSE avec un KMS externe :
# values-production.yaml
minio:
environment:
MINIO_KMS_KES_ENDPOINT: "https://kes.akko.local:7373"
MINIO_KMS_KES_KEY_NAME: "akko-minio-key"
Pour les déploiements air-gapped, utilisez object storage KES avec un backend Vault ou le keystore du système de fichiers intégré.
Immutabilité des journaux d'audit¶
Architecture¶
Logs des services --> log shipper --> logs layer --> Backend S3 (object storage)
|
Object Lock (WORM)
logs layer avec S3 Object Lock¶
Pour rendre les journaux d'audit immuables (Écriture unique, lectures multiples) :
-
Créez un bucket object storage verrouillé :
-
Configurez logs layer pour utiliser le bucket verrouillé :
-
Résultat : Les journaux ne peuvent être ni supprimés ni modifiés pendant la période de rétention, satisfaisant les exigences SOC 2 CC7.2 et ISO 27001 A.12.4.
Rétention des données¶
Politiques de rétention configurables¶
La rétention logs layer est configurée via la section limits_config :
# values-production.yaml
loki:
config:
limits_config:
retention_period: 365d # Conserver les journaux pendant 1 an
compactor:
retention_enabled: true
retention_delete_delay: 2h
retention_delete_worker_count: 150
Rétention par flux¶
Différents types de journaux peuvent avoir des périodes de rétention différentes :
loki:
config:
limits_config:
retention_stream:
- selector: '{namespace="akko", app="keycloak"}'
priority: 1
period: 730d # Journaux d'authentification : 2 ans
- selector: '{namespace="akko", app="trino"}'
priority: 1
period: 365d # Journaux de requêtes : 1 an
- selector: '{namespace="akko", app="opa"}'
priority: 1
period: 730d # Journaux de décisions de politiques : 2 ans
Demandes de personnes concernées (RGPD)¶
Pour le RGPD Art. 17 (Droit à l'effacement) :
- Données utilisateur : Gérées dans PostgreSQL -- utilisez les instructions
DELETEstandard. - Journaux d'audit : Si le stockage WORM est utilisé, les journaux contenant des données personnelles sont conservés pendant la période de conformité. Documentez cela dans votre politique de confidentialité comme base légale (Art. 6(1)(c) -- obligation légale).
- Détection des données personnelles : La fonction Trino
akko_ai_pii()peut analyser les résultats de requêtes pour détecter les données personnelles avant l'export, contribuant à l'application de l'Art. 25 (Protection des données dès la conception).