收集 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 Console
  3. 依序前往「S3」>「建立 bucket」
  4. 為 bucket 命名 (例如 atlassian-admin-audit-logs)。
  5. 保留其他預設值 (或視需要設定加密和版本控管)。
  6. 點選「建立」
  7. 儲存 bucket 的「Name」(名稱) 和「Region」(區域),以供日後參考。
  8. 請按照這份使用者指南建立使用者建立 IAM 使用者
  9. 選取建立的「使用者」
  10. 選取「安全憑證」分頁標籤。
  11. 在「Access Keys」部分中,按一下「Create Access Key」
  12. 選取「第三方服務」做為「用途」
  13. 點選「下一步」
  14. 選用:新增說明標記。
  15. 按一下「建立存取金鑰」
  16. 按一下「下載 CSV 檔案」,然後儲存「存取 ID」和「私密存取金鑰」,以供日後參考。
  17. 按一下 [完成]
  18. 在「權限政策」下方的「權限」分頁中,按一下「新增權限」
  19. 選取「直接附加政策」
  20. 搜尋「AmazonS3FullAccess」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 執行:

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

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。