Slide 1

Slide 1 text

GitHub監査ログを活用した エンタープライズ向けセキュリティ強化と データ分析基盤の構築 2025.04.15 Yutaka.Osada

Slide 2

Slide 2 text

Agenda • DevOpsにおける監査ログの重要性 • GitHubの監査ログを取得する方式 • ストリーミング構成(Azure EventHubs) • Azureソリューションアーキテクチャ例 • 実装・構築のポイント • まとめ DO WHAT MATTERS 2

Slide 3

Slide 3 text

Yutaka Osada (長田 豊) • DevOps Engineer @Avanade Japan • 業務 • Azureコンポーネントを活用したサー ビス構築 • 技術検証、パフォーマンスチューニン グを得意とし、T-SQLが好き。 • 技術スタック • C#, .NET, Azure(PaaS), Azure DevOps, GitHub • Please follow me DO WHAT MATTERS 3 https://github.com/yutaka-art

Slide 4

Slide 4 text

DevOpsプラットフォームの継続的監視 DevOpsのスピードと継続的なイノベーションを支える基盤として、DevOpsプ ラットフォームの継続的監視は必要不可欠 DO WHAT MATTERS 4 DevOps Transformation Dev Ops

Slide 5

Slide 5 text

DevOpsにおける監査ログの重要性 DO WHAT MATTERS 5 • DevOpsプラットフォームでの不審なアクティビティや、意図し ない構成変更が発生した場合の調査 • エンタープライズにおいては、監査ログの長期的な保存をコンプ ライアンスとして求められることが多い

Slide 6

Slide 6 text

GitHubの監査ログとは 監査ログで確認できる情報の概要 • 実行された操作の種類 • リポジトリの新規作成・削除 • Pull RequestやIssueの操作 • 操作の詳細情報 • 操作者(ユーザ名、IPアドレスなど) • 実施日時 • 対象となるリポジトリやファイル名 • etc 約400カラムほどの情報有り DO WHAT MATTERS 6 企業利用における監査ログの扱い • セキュリティ強化 • 不審な操作の早期検知 • インシデント発生時の迅速な原因追跡 • コンプライアンス対応 • 規制要件や社内監査の証跡として活用 • 担当者・責任の明確化 https://docs.github.com/ja/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/about-the-audit-log-for-your-enterprise Free Team Enterprise

Slide 7

Slide 7 text

GitHubの監査ログを取得する方式 DO WHAT MATTERS 7 取得方式 概要 メリット デメリット Web UI GitHubの管理画面(Audit Logページ)で監査ログを 直接参照 - 専門知識がなくてもすぐ に確認可能 - 手軽に検索・フィルタで きる - 手動操作が必要 - 大量のログを定期的・継 続的に取得するには不向 き GitHub Enterprise Settingsによるストリーミ ング GitHub Enterprise上でス トリーミングの設定を行 い、外部サービス(例: Azure Event Hubsなど) へログを送信 - リアルタイムにログを取 得可能 - ログを外部で一元管理し、 分析ツールや可視化サー ビスと連携しやすい - 初期設定のハードルがや や高い - 外部サービスの利用コス トや管理が必要 REST API GitHubが提供するAPI経 由でプログラムから監査 ログを取得(組織 / エン タープライズ単位でのエ ンドポイントあり) - 自動化やスクリプト化が 容易 - 必要な期間・範囲のログ だけ取得できる - APIの利用制限(レート リミット)に注意が必要 - 大量データ取得時はペー ジネーションの扱い等、 実装工夫が必要

Slide 8

Slide 8 text

ストリーミング構成 DO WHAT MATTERS 8 GitHub 監査ログストリーミングとの親和性 • GitHub Enterprise でのみ利用可能 • Organization 単位ではストリーミング設定不可 • 選択可能な出力先(2025.04.01時点) • Amazon S3 / Azure Blob Storage / Azure Event Hubs / Datadog / Google Cloud Storage / Splunk • 今回はEvent Hubsを選択 • Azure Event Hubs を選択する理由 • 単純な履歴管理だけなら Blob Storage で 十分 • 可視化や一部イベント通知など、拡張性が 必要な場合は Event Hubs が最適 Enterprise>Settings>Auditlog https://docs.github.com/ja/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise

Slide 9

Slide 9 text

Solution Architecture DO WHAT MATTERS 9 Azure Resource Group GitHub Event Hubs Container Apps Cosmos DB Enterpriseデータ受信 [Backend endpoint using Dapr] Enterpriseデータ登録 Enterpriseデータ Key Vault Log Analytics Application Insights Enterprise 認 証 ・ 認 可 Enterprise監査ログ Near realtime GitHubに対して何らかの操作を実行 Monitor アラート通知 監査ログ入力 Storage account Container Registry CI/CD { "@timestamp": 1740509280410, "_document_id": "PESjbtR5IpEtCVRIcfdKzQ", "action": "audit_log_streaming.check", "audit_log_stream_id": 3721, "audit_log_stream_result": "ok", "audit_log_stream_sink_details": “xxxxx", "business": “xxxxx-nfr", "business_id": 277532, "created_at": 1740509280410, "operation_type": "access“ ・・・ } 凡例: 追加開発が必要 Enterprise owner 利用ユーザー • Kubernetes@Daprを利用することで実装コードを大幅に削減 • 監査ログ以外の機能(例:GitHub Copilot使用状況、バックアッ プ、コスト管理…etc)をMicro serviceとして一元管理

Slide 10

Slide 10 text

実装・構築ポイント DO WHAT MATTERS 10 • 監査ログ収集のプログラム • Daprの利用 • イベントの収集時に必要なデータ受信や、それをオーケストレーションする機構を バインディング(bindings.azure.eventhubs)へ委任 • データベースへ登録する処理をステートストア(state.azure.cosmosdb)へ委任 • GitHub Rest APIのRate Limitに注意 (PAT:1h/5,000件, GitHub Apps:1h/15,000件) • レスポンスの Headersで何件リクエスト可能か確認可能 • Azureコンポーネントの構築 • Bicepの利用 • それぞれのコンポーネントを手動で構築するとミスが起こるためIaC化を行う Azure Container AppsのDaprを使うなら、Cosmos DBへ データ登録する際のシリアライズに注意・・・ JsonConvert.DeserializeObject(await reader.ReadToEndAsync()); [GitHub Docs - Rate Limit] https://docs.github.com/ja/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28

Slide 11

Slide 11 text

Summary DO WHAT MATTERS 11 • GitHub監査ログの重要性 • セキュリティ強化やコンプライアンス対 応にはログの活用が不可欠です! • 不審なアクティビティの早期検知 • 可視性の変更(Privateリポジトリから Public) • アノニマスユーザのサインイン • Azureとの連携 • Event HubsやBlob Storageを活用する ことで、可視化・分析基盤との統合が可 能!

Slide 12

Slide 12 text

THANK YOU DO WHAT MATTERS Yutaka.Osada [email protected] https://github.com/yutaka-art 12