Vorlagen Scannen
Der Befehl infraguard scan bewertet Ihre ROS-Vorlagen gegen Compliance-Richtlinien.
Grundlegende Verwendung
infraguard scan <template> -p <policy>
Erforderliche Argumente
<template>: Pfad zu Ihrer ROS-Vorlagendatei (YAML oder JSON) - Positionsargument
Erforderliche Flags
-p, --policy <id>: Anzuwendende Richtlinie (kann mehrfach verwendet werden)
Optionale Flags
--format <format>: Ausgabeformat (table,json, oderhtml)-o, --output <file>: Ausgabedateipfad (für HTML- und JSON-Formate)--lang <lang>: Ausgabesprache (en,zh,es,fr,de,ja,pt)-m, --mode <mode>: Scan-Modus:staticfür lokale Analyse oderpreviewfür ROS PreviewStack API (Standard:static)-i, --input <value>: Parameterwerte im Formatkey=value, JSON-Format oder Dateipfad (kann mehrfach angegeben werden)
Richtlinientypen
Sie können mit verschiedenen Richtlinientypen scannen:
1. Einzelne Regeln
Scannen mit einer spezifischen Compliance-Regel:
infraguard scan template.yaml -p rule:aliyun:ecs-instance-no-public-ip
2. Compliance-Pakete
Scannen mit einem vordefinierten Compliance-Paket:
infraguard scan template.yaml -p pack:aliyun:mlps-level-3-pre-check-compliance-pack
3. Wildcard-Mustervergleich
Verwenden Sie Wildcard-Muster (*), um mehrere Regeln oder Pakete zu finden:
Alle Regeln finden:
infraguard scan template.yaml -p "rule:*"
Regeln nach Präfix finden:
infraguard scan template.yaml -p "rule:aliyun:ecs-*"
4. Benutzerdefinierte Richtliniendateien
Scannen mit Ihrer eigenen Rego-Richtliniendatei:
infraguard scan template.yaml -p ./my-custom-rule.rego
5. Richtlinienverzeichnisse
Scannen mit allen Richtlinien in einem Verzeichnis:
infraguard scan template.yaml -p ./my-policies/
Scan-Modi
InfraGuard unterstützt zwei Scan-Modi:
Statischer Modus (Standard)
Führt eine lokale statische Analyse der Vorlage durch, ohne Zugriff auf den Cloud-Anbieter zu benötigen:
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack --mode static
Dieser Modus analysiert die Vorlagenstruktur und Ressourcenkonfigurationen lokal. Er ist schnell und benötigt keine Cloud-Anmeldedaten, unterstützt aber möglicherweise nicht alle ROS-Funktionen (siehe ROS-Funktionsunterstützung).
Preview-Modus
Verwendet die ROS PreviewStack API, um Vorlagen mit tatsächlicher Cloud-Anbieterbewertung zu validieren:
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack --mode preview
Der Preview-Modus bietet eine genauere Analyse für Funktionen, die Laufzeitbewertung erfordern (wie Fn::GetAtt, Fn::GetAZs, etc.). Dieser Modus erfordert, dass ROS-Anmeldedaten konfiguriert sind.
Für Vorlagen, die Funktionen verwenden, die von der statischen Analyse nicht unterstützt werden, empfehlen wir die Verwendung von --mode preview für genauere Ergebnisse.
Mehrere Richtlinien
Wenden Sie mehrere Richtlinien in einem einzigen Scan an:
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
Ausgabeformate
Tabellenformat (Standard)
Zeigt Ergebnisse in einer farbcodierten Tabelle:
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack
Beispielausgabe:
┌──────────────────────┬────────────┬──────────────┬──────────────────────┬─────────────────────────┐
│ RULE ID │ SEVERITY │ RESOURCE │ REASON │ RECOMMENDATION │
├──────────────────────┼────────────┼──────────────┼──────────────────────┼─────────────────────────┤
│ ecs-no-public-ip │ high │ MyECS │ Public IP allocated │ Use NAT Gateway instead │
└──────────────────────┴────────────┴──────────────┴──────────────────────┴─────────────────────────┘
JSON-Format
Maschinenlesbares Format für CI/CD-Integration:
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack --format json
Ausgabe:
{
"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"
}
]
}
HTML-Bericht
Interaktiver HTML-Bericht mit Filter- und Suchfunktionen:
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack --format html -o report.html
Öffnen Sie report.html in Ihrem Browser für eine interaktive Erfahrung.
Exit-Codes
InfraGuard verwendet verschiedene Exit-Codes, um Scan-Ergebnisse anzuzeigen:
0: Keine Verstöße gefunden1: Verstöße gefunden2: Verstöße mit hoher Schwere gefunden
Dies ist nützlich für CI/CD-Pipelines:
#!/bin/bash
infraguard scan template.yaml -p pack:aliyun:quick-start-compliance-pack
if [ $? -eq 2 ]; then
echo "Verstöße mit hoher Schwere gefunden! Deployment blockiert."
exit 1
fi
Beispiele
Beispiel 1: Sicherheitsaudit
infraguard scan production.yaml \
-p pack:aliyun:security-group-best-practice \
-p pack:aliyun:resource-protection-best-practice \
--format html \
-o security-audit.html
Beispiel 2: Compliance-Prüfung
infraguard scan template.yaml \
-p pack:aliyun:mlps-level-3-pre-check-compliance-pack \
-p pack:aliyun:iso-27001-compliance \
--lang de \
--format json \
-o compliance-report.json
Beispiel 3: CI/CD-Integration
# In Ihrer CI/CD-Pipeline
infraguard scan "${TEMPLATE_FILE}" \
-p pack:aliyun:quick-start-compliance-pack \
--format json \
--lang en
Beispiel 4: Preview-Modus mit Parametern
Scannen mit Preview-Modus mit Vorlagenparametern:
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
Sie können auch Parameter aus einer JSON-Datei bereitstellen:
infraguard scan template.yaml \
-p pack:aliyun:quick-start-compliance-pack \
--mode preview \
--input parameters.json
Tipps
- Beginnen Sie mit dem Quick-Start-Paket: Verwenden Sie
pack:aliyun:quick-start-compliance-packfür wesentliche Prüfungen - Verwenden Sie Mehrere Pakete: Kombinieren Sie mehrere Pakete für umfassende Abdeckung
- Berichte Speichern: Verwenden Sie HTML-Format für Stakeholder-Berichte, JSON für Automatisierung
- Sprache Einmal Setzen: Verwenden Sie
infraguard config set lang de, um das Flag--langnicht wiederholen zu müssen
Nächste Schritte
- Erfahren Sie mehr über Richtlinien Verwalten
- Erkunden Sie Ausgabeformate im Detail
- Konfigurieren Sie Konfiguration