Collecter les journaux d'audit d'administrateur Atlassian Cloud

Compatible avec :

Ce document explique comment ingérer les journaux d'audit des administrateurs Atlassian Cloud dans Google Security Operations à l'aide d'AWS S3. Le parseur tente d'abord de traiter le message entrant en tant qu'objet JSON. Si cela échoue, il utilise des expressions régulières (modèles Grok) pour extraire les champs de différents formats de journaux Atlassian Jira, en mappant finalement les données extraites au modèle de données unifié (UDM).

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps
  • Accès privilégié à AWS
  • Accès privilégié à Atlassian

Configurer AWS IAM et le bucket S3

  1. Créez un bucket Amazon S3 en suivant ce guide de l'utilisateur : Créer un bucket.
  2. Connectez-vous à la console AWS.
  3. Accédez à S3 > Créer un bucket.
  4. Donnez un nom au bucket (par exemple, atlassian-admin-audit-logs).
  5. Conservez les autres valeurs par défaut (ou configurez le chiffrement et le contrôle des versions si nécessaire).
  6. Cliquez sur Créer.
  7. Enregistrez le nom et la région du bucket pour référence ultérieure.
  8. Créez un utilisateur en suivant ce guide de l'utilisateur : Créer un utilisateur IAM.
  9. Sélectionnez l'utilisateur créé.
  10. Sélectionnez l'onglet Informations d'identification de sécurité.
  11. Cliquez sur Créer une clé d'accès dans la section Clés d'accès.
  12. Sélectionnez Service tiers comme Cas d'utilisation.
  13. Cliquez sur Suivant.
  14. Facultatif : Ajoutez un tag de description.
  15. Cliquez sur Créer une clé d'accès.
  16. Cliquez sur Télécharger le fichier CSV et conservez l'ID d'accès et la clé secrète d'accès pour référence ultérieure.
  17. Cliquez sur OK.
  18. Dans l'onglet Autorisations, sous Règles d'autorisation, cliquez sur Ajouter des autorisations.
  19. Sélectionnez Joindre directement des règles.
  20. Recherchez la règle AmazonS3FullAccess.
  21. Sélectionnez la règle.
  22. Cliquez sur Suivant.
  23. Cliquez sur Ajouter des autorisations.

Configurer la clé API dans Atlassian

  1. Connectez-vous à Atlassian.
  2. Accédez à Paramètres > Clés API.
  3. Cliquez sur Créer une clé API en haut à droite.
  4. Indiquez un nom unique et descriptif pour la clé.
  5. Sélectionnez une nouvelle date d'expiration sous Expire le.
  1. Cliquez sur Créer pour enregistrer.
  2. Copiez et enregistrez votre clé API et votre ID d'organisation.
  3. Cliquez sur OK.

Configurer les packages requis

  1. Connectez-vous à votre hôte de collecte de journaux (par exemple, une VM AWS) et exécutez la commande suivante pour configurer les identifiants AWS :

    pip install boto3 requests
    aws configure
    

Créer un script Atlassian Log Puller

  1. Créez le fichier suivant en saisissant sudo vi area1_to_s3.py et copiez le code suivant :

    • Ajustez les éléments suivants :
    #!/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. Enregistrez et quittez vi en cliquant sur esc > saisissez :wq**.

Stocker des variables d'environnement

  1. Créez un fichier sécurisé pour stocker les variables d'environnement dans /etc/atlassian_audit.env :

    export ATL_TOKEN="your_atlassian_key"
    export ATL_ORG_ID="your_org_id"
    export AWS_PROFILE="atlassian-logs"
    
  2. Assurez-vous que le fichier est sécurisé :

    chmod 600 /etc/atlassian_audit.env
    

Automatiser avec Cron

  1. Créez un script Wrapper pour Cron en exécutant sudo vi /usr/local/bin/run_atlassian_audit.sh, puis copiez le code suivant :

    #!/usr/bin/env bash
    source /etc/atlassian_audit.env
    python3 /opt/scripts/export_atlassian_audit.py
    
  2. Rendez le fichier exécutable :

    chmod +x /usr/local/bin/run_atlassian_audit.sh
    
  3. Configurez l'exécution quotidienne à 2h UTC :

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

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.