Skip to main content

あなたの組織の監査ログを確認する

Audit log により、Organization の管理者は Organization のメンバーによって行われたアクションをすばやくレビューできます。 これには、誰がいつ何のアクションを実行したかなどの詳細が残されます。

Audit log にアクセスする

メモ

Webhook は、特定のユース ケースの監査ログまたは API ポーリングの代替策として適している場合があります。 Webhook は、リポジトリ、Organization、または Enterprise で特定のイベントが発生したときに GitHub がサーバーに通知する方法です。 Enterprise、Organization、またはリポジトリで特定のイベントが発生したときに学習してログを記録するだけの場合、API や監査ログの検索と比較して、Webhook がより効率的である可能性があります。 「Webhook ドキュメント」をご覧ください。

監査ログには、過去 180 日以内に Organization に影響を及ぼすアクティビティによってトリガーされたイベントがリストされます。 Organization の Audit log にアクセスできるのはオーナーのみです。

既定では、過去 3 か月のイベントのみが表示されます。 古いイベントを表示するには、created パラメーターを使って日付範囲を指定します。 「検索構文を理解する」をご覧ください。

  1. GitHub の右上隅にあるプロフィール画像をクリックしてから、[ Your organizations] をクリックします。

  2. 組織をクリックして選択します。

  3. Organization 名の下で、[ Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  4. サイドバーの [Archive] セクションで、[ Logs] をクリックしてから、[Audit log] をクリックします。

Audit log を検索する

各監査ログ エントリの名前は、イベントのカテゴリと、それに続く操作タイプで構成されます。 たとえば、repo.create エントリは repo カテゴリに対する create 操作を意味します。

各 Audit log エントリには、次のようなイベントに関する適切な情報が表示されます:

  • アクションが実行された エンタープライズまたは組織
  • アクションを実行したユーザー (アクター)
  • アクションによって影響を受けたユーザー
  • アクションの対象となったリポジトリ
  • 実行されたアクションです
  • アクションが実行された国
  • アクションが発生した日時
  • アクションを実行したユーザー (アクター) の SAML SSO および SCIM ID
  • Web UI 以外のアクションの場合、ユーザー (アクター) が認証した方法
  • 必要に応じて、アクションを実行したユーザー (アクター) の送信元 IP アドレス

テキストを使用してエントリを検索することはできません。 ただし、さまざまなフィルターを使用すれば検索クエリを作成できます。 ログにクエリを実行するときに使用される多くの演算子 (->< など) は、GitHub 全体で検索するときのものと同じ形式です。 詳しくは、「GitHubでの検索について」をご覧ください。

操作に基づく検索

operation 修飾子は、アクションを特定の操作の種類に限定するときに使ってください。 たとえば次のような点です。

  • operation:access は、リソースがアクセスされたすべてのイベントを検索します。
  • operation:authentication は、認証イベントが実行されたすべてのイベントを検索します。
  • operation:create は、リソースが作成されたすべてのイベントを検索します。
  • operation:modify は、既存のリソースが変更されたすべてのイベントを検索します。
  • operation:remove は、既存のリソースが削除されたすべてのイベントを検索します。
  • operation:restore は、既存のリソースが復元されたすべてのイベントを検索します。
  • operation:transfer は、既存のリソースが移動されたすべてのイベントを検索します。

リポジトリに基づく検索

repo 修飾子は、アクションを特定のリポジトリに限定するときに使ってください。 次に例を示します。

  • repo:my-org/our-repo は、my-org 組織内の our-repo リポジトリで発生したすべてのイベントを検索します。
  • repo:my-org/our-repo repo:my-org/another-repo は、my-org組織内の our-repo および another-repo リポジトリで発生したすべてのイベントを検索します。
  • -repo:my-org/not-this-repo は、my-org 組織内の not-this-repo リポジトリで発生したすべてのイベントを除外します。

repo 修飾子内にアカウント名を含める必要があります。repo:our-repo を検索するだけでは作動しません。

アクターに基づく検索

actor修飾子は、アクションを実行したユーザーまたはエージェントに基づいてイベントのスコープを設定できます。 たとえば次のような点です。

  • actor:octocatoctocat によって実行されたすべてのイベントを検索します。
  • actor:octocat actor:Copilot を使うと、octocat または Copilot によって実行されたすべてのイベントを検索できます。
  • -actor:CopilotCopilot によって実行されたすべてのイベントを除外します。

使用できるのは GitHub のユーザー名のみであり、個人の実名ではないことに注意してください。

実行されたアクションに基づく検索

特定のイベントを検索するには、クエリで action 修飾子を使用します。 監査ログに一覧表示されているアクションは、さまざまなカテゴリにグループ化されます。 各カテゴリの全イベントの一覧については、「Organization の監査ログ イベント」を参照してください。

カテゴリ名説明
account組織アカウントに関連するすべてのアクティビティを含みます。
advisory_credit
GitHub Advisory Database のセキュリティ アドバイザリで貢献者にクレジットを付与することに関連するすべてのアクティビティが含まれます。 詳しくは、「リポジトリ セキュリティ アドバイザリ」をご覧ください。
auto_approve_personal_access_token_requests組織のfine-grained personal access tokenの承認ポリシーに関連するアクティビティが含まれています。 詳しくは、「組織の個人用アクセス トークン ポリシーを設定する」をご覧ください。
billing組織の請求関連に関するすべてのアクティビティが含まれています。
businessEnterprise のビジネス設定に関連するアクティビティを含みます。
code-scanning組織のコードスキャンアラートに関連する全ての活動が含まれています。
codespaces組織のCodespacesに関連するすべてのアクティビティが含まれています。
copilot
GitHub Copilot BusinessまたはGitHub Copilot Enterprise サブスクリプションに関連するすべてのアクティビティが含まれます。
dependabot_alerts既存のリポジトリ内の Dependabot alerts の組織レベルの構成アクティビティが含まれています。 詳しくは、「Dependabot アラート」をご覧ください。
dependabot_alerts_new_repos組織で作成された新しいリポジトリの Dependabot alerts の組織レベルの構成アクティビティが含まれています。
dependabot_security_updates既存のリポジトリ内の Dependabot security updates の組織レベルの構成アクティビティが含まれています。 詳しくは、「Dependabot セキュリティの更新の構成」をご覧ください。
dependabot_security_updates_new_repos組織で作成された新しいリポジトリの Dependabot security updates の組織レベルの構成アクティビティが含まれています。
dependency_graphリポジトリの依存関係グラフ用組織レベルの構成アクティビティが含まれます。 詳しくは、「依存関係グラフ」をご覧ください。
dependency_graph_new_reposOrganization 内に作成された新しいリポジトリの Organization レベルの構成アクティビティが含まれます。
discussion_postチーム ページに投稿されたディスカッションに関連するすべてのアクティビティが含まれます。
discussion_post_replyチーム ページに投稿されたディスカッションへの返答に関連するすべてのアクティビティが含まれます。
enterpriseEnterprise 設定に関連するアクティビティが含まれます。
hookwebhookに関連するすべてのアクティビティを含みます。
integration_installationアカウント内にインストールされた統合に関連するアクティビティが含まれます。
integration_installation_requestOrganization 内で使用するインテグレーションをオーナーが承認するよう求める、Organization メンバーからのリクエストに関連するすべてのアクティビティが含まれます。
ip_allow_listOrganization の IP 許可リストの有効化または無効化に関連するアクティビティが含まれます。
ip_allow_list_entryOrganization の IP 許可リスト エントリの作成、削除、編集に関連するアクティビティが含まれます。
issue問題の削除に関連するアクティビティは含まれています。
marketplace_agreement_signature
GitHub Marketplace開発者契約の署名に関連するすべてのアクティビティが含まれます。
marketplace_listing
GitHub Marketplaceでのアプリの一覧表示に関連するすべてのアクティビティが含まれます。
members_can_create_pages組織内のリポジトリの GitHub Pages サイトの発行の管理に関連するすべてのアクティビティが含まれます。 詳しくは、「Organization の GitHub Pages サイトの公開を管理する」をご覧ください。
org組織メンバーシップに関連する活動が含まれます。
org_credential_authorizationSAML シングル サインオンで使用する資格情報の認可に関連するすべてのアクティビティが含まれます。
org_secret_scanning_automatic_validity_checks
secret scanningの自動有効性チェックの有効化と無効化に関連する組織レベルのアクティビティが含まれています。 詳しくは、「カスタム セキュリティ構成を作成する」をご覧ください。
org_secret_scanning_custom_pattern
secret scanningカスタム パターンに関連する組織レベルのアクティビティが含まれています。 詳しくは、「シークレット スキャンのカスタム パターンの定義」をご覧ください。
organization_default_labelOrganization のリポジトリのデフォルト ラベルに関連するすべてのアクティビティが対象です。
oauth_application
OAuth appsに関連するすべてのアクティビティが含まれます。
packages
GitHub Packagesに関連するすべてのアクティビティが含まれます。
payment_methodGitHubに対する組織の支払い方法に関連するすべてのアクティビティが含まれます。
personal_access_token組織内の fine-grained personal access tokenに関連するアクティビティが含まれています。 詳しくは、「個人用アクセス トークンを管理する」をご覧ください。
profile_picture組織のプロフィール画像に関連するすべてのアクティビティが含まれます。
project
プロジェクトに関連するすべてのアクティビティが含まれます。
protected_branch保護されたブランチに関連するすべてのアクティビティが対象です。
repo貴社が所有するリポジトリに関連するアクティビティを含みます。
repository_advisory
GitHub Advisory Databaseのセキュリティ アドバイザリに関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「リポジトリ セキュリティ アドバイザリ」をご覧ください。
repository_content_analysisプライベート リポジトリのデータ使用の有効化または無効化に関連するすべてのアクティビティが含まれます。 詳しくは、「リポジトリのセキュリティと分析設定を管理する」をご覧ください。
repository_dependency_graphプライベート リポジトリの依存関係グラフの有効化または無効化に関連するリポジトリレベルのアクティビティが含まれます。 詳しくは、「依存関係グラフ」をご覧ください。
repository_secret_scanning
secret scanningに関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「シークレット スキャン」をご覧ください。
repository_secret_scanning_automatic_validity_checks
secret scanningの自動有効性チェックの有効化と無効化に関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「リポジトリのシークレット スキャンの有効化」をご覧ください。
repository_secret_scanning_custom_pattern
secret scanningカスタム パターンに関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「シークレット スキャンのカスタム パターンの定義」をご覧ください。
repository_secret_scanning_custom_pattern_push_protection
secret scanningのカスタム パターンのプッシュ保護に関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「シークレット スキャンのカスタム パターンの定義」をご覧ください。
repository_secret_scanning_push_protection
secret scanningプッシュ保護に関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「プッシュプロテクション」をご覧ください。
repository_vulnerability_alert
[
Dependabot alerts
](/code-security/concepts/supply-chain-security/dependabot-alerts)に関連するすべてのアクティビティが含まれます。
repository_vulnerability_alerts
Dependabot alertsのリポジトリ レベルの構成アクティビティが含まれています。
role
カスタム リポジトリ ロールに関連するすべてのアクティビティが含まれます。
secret_scanning既存のリポジトリ内の secret scanning の組織レベルの構成アクティビティが含まれています。 詳しくは、「シークレット スキャン」をご覧ください。
secret_scanning_new_repos組織で作成された新しいリポジトリの secret scanning の組織レベルの構成アクティビティが含まれています。
restore_memberOrganization のオーナーがメンバーを復帰させるときにトリガーされます。 詳しくは、「組織の以前のメンバーの復帰」をご覧ください。
sponsorsスポンサー ボタンに関連するすべてのイベントは含まれています (「リポジトリにスポンサーボタンを表示する」を参照してください)
team組織内のチームに関連するすべてのアクティビティが含まれます。
workflows
GitHub Actions ワークフローに関連するアクティビティが含まれています。

次の用語を使用すれば、特定の一連の行動を検索できます。 次に例を示します。

  • action:team は、チーム カテゴリ内でグループ化されたすべてのイベントを検索します。
  • -action:hook は、Webhook カテゴリのすべてのイベントを除外します。

各カテゴリには、フィルタできる一連の関連アクションがあります。 次に例を示します。

  • action:team.create は、チームが作成されたすべてのイベントを検索します。
  • -action:hook.events_changed は、Webhook 上のイベントが変更されたすべてのイベントを除外します。

アクション時間に基づく検索

created 修飾子を使用して、発生した日時に基づいて監査ログ内のイベントをフィルター処理します。 日付の書式設定は、ISO8601 標準の YYYY-MM-DD (年-月-日) に従う必要があります。 日付の後にオプションの時刻情報 THH:MM:SS+00:00 を追加して、時間、分、秒で検索することもできます。 これは、T の後に HH:MM:SS (時-分-秒)、UTC オフセット (+00:00) が続きます。

日付に対して検索を行う場合、結果をさらにフィルタリングするためにより大きい、より小さい、範囲の修飾子を利用できます。 詳しくは、「検索構文を理解する」をご覧ください。

次に例を示します。

  • created:2014-07-08 は、2014 年 7 月 8 日に発生したすべてのイベントを検索します。
  • created:>=2014-07-08 は、2014 年 7 月 8 日またはそれ以降に発生したすべてのイベントを検索します。
  • created:<=2014-07-08 は、2014 年 7 月 8 日またはそれより前に発生したすべてのイベントを検索します。
  • created:2014-07-01..2014-07-31 は、2014 年 7 月の月に発生したすべてのイベントを検索します。

メモ

監査ログには、過去 180 日間のデータが含まれています。

場所に基づく検索

修飾子 country を使用すると、発信元の国に基づいて監査ログ内のイベントをフィルター処理できます。 国の 2 文字のショートコードまたはフル ネームを使用できます。 名前に空白がある国は引用符で囲む必要があることに注意してください。 次に例を示します。

  • country:de は、ドイツで発生したすべてのイベントを検索します。
  • country:Mexico は、メキシコで発生したすべてのイベントを検索します。
  • country:"米国"はアメリカ合衆国で発生したイベントをすべて検出します。

アクセス トークンに基づく検索

特定のアクセス トークンによって実行されたすべてのイベントを特定できます。 詳しくは、「アクセス トークンによって実行される監査ログ イベントの識別」をご覧ください。

Audit log をエクスポートする

[エクスポート] ドロップダウン メニューを使うと、ログを JSON データまたはコンマ区切り値 (CSV) ファイルとしてエクスポートできます。

エクスポートの結果をフィルター処理するには、 [エクスポート] ドロップダウン メニューを使う前に、以下のサポートされている修飾子を 1 つ以上使って検索してください。

修飾子値の例
actionteam.create
actoroctocat
usercodertocat
orgocto-org
repoocto-org/documentation
created2019-06-01

メモ

Git イベントをエクスポートする場合、Web ブラウザー、REST API、または GraphQL API から開始されたイベントは含まれません。 たとえば、ユーザーが Web ブラウザーで pull request をマージすると、変更はベース ブランチにプッシュされますが、そのプッシュの Git イベントはエクスポートに含まれません。

エクスポートの制限

組織の監査ログをエクスポートする場合、ハード制限があります。 これらの制限は次のいずれかです。

  • 100 MB の圧縮ファイル、または
  • エクスポート処理時間 10 分 、または
  • 両方

これらの制限を回避するには、エクスポートする前に監査ログを小さなデータセットに減らすことをお勧めします。 詳細については、「あなたの組織の監査ログを確認する」を参照してください。

監査ログの大規模なデータセットを確認する場合は、外部データ管理システムにログをストリーミングすることをお勧めします。 詳細については、「企業の監査ログのストリーミング」を参照してください。

エクスポートされたログ キーと値

エクスポートされたログの出力ファイルには、以下のキーと値があります。

Key値の例
actionteam.create
actoroctocat
usercodertocat
actor_location.country_codeUS
orgocto-org
repoocto-org/documentation
created_at1429548104000 (タイムスタンプは Epoch からの経過時間をミリ秒で示します。)
data.emailoctocat@nowhere.com
data.hook_id245
data.events["issues", "issue_comment", "pull_request", "pull_request_review_comment"]
data.events_were["push", "pull_request", "issues"]
data.target_loginoctocat
data.old_userhubot
data.teamocto-org/engineering

Audit log API を使用する

GraphQL API または REST API を使用して監査ログを操作できます。 read:audit_log スコープを使って、API 経由で監査ログにアクセスできます。

メモ

監査ログ API を使用するには、組織で GitHub Enterprise Cloudを使用する必要があります。 GitHub Enterprise Cloud を無料で試す方法の詳細については、「GitHub Enterprise Cloud の試用版を設定する」を参照してください。

GraphQL API を使用する

知的財産のセキュリティを確保し、組織のコンプライアンスを維持するために、監査ログ GraphQL API を使用して、監査ログ データのコピーを保持し、監視することができます。 * 組織またはリポジトリの設定へのアクセス

  • アクセス許可の変更
  • 組織、リポジトリ、またはチームの追加または削除されたユーザー
  • 管理者に昇格されるユーザー
  • GitHub App のアクセス許可の変更
  • API 要求 (有効にする必要があります)

GraphQL API を使用して Git イベントを取得できないことに注意してください。 Git イベントを取得するには、代わりに REST API を使用してください。 詳細については、「gitカテゴリ アクション」を参照してください。

GraphQL のレスポンスには、90 日から 120 日までのデータを含めることができます。

たとえば、GraphQL にリクエストを送信して、組織に新しく追加されたすべてのメンバーを確認できます。 詳細については、「企業管理」を参照してください。

REST API を使用して

知的財産が確実にセキュアに保たれるようにし、Organization のコンプライアンスを維持するために、Audit log REST API を使って監査ログのデータのコピーを使用できます。 REST API を使用してアクセスできる特定のイベントの詳細については、「Organization の監査ログ イベント」を参照してください。

監査ログには、Git イベントが 7 日間保持されます。これは、最大 7 か月間保持できるその他の監査ログ イベントよりも短くなります。

デフォルトでは、過去3ヶ月のイベントのみが返されます。 さらに古いイベントを含めるには、クエリでタイムスタンプを指定しなければなりません。

REST API を使用して Git イベントをリクエストする場合、Web ブラウザー、REST API、または GraphQL API を介して開始されたイベントは含まれません。 たとえば、Web ブラウザーで pull request をマージすると、変更はベース ブランチにプッシュされますが、そのプッシュの Git イベントは応答に含まれません。

監査ログ REST API の詳細については、「組織のREST APIエンドポイント」を参照してください。

参考資料