Atlassian Cloud 管理監査ログを収集する

以下でサポートされています。

このドキュメントでは、AWS S3 を使用して Atlassian Cloud 管理者監査ログを Google Security Operations に取り込む方法について説明します。パーサーは、まず受信メッセージを JSON オブジェクトとして処理しようとします。失敗した場合は、正規表現(Grok パターン)を使用してさまざまな Atlassian Jira ログ形式からフィールドを抽出し、最終的に抽出されたデータを統合データモデル(UDM)にマッピングします。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス
  • AWS への特権アクセス
  • Atlassian への特権アクセス

AWS IAM と S3 バケットを構成する

  1. バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
  2. AWS コンソールにログインします。
  3. [S3] > [バケットを作成] に移動します。
  4. バケットの名前を指定します(例: atlassian-admin-audit-logs)。
  5. 他のデフォルトはそのままにします(必要に応じて暗号化とバージョン管理を構成します)。
  6. [作成] をクリックします。
  7. バケットの名前リージョンを後で参照できるように保存します。
  8. IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
  9. 作成した [ユーザー] を選択します。
  10. [セキュリティ認証情報] タブを選択します。
  11. [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
  12. [ユースケース] として [サードパーティ サービス] を選択します。
  13. [次へ] をクリックします。
  14. (省略可)説明タグを追加します。
  15. [アクセスキーを作成] をクリックします。
  16. [CSV ファイルをダウンロード] をクリックし、[アクセス ID] と [シークレット アクセスキー] を保存して、今後の参照に備えます。
  17. [完了] をクリックします。
  18. [権限ポリシー] の [権限] タブで、[権限を追加] をクリックします。
  19. [ポリシーを直接アタッチする] を選択します。
  20. AmazonS3FullAccess ポリシーを検索します。
  21. ポリシーを選択します。
  22. [次へ] をクリックします。
  23. [権限を追加] をクリックします。

Atlassian で API キーを構成する

  1. Atlassian にログインします。
  2. [設定] > [API キー] に移動します。
  3. 右上にある [API キーを作成] をクリックします。
  4. 鍵の一意でわかりやすい名前を指定します。
  5. [有効期限] で新しい有効期限を選択します。
  1. [作成] をクリックして保存します。
  2. API キー組織 ID をコピーして保存します。
  3. [完了] をクリックします。

必要なパッケージを構成する

  1. ログ収集ホスト(AWS VM など)にログインし、次のコマンドを実行して AWS 認証情報を構成します。

    pip install boto3 requests
    aws configure
    

Atlassian Log Puller スクリプトを作成する

  1. sudo vi area1_to_s3.py と入力して次のファイルを作成し、次のコードをコピーします。

    • 以下を調整します。
    #!/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. esc > :wq** と入力して、vi を保存して終了します。

環境変数を保存する

  1. /etc/atlassian_audit.env に環境変数を格納する安全なファイルを作成します。

    export ATL_TOKEN="your_atlassian_key"
    export ATL_ORG_ID="your_org_id"
    export AWS_PROFILE="atlassian-logs"
    
  2. ファイルのセキュリティを確保します。

    chmod 600 /etc/atlassian_audit.env
    

Cron を使用して自動化する

  1. sudo vi /usr/local/bin/run_atlassian_audit.sh を実行して Cron のラッパー スクリプトを作成し、次のコードをコピーします。

    #!/usr/bin/env bash
    source /etc/atlassian_audit.env
    python3 /opt/scripts/export_atlassian_audit.py
    
  2. ファイルを実行可能にします。

    chmod +x /usr/local/bin/run_atlassian_audit.sh
    
  3. 毎日 02:00 UTC に実行するように構成します。

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

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。