Aware-Audit-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Aware-Audit-Logs mithilfe von Amazon S3 in Google Security Operations aufnehmen.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Google SecOps-Instanz
- Privilegierter Zugriff auf den Aware-Mandanten
- Privilegierter Zugriff auf AWS (S3, IAM, Lambda, EventBridge)
Aware-Voraussetzungen erfassen (IDs, API-Schlüssel, Organisations-IDs, Tokens)
- Melden Sie sich in der Aware Admin-Konsole an.
- Gehen Sie zu den Systemeinstellungen > Integrationen > API-Tokens.
- Klicken Sie auf + API-Token und gewähren Sie die Berechtigung Nur Lesezugriff auf Audit-Logs.
- Kopieren und speichern Sie die folgenden Details an einem sicheren Ort:
- API-Token
- API-Basis-URL:
https://api.aware.work/external/system/auditlogs/v1
AWS S3-Bucket und IAM für Google SecOps konfigurieren
- Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu dieser Anleitung: Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets zur späteren Verwendung (z. B.
aware-audit-logs
). - Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
- Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
- Klicken Sie auf Weiter.
- Optional: Fügen Sie ein Beschreibungstag hinzu.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- Klicken Sie auf CSV-Datei herunterladen, um den Access Key (Zugriffsschlüssel) und den Secret Access Key (geheimer Zugriffsschlüssel) zur späteren Verwendung zu speichern.
- Klicken Sie auf Fertig.
- Wählen Sie den Tab Berechtigungen aus.
- Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
- Wählen Sie Berechtigungen hinzufügen aus.
- Wählen Sie Richtlinien direkt anhängen aus.
- Suchen Sie nach der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
IAM-Richtlinie und ‑Rolle für S3-Uploads konfigurieren
- Rufen Sie in der AWS-Konsole IAM > Richtlinien > Richtlinie erstellen > Tab „JSON“ auf.
Geben Sie die folgende Richtlinie ein:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObjects", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::aware-audit-logs/*" }, { "Sid": "AllowGetStateObject", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::aware-audit-logs/aware/state.json" } ] }
- Ersetzen Sie
aware-audit-logs
, wenn Sie einen anderen Bucket-Namen eingegeben haben.
- Ersetzen Sie
Klicken Sie auf Weiter > Richtlinie erstellen.
Rufen Sie IAM > Rollen > Rolle erstellen > AWS-Service > Lambda auf.
Hängen Sie die neu erstellte Richtlinie an.
Geben Sie der Rolle den Namen
AwareAuditLambdaRole
und klicken Sie auf Rolle erstellen.
Lambda-Funktion erstellen
- Rufen Sie in der AWS Console Lambda > Funktionen > Funktion erstellen auf.
- Klicken Sie auf Von Grund auf erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
Einstellung | Wert |
---|---|
Name | aware-audit-poller |
Laufzeit | Python 3.13 |
Architektur | x86_64 |
Ausführungsrolle | AwareAuditLambdaRole |
Nachdem die Funktion erstellt wurde, öffnen Sie den Tab Code, löschen Sie den Stub und geben Sie den folgenden Code ein (
aware-audit-poller.py
):import boto3, gzip, io, json, os, time, urllib.parse import urllib.request from datetime import datetime, timedelta, timezone from botocore.exceptions import ClientError AWARE_ENDPOINT = "https://api.aware.work/external/system/auditlogs/v1" API_TOKEN = os.environ["AWARE_API_TOKEN"] BUCKET = os.environ["S3_BUCKET"] PREFIX = os.environ.get("S3_PREFIX", "aware/audit/") STATE_KEY = os.environ.get("STATE_KEY", "aware/state.json") MAX_PER_PAGE = int(os.environ.get("MAX_PER_PAGE", "500")) s3 = boto3.client("s3") def _load_state(): try: obj = s3.get_object(Bucket=BUCKET, Key=STATE_KEY) return json.loads(obj["Body"].read().decode("utf-8")) except ClientError as e: if e.response.get("Error", {}).get("Code") == "NoSuchKey": return {} raise def _save_state(state): s3.put_object(Bucket=BUCKET, Key=STATE_KEY, Body=json.dumps(state).encode("utf-8")) def handler(event, context): tz_utc = timezone.utc now = datetime.now(tz=tz_utc) state = _load_state() start_date = ( datetime.fromisoformat(state["last_date"]).date() if "last_date" in state else (now - timedelta(days=1)).date() ) end_date = now.date() total = 0 day = start_date while day <= end_date: day_str = day.strftime("%Y-%m-%d") params = {"filter": f"startDate:{day_str},endDate:{day_str}", "limit": str(MAX_PER_PAGE)} offset = 1 out = io.BytesIO() gz = gzip.GzipFile(filename="aware_audit.jsonl", mode="wb", fileobj=out) wrote_any = False while True: q = urllib.parse.urlencode({**params, "offset": str(offset)}) req = urllib.request.Request(f"{AWARE_ENDPOINT}?{q}") req.add_header("X-Aware-Api-Key", API_TOKEN) with urllib.request.urlopen(req, timeout=30) as resp: payload = json.loads(resp.read().decode("utf-8")) items = (payload.get("value") or {}).get("auditLogData") or [] if not items: break for item in items: gz.write((json.dumps(item, separators=(",", ":")) + "n").encode("utf-8")) total += 1 wrote_any = True offset += 1 time.sleep(0.2) gz.close() if wrote_any: key = f"{PREFIX}{day.strftime('%Y/%m/%d')}/aware_audit_{now.strftime('%Y%m%d_%H%M%S')}.jsonl.gz" s3.put_object( Bucket=BUCKET, Key=key, Body=out.getvalue(), ContentType="application/json", ContentEncoding="gzip", ) _save_state({"last_date": day.isoformat()}) day += timedelta(days=1) return {"status": "ok", "written": total}
Klicken Sie auf Konfiguration> Umgebungsvariablen> Bearbeiten> Neue Umgebungsvariable hinzufügen.
Geben Sie die folgenden Umgebungsvariablen ein und ersetzen Sie die Platzhalter durch Ihre Werte:
Schlüssel Beispielwert S3_BUCKET
aware-audit-logs
S3_PREFIX
aware/audit/
STATE_KEY
aware/state.json
AWARE_API_TOKEN
<your-aware-api-token>
MAX_PER_PAGE
500
Bleiben Sie nach dem Erstellen der Funktion auf der zugehörigen Seite oder öffnen Sie Lambda > Funktionen > Ihre Funktion**.
Wählen Sie den Tab Konfiguration aus.
Klicken Sie im Bereich Allgemeine Konfiguration auf Bearbeiten.
Ändern Sie Zeitlimit in 5 Minuten (300 Sekunden) und klicken Sie auf Speichern.
EventBridge-Zeitplan erstellen
- Gehen Sie zu Amazon EventBridge > Scheduler > Create schedule (Amazon EventBridge > Scheduler > Zeitplan erstellen).
- Geben Sie die folgenden Konfigurationsdetails an:
- Wiederkehrender Zeitplan: Preis (
1 hour
). - Ziel: Ihre Lambda-Funktion
aware-audit-poller
. - Name:
aware-audit-poller-1h
.
- Wiederkehrender Zeitplan: Preis (
- Klicken Sie auf Zeitplan erstellen.
Optional: IAM-Nutzer mit Lesezugriff und Schlüssel für Google SecOps erstellen
- Rufen Sie in der AWS-Konsole IAM > Nutzer > Nutzer hinzufügen auf.
- Klicken Sie auf Add users (Nutzer hinzufügen).
- Geben Sie die folgenden Konfigurationsdetails an:
- Nutzer:
secops-reader
. - Zugriffstyp: Zugriffsschlüssel – programmatischer Zugriff.
- Nutzer:
- Klicken Sie auf Nutzer erstellen.
- Minimale Leseberechtigung (benutzerdefiniert) anhängen: Nutzer > secops-reader > Berechtigungen > Berechtigungen hinzufügen > Richtlinien direkt anhängen > Richtlinie erstellen.
Geben Sie im JSON-Editor die folgende Richtlinie ein:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::aware-audit-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::aware-audit-logs" } ] }
Legen Sie
secops-reader-policy
als Name fest.Gehen Sie zu Richtlinie erstellen> suchen/auswählen > Weiter > Berechtigungen hinzufügen.
Rufen Sie Sicherheitsanmeldedaten > Zugriffsschlüssel > Zugriffsschlüssel erstellen auf.
Laden Sie die CSV herunter (diese Werte werden in den Feed eingegeben).
Feed in Google SecOps konfigurieren, um Aware-Audit-Logs aufzunehmen
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf + Neuen Feed hinzufügen.
- Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B.
Aware Audit logs
. - Wählen Sie Amazon S3 V2 als Quelltyp aus.
- Wählen Sie Aware-Audit als Logtyp aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- S3-URI:
s3://aware-audit-logs/aware/audit/
- Optionen zum Löschen von Quellen: Wählen Sie die gewünschte Option zum Löschen aus.
- Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
- Zugriffsschlüssel-ID: Zugriffsschlüssel des Nutzers mit Zugriff auf den S3-Bucket.
- Secret Access Key (Geheimer Zugriffsschlüssel): Geheimer Nutzersicherheitsschlüssel mit Zugriff auf den S3-Bucket.
- Asset-Namespace: Der Asset-Namespace.
- Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
- S3-URI:
- Klicken Sie auf Weiter.
- Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten