Kubescape est une plateforme open-source de gestion de la posture de sécurité Kubernetes par ARMO (projet en incubation CNCF). Elle fournit l’analyse des risques, le balayage de conformité, la détection des mauvaises configurations et l’analyse des vulnérabilités dans les IDE, les pipelines CI/CD et les clusters en cours d’exécution.
| Commande | Description |
|---|
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | bash | Installer la dernière version (macOS/Linux) |
brew install kubescape | Installer via Homebrew (macOS) |
scoop install kubescape | Installer via Scoop (Windows) |
docker run -it kubescape/kubescape:latest kubescape --help | Exécuter Kubescape dans Docker |
kubescape version | Afficher la version installée |
kubescape download | Télécharger les frameworks et les politiques |
kubescape download --frameworks | Télécharger tous les frameworks |
| Commande | Description |
|---|
kubescape scan | Balayer le cluster actuel en utilisant kubeconfig |
kubescape scan --kubeconfig /path/to/kubeconfig | Balayer le cluster avec kubeconfig spécifique |
kubescape scan -f manifest.yaml | Balayer le fichier manifeste YAML |
kubescape scan -f *.yaml | Balayer plusieurs fichiers manifestes |
kubescape scan -d ./k8s-configs/ | Balayer tous les manifestes dans le répertoire |
kubescape scan --helm /path/to/chart | Balayer la charte Helm avant le déploiement |
kubescape scan --include-namespaces default,kube-system | Balayer uniquement les espaces de noms spécifiques |
kubescape scan --exclude-namespaces kube-node-lease | Exclure les espaces de noms du scan |
kubescape scan --severity high,critical | Afficher uniquement les problèmes de haute/critique gravité |
kubescape scan --pod-runtime containerd | Spécifier le runtime du conteneur (docker, containerd, cri-o) |
| Commande | Description |
|---|
kubescape scan framework nsa | Balayer contre le guide de durcissement Kubernetes NSA-CISA |
kubescape scan framework cis | Balayer contre le benchmark CIS Kubernetes |
kubescape scan framework mitre | Balayer contre le framework MITRE ATT&CK |
kubescape scan framework pci-dss | Balayer contre la conformité PCI-DSS |
kubescape scan framework soc2 | Balayer contre la conformité SOC2 |
kubescape scan framework hipaa | Balayer contre la conformité HIPAA |
kubescape scan -f manifest.yaml -f nsa,cis,mitre | Balayer le manifeste contre plusieurs frameworks |
kubescape scan --list-frameworks | Lister tous les frameworks disponibles |
| Commande | Description |
|---|
kubescape scan image gcr.io/project/image:tag | Balayer l’image du conteneur pour les vulnérabilités |
kubescape scan image --image-scan-concurrency 5 image1 image2 | Balayer plusieurs images en parallèle |
kubescape scan -f manifest.yaml --include-image-scanning | Balayer les manifestes et toutes les images référencées |
kubescape scan image --severity critical --only-vulnerabilities | Afficher uniquement les vulnérabilités critiques |
kubescape scan image --image-registry-credentials user:pass@registry:5000 | Balayer les images du registre privé |
kubescape scan -f manifest.yaml --image-scan-cache | Mettre en cache les analyses d’images pour les exécutions répétées |
| Commande | Description |
|---|
kubescape scan -o json > report.json | Résultats de sortie au format JSON |
kubescape scan -o pdf > report.pdf | Générer un rapport PDF |
kubescape scan -o html > report.html | Générer un rapport HTML |
kubescape scan -o sarif > report.sarif | Sortie au format SARIF (pour les outils CI/CD) |
kubescape scan -o pretty-json | Sortie JSON au format élégant |
kubescape scan --output-file report.json -o json | Enregistrer la sortie dans un fichier |
kubescape scan -o json | jq '.results[] | select(.severity=="critical")' | Filtrer les résultats JSON avec jq |
| Commande | Description |
|---|
kubescape scan --fail-threshold 80 | Échouer le pipeline si le score de risque est inférieur à 80 |
kubescape scan --fail-threshold 70 --severity critical | Passerelle du pipeline sur les résultats critiques |
kubescape scan -f manifest.yaml --fail-threshold 85 -o sarif | Générer SARIF + passerelle dans GitHub Actions |
kubescape scan --fail-on-compliance-failure | Échouer si les frameworks de conformité échouent |
kubescape scan -o json --format-by-severity | Sortie groupée par niveau de gravité |
- name: Run Kubescape security scan
uses: kubescape/github-action@v2
with:
kubeconfig: ${{ secrets.KUBECONFIG }}
frameworks: nsa,cis
fail-threshold: 80
output-format: sarif
output-file: kubescape-report.sarif
- name: Upload SARIF to GitHub Security
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: kubescape-report.sarif
kubescape_scan:
stage: security
image: kubescape/kubescape:latest
script:
- kubescape scan framework nsa --fail-threshold 80 -o sarif > report.sarif
- kubescape scan framework cis --fail-threshold 75 -o json > cis-report.json
artifacts:
reports:
sast: report.sarif
paths:
- cis-report.json
stage('Security: Kubescape') {
steps {
sh '''
kubescape scan -f k8s-manifests/ \
--fail-threshold 80 \
-o sarif > kubescape-report.sarif \
-o json > kubescape-report.json
'''
archiveArtifacts artifacts: '*-report.*'
}
}
| Commande | Description |
|---|
kubescape download --output-dir ./offline-data | Télécharger tous les frameworks dans le répertoire local |
kubescape download --frameworks nsa,cis --output-dir ./fw | Télécharger les frameworks spécifiques hors ligne |
kubescape scan -f manifest.yaml --offline --frameworks-dir ./offline-data | Balayer en utilisant les frameworks téléchargés |
kubescape scan -d manifests/ --offline --frameworks-dir ./offline-data | Scan de répertoire hors ligne |
| Commande | Description |
|---|
kubescape config | Afficher la configuration actuelle |
kubescape config set <key> <value> | Définir la valeur de configuration |
kubescape config get <key> | Obtenir la valeur de configuration |
kubescape config -p ~/.kubescape/config | Utiliser le chemin du fichier de configuration personnalisée |
kubescape scan -c ./custom-config.yaml | Balayer avec configuration personnalisée |
| Commande | Description |
|---|
kubescape operator install | Installer l’opérateur Kubescape dans le cluster |
kubescape operator install --namespace kubescape | Installer l’opérateur dans un espace de noms spécifique |
kubescape operator uninstall | Supprimer l’opérateur Kubescape |
kubectl get deployment -n kubescape | Vérifier l’installation de l’opérateur |
kubectl logs -n kubescape -l app=kubescape-operator | Afficher les journaux de l’opérateur |
kubescape operator status | Vérifier l’état de l’opérateur |
| Commande | Description |
|---|
kubescape scan --exceptions exceptions.json | Appliquer les règles d’exception au balayage |
kubescape scan --enable-controls <control-id> | Activer les contrôles spécifiques |
kubescape scan --disable-controls <control-id> | Désactiver les contrôles spécifiques |
kubescape scan --controls <id1>,<id2> | Exécuter uniquement les contrôles spécifiés |
kubescape scan --list-controls | Lister tous les contrôles disponibles |
kubescape scan --list-controls --framework nsa | Lister les contrôles du framework NSA |
{
"exceptions": [
{
"ruleID": "C-0001",
"namespace": "test-namespace",
"resources": ["deployment/test-app"],
"justification": "Development environment exemption"
}
]
}
| Commande | Description |
|---|
kubescape scan --verbose | Afficher la sortie de débogage détaillée |
kubescape scan --log-level debug | Définir le niveau de journalisation (debug, info, warn, error) |
kubescape scan --submit | Envoyer les résultats du balayage à Kubescape Cloud |
kubescape scan --account <account-id> | Envoyer vers un compte cloud spécifique |
kubescape scan --keep-local | Balayer sans envoyer au cloud |
kubescape scan --max-workers 10 | Contrôler les travailleurs de traitement parallèle |
kubescape scan --timeout 300 | Définir le délai d’expiration en secondes |
| Pratique | Description |
|---|
| Versionner les manifestes | Toujours versionner les manifestes Kubernetes; balayer avant le déploiement |
| Passerelle sur le score de risque | Définir --fail-threshold dans CI/CD; utiliser 75-85 selon la tolérance au risque de l’organisation |
| Balayage multi-framework | Utiliser NSA + CIS + MITRE; aborder en premier les résultats de plus haute priorité |
| Balayage régulier des images | Balayer les images de conteneur dans la chaîne d’approvisionnement; détecter les CVE tôt |
| Isolation de l’espace de noms | Utiliser --include-namespaces pour concentrer les balayages; exclure les espaces de noms du système |
| Hors ligne dans les environnements sécurisés | Télécharger les frameworks hors ligne pour les clusters isolés par air |
| Surveiller dans le temps | Suivre les scores de risque dans les balayages; investiguer les régressions |
| Justification des exceptions | Documenter les exceptions; examiner périodiquement pour supprimer |
| Helm pré-déploiement | Exécuter kubescape scan --helm sur les graphiques avant Helm install |
| Activer RBAC | Vérifier que ServiceAccount a les autorisations minimales requises |
| Utiliser la sortie SARIF | Intégrer les rapports SARIF dans l’IDE, GitHub et les systèmes SIEM |
| Examiner les détails du contrôle | Utiliser kubescape scan --list-controls pour comprendre le but de chaque contrôle |