Eksportowanie wyników
Wyniki skanów można pobierać bezpośrednio z aplikacji, eksportować jako CSV lub pobierać programowo przez REST API.
Pobieranie ze strony szczegółów skanu
Każdy zakończony skan ma przycisk Download w nagłówku strony szczegółów skanu. Kliknij go, aby pobrać pełny raport z tego skanu.
Eksport CSV ze strony Scans
Aby wyeksportować CSV obejmujący historię skanów:
- Przejdź do sekcji Scans w panelu bocznym
- Kliknij Export CSV w prawym górnym rogu nagłówka strony (widoczny, gdy masz co najmniej jeden zakończony skan)
Plik CSV zawiera jeden wiersz na kontrolę z kolumnami:
| Kolumna | Opis |
|---|---|
id | Identyfikator kontroli |
title | Tytuł kontroli |
result | Passed, Failed lub Skipped |
severity | Critical, High, Medium lub Low |
framework | CIS, EIDSCA, CISA lub other |
helpUrl | Link referencyjny |
remediationSteps | Wskazówki naprawcze |
rawOutput | Surowa wartość wykryta w tenancie |
Pliki CSV są kodowane jako UTF-8.
Eksport przez API
Wyniki można pobierać programowo za pomocą REST API. Umożliwia to automatyczne raportowanie, integrację z systemami zgłoszeniowymi lub zasilanie danych do SIEM. Dostęp do API jest dostępny w planach Enterprise.
Pobranie wszystkich wyników skanu
bash
curl https://api.aether365.io/scans/{scanId}/results \
-H "Authorization: Bearer <api-key>"Zwraca stronicowaną listę wszystkich wyników kontroli. Pełną dokumentację znajdziesz w sekcji API wyników.
Filtrowanie według statusu
bash
curl "https://api.aether365.io/scans/{scanId}/results?result=Failed" \
-H "Authorization: Bearer <api-key>"Filtrowanie według ważności
bash
curl "https://api.aether365.io/scans/{scanId}/results?severity=Critical" \
-H "Authorization: Bearer <api-key>"Przykład w Python: eksport wszystkich niespełnionych kontroli do CSV
python
import requests
import csv
API_KEY = "your-api-key"
SCAN_ID = "your-scan-id"
headers = {"Authorization": f"Bearer {API_KEY}"}
results = []
page = 1
while True:
resp = requests.get(
f"https://api.aether365.io/scans/{SCAN_ID}/results",
params={"result": "Failed", "page": page, "limit": 100},
headers=headers,
)
data = resp.json()
results.extend(data["data"])
if page >= data["meta"]["totalPages"]:
break
page += 1
with open("failed_checks.csv", "w", newline="") as f:
writer = csv.DictWriter(
f, fieldnames=["id", "title", "severity", "framework", "remediationSteps"]
)
writer.writeheader()
writer.writerows(results)
print(f"Exported {len(results)} failed checks")Przykład w PowerShell: pobranie wszystkich krytycznych błędów
powershell
$headers = @{ Authorization = "Bearer $env:AETHER365_API_KEY" }
$scanId = "your-scan-id"
$page = 1
$results = @()
do {
$response = Invoke-RestMethod `
-Uri "https://api.aether365.io/scans/$scanId/results?result=Failed&severity=Critical&page=$page&limit=100" `
-Headers $headers
$results += $response.data
$page++
} while ($page -le $response.meta.totalPages)
$results | Export-Csv -Path "critical_failures.csv" -NoTypeInformation
Write-Host "Exported $($results.Count) critical failures"Automatyczne raportowanie
Możesz połączyć API z istniejącymi narzędziami, aby generować automatyczne raporty po każdym skanie:
- Webhook do skryptu - skonfiguruj powiadomienie Teams lub e-mail jako wyzwalacz, a następnie wywołaj API, aby pobrać najnowsze wyniki
- Zaplanowany skrypt - uruchamiaj skrypt cyklicznie, który pobiera najnowsze wyniki i generuje raport
- Integracja z pipeline CI/CD - pobieraj wyniki po skanie jako element kroku weryfikacji zgodności
Więcej przykładów znajdziesz w sekcji Integracje.