Administrator-Audit-Logs für Atlassian Cloud erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Atlassian Cloud Admin-Audit-Logs mit AWS S3 in Google Security Operations aufnehmen. Der Parser versucht zuerst, die eingehende Nachricht als JSON-Objekt zu verarbeiten. Falls das nicht funktioniert, werden reguläre Ausdrücke (Grok-Muster) verwendet, um Felder aus verschiedenen Atlassian Jira-Logformaten zu extrahieren und die extrahierten Daten dem einheitlichen Datenmodell (Unified Data Model, UDM) zuzuordnen.

Hinweise

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz
  • Privilegierter Zugriff auf AWS
  • Privilegierter Zugriff auf Atlassian

AWS IAM und S3-Bucket konfigurieren

  1. Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu der Anleitung unter Bucket erstellen.
  2. Melden Sie sich in der AWS-Konsole an.
  3. Gehen Sie zu S3 > Bucket erstellen.
  4. Geben Sie einen Namen für den Bucket an, z. B. atlassian-admin-audit-logs.
  5. Behalten Sie die anderen Standardeinstellungen bei oder konfigurieren Sie bei Bedarf die Verschlüsselung und die Versionsverwaltung.
  6. Klicken Sie auf Erstellen.
  7. Speichern Sie den Namen und die Region des Buckets zur späteren Verwendung.
  8. Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
  9. Wählen Sie den erstellten Nutzer aus.
  10. Wählen Sie den Tab Sicherheitsanmeldedaten aus.
  11. Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
  12. Wählen Sie Drittanbieterdienst als Anwendungsfall aus.
  13. Klicken Sie auf Weiter.
  14. Optional: Fügen Sie ein Beschreibungstag hinzu.
  15. Klicken Sie auf Zugriffsschlüssel erstellen.
  16. Klicken Sie auf CSV-Datei herunterladen und speichern Sie die Zugriffs-ID und den geheimen Zugriffsschlüssel für die zukünftige Verwendung.
  17. Klicken Sie auf Fertig.
  18. Klicken Sie auf dem Tab Berechtigungen unter Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
  19. Wählen Sie Richtlinien direkt anhängen aus.
  20. Suchen Sie nach der Richtlinie AmazonS3FullAccess.
  21. Wählen Sie die Richtlinie aus.
  22. Klicken Sie auf Weiter.
  23. Klicken Sie auf Berechtigungen hinzufügen.

API-Schlüssel in Atlassian konfigurieren

  1. Melden Sie sich bei Atlassian an.
  2. Rufen Sie die Einstellungen > API-Schlüssel auf.
  3. Klicken Sie rechts oben auf API-Schlüssel erstellen.
  4. Geben Sie einen eindeutigen und aussagekräftigen Namen für den Schlüssel an.
  5. Wählen Sie unter Läuft ab am ein neues Ablaufdatum aus.
  1. Klicke zum Speichern auf Erstellen.
  2. Kopieren und speichern Sie Ihren API-Schlüssel und Ihre Organisations-ID.
  3. Klicken Sie auf Fertig.

Erforderliche Pakete konfigurieren

  1. Melden Sie sich auf dem Host für die Protokollerfassung an (z. B. einer AWS-VM) und führen Sie den folgenden Befehl aus, um AWS-Anmeldedaten zu konfigurieren:

    pip install boto3 requests
    aws configure
    

Atlassian Log Puller-Skript erstellen

  1. Erstellen Sie die folgende Datei, indem Sie sudo vi area1_to_s3.py eingeben und den folgenden Code kopieren:

    • Nehmen Sie folgende Anpassungen vor:
    #!/usr/bin/env python3
    import os, requests, boto3, datetime
    
    # Settings
    TOKEN = os.environ["ATL_TOKEN"]
    ORG_ID = os.environ["ATL_ORG_ID"]
    AWS_PROFILE = os.getenv("AWS_PROFILE")
    BUCKET = "atlassian-admin-audit-logs"
    
    def fetch_events(cursor=None):
        url = f"https://api.atlassian.com/admin/v1/orgs/{ORG_ID}/events"
        headers = {"Authorization":f"Bearer {TOKEN}"}
        params = {"limit":100, "cursor":cursor} if cursor else {"limit":100}
        resp = requests.get(url, headers=headers, params=params)
        resp.raise_for_status()
        return resp.json()
    
    def upload_json(data, filename):
        session = boto3.Session(profile_name=AWS_PROFILE) if AWS_PROFILE else boto3.Session()
        session.client("s3").put_object(Bucket=BUCKET, Key=filename, Body=data, ContentType="application/json")
        print(f"Uploaded {filename}")
    
    def main():
        today = datetime.datetime.utcnow().strftime("%Y-%m-%d")
        cursor = None
        count = 0
        while True:
            resp = fetch_events(cursor)
            key = f"audits/{today}/events_{count}.json"
            upload_json(resp["data"], key)
            count += 1
            cursor = resp.get("links",{}).get("next")
            if not cursor: break
    
    if __name__=="__main__":
        main()
    
  2. Speichern und beenden Sie vi, indem Sie auf esc > :wq** klicken.

Umgebungsvariablen speichern

  1. Erstellen Sie eine sichere Datei zum Speichern von Umgebungsvariablen in /etc/atlassian_audit.env:

    export ATL_TOKEN="your_atlassian_key"
    export ATL_ORG_ID="your_org_id"
    export AWS_PROFILE="atlassian-logs"
    
  2. Prüfen Sie, ob die Datei sicher ist:

    chmod 600 /etc/atlassian_audit.env
    

Mit Cron automatisieren

  1. Erstellen Sie ein Wrapper-Script für Cron, indem Sie sudo vi /usr/local/bin/run_atlassian_audit.sh ausführen, und kopieren Sie dann den folgenden Code:

    #!/usr/bin/env bash
    source /etc/atlassian_audit.env
    python3 /opt/scripts/export_atlassian_audit.py
    
  2. Machen Sie die Datei ausführbar:

    chmod +x /usr/local/bin/run_atlassian_audit.sh
    
  3. Konfiguration für die tägliche Ausführung um 02:00 Uhr UTC:

    crontab -e
    0 2 * * * /usr/local/bin/run_atlassian_audit.sh >> /var/log/atl_audit.log 2>&1
    

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten