收集 Atlassian Cloud 管理員稽核記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 AWS S3,將 Atlassian Cloud 管理員稽核記錄檔擷取至 Google Security Operations。剖析器會先嘗試將傳入的訊息處理為 JSON 物件。如果失敗,系統會使用規則運算式 (Grok 模式) 從各種 Atlassian Jira 記錄格式中擷取欄位,最終將擷取的資料對應至統合資料模型 (UDM)。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- AWS 的特殊存取權
- Atlassian 的特殊存取權
設定 AWS IAM 和 S3 值區
- 按照這份使用者指南建立 Amazon S3 值區:建立值區
- 登入 AWS Console。
- 依序前往「S3」>「建立 bucket」。
- 為 bucket 命名 (例如
atlassian-admin-audit-logs
)。 - 保留其他預設值 (或視需要設定加密和版本控管)。
- 點選「建立」。
- 儲存 bucket 的「Name」(名稱) 和「Region」(區域),以供日後參考。
- 請按照這份使用者指南建立使用者:建立 IAM 使用者。
- 選取建立的「使用者」。
- 選取「安全憑證」分頁標籤。
- 在「Access Keys」部分中,按一下「Create Access Key」。
- 選取「第三方服務」做為「用途」。
- 點選「下一步」。
- 選用:新增說明標記。
- 按一下「建立存取金鑰」。
- 按一下「下載 CSV 檔案」,然後儲存「存取 ID」和「私密存取金鑰」,以供日後參考。
- 按一下 [完成]。
- 在「權限政策」下方的「權限」分頁中,按一下「新增權限」。
- 選取「直接附加政策」。
- 搜尋「AmazonS3FullAccess」AmazonS3FullAccess政策。
- 選取政策。
- 點選「下一步」。
- 按一下「新增權限」。
在 Atlassian 中設定 API 金鑰
- 登入 Atlassian。
- 依序前往「設定」> API 金鑰。
- 按一下右上方的「建立 API 金鑰」。
- 為金鑰提供容易識別且不重複的名稱。
- 在「到期日」下方選擇新的到期日。
- 按一下「建立」儲存設定。
- 複製並儲存「API 金鑰」和「機構 ID」。
- 按一下 [完成]。
設定必要套件
登入記錄收集主機 (例如 AWS VM),然後執行下列指令來設定 AWS 憑證:
pip install boto3 requests aws configure
建立 Atlassian Log Puller 指令碼
輸入
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()
依序點選
esc
> 輸入:wq
**,儲存並退出vi
。
儲存環境變數
建立安全檔案,在
/etc/atlassian_audit.env
中儲存環境變數:export ATL_TOKEN="your_atlassian_key" export ATL_ORG_ID="your_org_id" export AWS_PROFILE="atlassian-logs"
確保檔案安全無虞:
chmod 600 /etc/atlassian_audit.env
使用 Cron 自動執行作業
執行
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
將檔案設為可執行檔:
chmod +x /usr/local/bin/run_atlassian_audit.sh
設定為每天世界標準時間 02:00 執行:
crontab -e 0 2 * * * /usr/local/bin/run_atlassian_audit.sh >> /var/log/atl_audit.log 2>&1
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。