Scanner les Modèles
La commande infraguard scan évalue vos modèles ROS par rapport aux politiques de conformité.
Utilisation de Base
infraguard scan <template> -p <policy>
Arguments Requis
<template>: Chemin vers votre fichier de modèle ROS (YAML ou JSON) - argument positionnel
Flags Requis
-p, --policy <id>: Politique à appliquer (peut être utilisée plusieurs fois)
Flags Optionnels
--format <format>: Format de sortie (table,json, ouhtml)-o, --output <file>: Chemin du fichier de sortie (pour les formats HTML et JSON)--lang <lang>: Langue de sortie (en,zh,es,fr,de,ja,pt)-m, --mode <mode>: Mode de scan :staticpour analyse locale oupreviewpour ROS PreviewStack API (par défaut :static)-i, --input <value>: Valeurs de paramètres au formatkey=value, JSON, ou chemin de fichier (peut être spécifié plusieurs fois)
Types de Politiques
Vous pouvez scanner avec différents types de politiques :
1. Règles Individuelles
Scanner avec une règle de conformité spécifique :
infraguard scan template.yaml -p rule:aliyun:ecs-instance-no-public-ip
2. Packs de Conformité
Scanner avec un pack de conformité prédéfini :
infraguard scan template.yaml -p pack:aliyun:mlps-level-3-pre-check-compliance-pack
3. Correspondance de Motifs Génériques
Utilisez des motifs génériques (*) pour correspondre à plusieurs règles ou packs :
Correspondre à toutes les règles :
infraguard scan template.yaml -p "rule:*"
Correspondre les règles par préfixe :
infraguard scan template.yaml -p "rule:aliyun:ecs-*"
4. Fichiers de Politiques Personnalisées
Scanner avec votre propre fichier de politique Rego :
infraguard scan template.yaml -p ./my-custom-rule.rego
5. Répertoires de Politiques
Scanner avec toutes les politiques dans un répertoire :
infraguard scan template.yaml -p ./my-policies/
Modes de Scan
InfraGuard supporte deux modes de scan :
Mode Statique (Par Défaut)
Effectue une analyse statique locale du modèle sans nécessiter d'accès au fournisseur de cloud :
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack --mode static
Ce mode analyse la structure du modèle et les configurations de ressources localement. Il est rapide et ne nécessite pas de identifiants cloud, mais peut ne pas supporter toutes les fonctionnalités ROS (voir Support des Fonctionnalités ROS).
Mode Preview
Utilise l'API ROS PreviewStack pour valider les modèles avec une évaluation réelle du fournisseur de cloud :
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack --mode preview
Le mode preview fournit une analyse plus précise pour les fonctionnalités qui nécessitent une évaluation à l'exécution (telles que Fn::GetAtt, Fn::GetAZs, etc.). Ce mode nécessite que les identifiants ROS soient configurés.
Pour les modèles utilisant des fonctionnalités non supportées par l'analyse statique, nous recommandons d'utiliser --mode preview pour des résultats plus précis.
Plusieurs Politiques
Appliquer plusieurs politiques dans un seul scan :
infraguard scan template.yaml \
-p rule:aliyun:ecs-instance-no-public-ip \
-p rule:aliyun:rds-instance-enabled-disk-encryption \
-p pack:aliyun:quick-start-compliance-pack
Formats de Sortie
Format Tableau (Par Défaut)
Affiche les résultats dans un tableau codé par couleur :
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack
Exemple de sortie :
┌──────────────────────┬────────────┬──────────────┬──────────────────────┬─────────────────────────┐
│ RULE ID │ SEVERITY │ RESOURCE │ REASON │ RECOMMENDATION │
├──────────────────────┼────────────┼──────────────┼──────────────────────┼─────────────────────────┤
│ ecs-no-public-ip │ high │ MyECS │ Public IP allocated │ Use NAT Gateway instead │
└──────────────────────┴────────────┴──────────────┴──────────────────────┴─────────────────────────┘
Format JSON
Format lisible par machine pour l'intégration CI/CD :
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack --format json
Sortie :
{
"summary": {
"total": 1,
"high": 1,
"medium": 0,
"low": 0
},
"violations": [
{
"rule_id": "ecs-no-public-ip",
"severity": "high",
"resource_id": "MyECS",
"reason": "Public IP allocated",
"recommendation": "Use NAT Gateway instead"
}
]
}
Rapport HTML
Rapport HTML interactif avec filtrage et recherche :
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack --format html -o report.html
Ouvrez report.html dans votre navigateur pour une expérience interactive.
Codes de Sortie
InfraGuard utilise différents codes de sortie pour indiquer les résultats du scan :
0: Aucune violation trouvée1: Violations trouvées2: Violations de haute sévérité trouvées
Cela est utile pour les pipelines CI/CD :
#!/bin/bash
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack
if [ $? -eq 2 ]; then
echo "Violations de haute sévérité trouvées ! Blocage du déploiement."
exit 1
fi
Exemples
Exemple 1 : Audit de Sécurité
infraguard scan production.yaml \
-p pack:aliyun:security-group-best-practice \
-p pack:aliyun:resource-protection-best-practice \
--format html \
-o security-audit.html
Exemple 2 : Vérification de Conformité
infraguard scan template.yaml \
-p pack:aliyun:mlps-level-3-pre-check-compliance-pack \
-p pack:aliyun:iso-27001-compliance \
--lang fr \
--format json \
-o compliance-report.json
Exemple 3 : Intégration CI/CD
# Dans votre pipeline CI/CD
infraguard scan "${TEMPLATE_FILE}" \
-p pack:aliyun:quick-start-compliance-pack \
--format json \
--lang en
Exemple 4 : Mode Preview avec Paramètres
Scanner en utilisant le mode preview avec paramètres de modèle :
infraguard scan template.yaml \
-p pack:aliyun:quick-start-compliance-pack \
--mode preview \
--input InstanceType=ecs.c6.large \
--input ImageId=centos_7_9_x64_20G_alibase_20231219.vhd
Vous pouvez également fournir des paramètres depuis un fichier JSON :
infraguard scan template.yaml \
-p pack:aliyun:quick-start-compliance-pack \
--mode preview \
--input parameters.json
Conseils
- Commencer avec le Pack de Démarrage Rapide : Utilisez
pack:aliyun:quick-start-compliance-packpour les vérifications essentielles - Utiliser Plusieurs Packs : Combinez plusieurs packs pour une couverture complète
- Enregistrer les Rapports : Utilisez le format HTML pour les rapports aux parties prenantes, JSON pour l'automatisation
- Définir la Langue Une Fois : Utilisez
infraguard config set lang frpour éviter de répéter le flag--lang
Prochaines Étapes
- Apprenez-en plus sur Gestion des Politiques
- Explorez Formats de Sortie en détail
- Configurez Configuration