收集 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 控制台。
- 依次前往 S3 > 创建存储桶。
- 为存储桶提供名称(例如
atlassian-admin-audit-logs
)。 - 保留其他默认设置(或根据需要配置加密和版本控制)。
- 点击创建。
- 保存相应存储桶的名称和区域,以供日后参考。
- 按照以下用户指南创建用户:创建 IAM 用户。
- 选择创建的用户。
- 选择安全凭据标签页。
- 在访问密钥部分中,点击创建访问密钥。
- 选择第三方服务作为使用情形。
- 点击下一步。
- 可选:添加说明标记。
- 点击创建访问密钥。
- 点击下载 CSV 文件,然后存储 Access ID 和 Secret Access Key 以供日后参考。
- 点击完成。
- 在权限政策下的权限标签页中,点击添加权限。
- 选择直接附加政策。
- 搜索 AmazonS3FullAccess 政策。
- 选择相应政策。
- 点击下一步。
- 点击添加权限。
在 Atlassian 中配置 API 密钥
- 登录 Atlassian。
- 依次前往设置 > API 密钥。
- 点击右上角的 Create API key。
- 为密钥提供一个唯一的描述性名称。
- 在失效日期下选择新的失效日期。
- 点击创建进行保存。
- 复制并保存您的 API 密钥和组织 ID。
- 点击完成。
配置必需的软件包
登录日志收集主机(例如 AWS 虚拟机),然后运行以下命令来配置 AWS 凭据:
pip install boto3 requests aws configure
创建 Atlassian 日志提取器脚本
输入
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 专业人士那里获得解答。