Skip to content

Commit

Permalink
UPDATE kyverno.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ArnaudCHT committed Apr 11, 2024
1 parent 0e139ed commit fa9a62d
Showing 1 changed file with 21 additions and 22 deletions.
43 changes: 21 additions & 22 deletions docs/agreement/kyverno.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,27 @@ Ces politiques peuvent valider, muter, générer et nettoyer les ressources Kube

Dans le cadre de l'offre de services du MIOM, les règles suivantes sont appliquées sur les clusters que nous opérons :

| Kyverno Rules | ValidationFailure Action (Dev, preprod) | ValidationFailure Action (Prod) | Information importantes | Type | description |
| -------------------------- | --------------------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| add-velero-label | | | | Backup | Ajoute une étiquette sur le namespace pour être sauvegardé par Velero |
| add-netpol-allowsame-ns | | | | Sécurité | Autorise le pod à communiquer dans le même namespace |
| add-netpol-deny | | | | Sécurité | Refuse toute communication entrante vers les pods dans un namespace |
| add-netpol-ingress | | | | Sécurité | Autorise la communication entrante depuis le namespace openshift-ingress vers tous les pods dans un nouveau namespace créé |
| add-netpol-logging | | | | Sécurité | Autorise la communication entrante depuis le namespace openshift-logging vers tous les pods dans un nouveau namespace créé |
| add-quota | AUDIT | ENFORCE | CPU: request/limit = 4 , Mem request/limit = 16Gi | Bonne pratique | Cette règle garantit que chaque namespace a un quota de ressources défini pour éviter une utilisation excessive des ressources du cluster |
| add-ttl | | | | Bonne pratique | Ajoute un time to live (TTL) aux JOB dans le cluster, ce qui les conduit à être automatiquement nettoyés après une certaine période de temps |
| check-labels | AUDIT | ENFORCE | Labels requis : app, env, tier | Bonne pratique | Cette règle garantit que toutes les ressources ont les étiquettes nécessaires appliquées aux pod |
| cm-no-credentials | AUDIT | ENFORCE | data non autorisée : password, passwd, secret_key | Sécurité / Bonne pratique | Empêche le stockage des informations d'identification dans les ConfigMaps, ce qui est une mauvaise pratique d'un point de vue sécurité |
| disallow-exec | ENFORCE | ENFORCE | | Sécurité | Empêche l'utilisation de la commande "exec" sur le namespace openshift-etcd pour des raisons de sécurité |
| disallow-latest | AUDIT | ENFORCE | | Bonne pratique | Les Pods n'utilisent pas la balise 'latest' pour leurs images, encourageant l'utilisation de balises versionnées spécifiques |
| disallow-hostpath | AUDIT | ENFORCE | | Sécurité | Empêche l'utilisation des volumes hostPath, qui peuvent être un risque de sécurité s'ils ne sont pas correctement contrôlés |
| disallow-selfprovisionning | AUDIT | ENFORCE | | Sécurité | Empêche la liaison au rôle de self-provisionners pour un contrôle strict de la création de projet OpenShift |
| etcd | ENFORCE | ENFORCE | | Sécurité | Assure que le chiffrement est activé pour etcd dans les clusters OpenShift |
| limit-size-pvc | AUDIT | ENFORCE | pvc < 1Ti | Bonne pratique | Limite la taille des revendications de volume persistant (PVC) pour éviter l'utilisation excessive des ressources de stockage |
| need-containers-ressources | AUDIT | ENFORCE | limits.memory, limits.cpu, request.memory et request.cpu | Bonne pratique | Assure que les demandes de ressources et les limites sont définies pour tous les Pods, pour assurer une utilisation équitable des ressources |
| restrict-image-registry | AUDIT | ENFORCE | registres autorisés : docker.io/, harbor.io/, registry.redhat.io/, quay.io/, bitnami/, ghcr.io/ | Sécurité | Restreint les registres d'images à partir desquels les conteneurs peuvent tirer des images, comme mesure de sécurité pour assurer l'utilisation d'images de confiance uniquement |
| restrict-nodeport | AUDIT | ENFORCE | | Securité | Restreint l'utilisation des services NodePort, qui peuvent exposer des services à l'extérieur du cluster et représenter un risque de sécurité potentiel | <<>> |
| need-liveness-readiness | AUDIT | ENFORCE | | Bonne pratique | Assure que tous les conteneurs ont l'une des trois sondes (Liveness, Readiness ou Startup), pour s'assurer qu'ils signalent correctement leur statut à Openshift |
| job-history | AUDIT | ENFORCE | | Bonne pratique | Cronjob: ajoute les propriétés `successfulJobsHistoryLimit: 5` et `failedJobsHistoryLimit: 5` |
| Kyverno Rules | ValidationFailure Action (Dev, preprod) | ValidationFailure Action (Prod) | Information importantes | Severité | Type | description |
| -------------------------- | --------------------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------- | -------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| add-velero-label | | | |low | Backup | Ajoute une étiquette sur le namespace pour être sauvegardé par Velero |
| add-netpol-allowsame-ns | | | | low | Multi-Tenancy, NetworkPolicy | Autorise le pod à communiquer dans le même namespace |
| add-netpol-deny | | | | low | Multi-Tenancy, NetworkPolicy | Refuse toute communication entrante vers les pods dans un namespace |
| add-netpol-ingress | | | | low | Multi-Tenancy, NetworkPolicy | Autorise la communication entrante depuis le namespace openshift-ingress vers tous les pods dans un nouveau namespace créé |
| add-netpol-logging | | | | low | Multi-Tenancy, NetworkPolicy | Autorise la communication entrante depuis le namespace openshift-logging vers tous les pods dans un nouveau namespace créé |
| add-ttl | | | | medium | Best Practices | Ajoute un time to live (TTL) aux JOB dans le cluster, ce qui les conduit à être automatiquement nettoyés après une certaine période de temps |
| check-labels | AUDIT | ENFORCE | Labels requis : app, env, tier | low | Best Practices | Cette règle garantit que toutes les ressources ont les étiquettes nécessaires appliquées aux pod |
| cm-no-credentials | AUDIT | ENFORCE | data non autorisée : password, passwd, secret_key | medium | Pod Security Standards (Baseline) | Empêche le stockage des informations d'identification dans les ConfigMaps, ce qui est une mauvaise pratique d'un point de vue sécurité |
| disallow-exec | ENFORCE | ENFORCE | | high | Pod Security Standards (Baseline) | Empêche l'utilisation de la commande "exec" sur le namespace openshift-etcd pour des raisons de sécurité |
| disallow-latest | AUDIT | ENFORCE | | medium | Pod Security Standards (Baseline) | Les Pods n'utilisent pas la balise 'latest' pour leurs images, encourageant l'utilisation de balises versionnées spécifiques |
| disallow-hostpath | AUDIT | ENFORCE | | high | Pod Security Standards (Baseline) | Empêche l'utilisation des volumes hostPath, qui peuvent être un risque de sécurité s'ils ne sont pas correctement contrôlés |
| disallow-selfprovisionning | AUDIT | ENFORCE | | high | Pod Security Standards (Baseline) | Empêche la liaison au rôle de self-provisionners pour un contrôle strict de la création de projet OpenShift |
| etcd | ENFORCE | ENFORCE | | high | Pod Security Standards (Baseline) | Assure que le chiffrement est activé pour etcd dans les clusters OpenShift |
| limit-size-pvc | AUDIT | ENFORCE | pvc < 1Ti | low | Best Practices | Limite la taille des revendications de volume persistant (PVC) pour éviter l'utilisation excessive des ressources de stockage |
| need-containers-ressources | AUDIT | ENFORCE | limits.memory, limits.cpu, request.memory et request.cpu | medium | Best Practices | Assure que les demandes de ressources et les limites sont définies pour tous les Pods, pour assurer une utilisation équitable des ressources |
| restrict-image-registry | AUDIT | ENFORCE | registres autorisés : docker.io/, harbor.io/, registry.redhat.io/, quay.io/, bitnami/, ghcr.io/ | medium | Pod Security Standards (Baseline) | Restreint les registres d'images à partir desquels les conteneurs peuvent tirer des images, comme mesure de sécurité pour assurer l'utilisation d'images de confiance uniquement |
| restrict-nodeport | AUDIT | ENFORCE | | medium | Pod Security Standards (Baseline) | Restreint l'utilisation des services NodePort, qui peuvent exposer des services à l'extérieur du cluster et représenter un risque de sécurité potentiel | <<>> |
| need-liveness-readiness | AUDIT | ENFORCE | | medium | Best Practices | Assure que tous les conteneurs ont l'une des trois sondes (Liveness, Readiness ou Startup), pour s'assurer qu'ils signalent correctement leur statut à Openshift |
| job-history | AUDIT | ENFORCE | | low | Best Practices | Cronjob: ajoute les propriétés `successfulJobsHistoryLimit: 5` et `failedJobsHistoryLimit: 5` |

Explication de la difference entre ENFORCE et AUDIT :
- Enforce : Kyverno bloquera l'action (par exemple, la création, la mise à jour ou la suppression d'une ressource) si la politique n'est pas respectée. Cela garantit que toutes les ressources du cluster respectent les politiques mises en place.
Expand Down

0 comments on commit fa9a62d

Please sign in to comment.