Audit log にアクセスする
メモ
Webhook は、特定のユース ケースの監査ログまたは API ポーリングの代替策として適している場合があります。 Webhook は、リポジトリ、Organization、または Enterprise で特定のイベントが発生したときに GitHub がサーバーに通知する方法です。 Enterprise、Organization、またはリポジトリで特定のイベントが発生したときに学習してログを記録するだけの場合、API や監査ログの検索と比較して、Webhook がより効率的である可能性があります。 「Webhook ドキュメント」をご覧ください。
監査ログには、過去 180 日以内に Organization に影響を及ぼすアクティビティによってトリガーされたイベントがリストされます。 Organization の Audit log にアクセスできるのはオーナーのみです。
既定では、過去 3 か月のイベントのみが表示されます。 古いイベントを表示するには、created パラメーターを使って日付範囲を指定します。 「検索構文を理解する」をご覧ください。
-
GitHub の右上隅にあるプロフィール画像をクリックしてから、[ Your organizations] をクリックします。
-
組織をクリックして選択します。
-
Organization 名の下で、[ Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。](/assets/cb-49309/images/help/discussions/org-settings-global-nav-update.png)
-
サイドバーの [Archive] セクションで、[ Logs] をクリックしてから、[Audit log] をクリックします。
Audit log を検索する
各監査ログ エントリの名前は、イベントのカテゴリと、それに続く操作タイプで構成されます。 たとえば、repo.create エントリは repo カテゴリに対する create 操作を意味します。
各 Audit log エントリには、次のようなイベントに関する適切な情報が表示されます:
- アクションが実行された 組織
- アクションを実行したユーザー (アクター)
- アクションによって影響を受けたユーザー
- アクションの対象となったリポジトリ
- 実行されたアクションです
- アクションが実行された国
- アクションが発生した日時
テキストを使用してエントリを検索することはできません。 ただし、さまざまなフィルターを使用すれば検索クエリを作成できます。 ログにクエリを実行するときに使用される多くの演算子 (-、>、< など) は、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:octocatはoctocatによって実行されたすべてのイベントを検索します。actor:octocat actor:Copilotを使うと、octocatまたはCopilotによって実行されたすべてのイベントを検索できます。-actor:CopilotはCopilotによって実行されたすべてのイベントを除外します。
使用できるのは GitHub のユーザー名のみであり、個人の実名ではないことに注意してください。
実行されたアクションに基づく検索
特定のイベントを検索するには、クエリで action 修飾子を使用します。 監査ログに一覧表示されているアクションは、さまざまなカテゴリにグループ化されます。 各カテゴリの全イベントの一覧については、「Organization の監査ログ イベント」を参照してください。
| カテゴリ名 | 説明 |
|---|---|
account | 組織アカウントに関連するすべてのアクティビティを含みます。 |
advisory_credit | |
| GitHub Advisory Database のセキュリティ アドバイザリで貢献者にクレジットを付与することに関連するすべてのアクティビティが含まれます。 詳しくは、「リポジトリ セキュリティ アドバイザリ」をご覧ください。 | |
auto_approve_ | 組織のfine-grained personal access tokenの承認ポリシーに関連するアクティビティが含まれています。 詳しくは、「組織の個人用アクセス トークン ポリシーを設定する」をご覧ください。 |
billing | 組織の請求関連に関するすべてのアクティビティが含まれています。 |
business | Enterprise のビジネス設定に関連するアクティビティを含みます。 |
code-scanning | 組織のコードスキャンアラートに関連する全ての活動が含まれています。 |
codespaces | 組織のCodespacesに関連するすべてのアクティビティが含まれています。 |
copilot | |
| GitHub Copilot BusinessまたはGitHub Copilot Enterprise サブスクリプションに関連するすべてのアクティビティが含まれます。 | |
dependabot_alerts | 既存のリポジトリ内の Dependabot alerts の組織レベルの構成アクティビティが含まれています。 詳しくは、「Dependabot アラート」をご覧ください。 |
dependabot_alerts_ | 組織で作成された新しいリポジトリの Dependabot alerts の組織レベルの構成アクティビティが含まれています。 |
dependabot_security_ | 既存のリポジトリ内の Dependabot security updates の組織レベルの構成アクティビティが含まれています。 詳しくは、「Dependabot セキュリティの更新の構成」をご覧ください。 |
dependabot_security_ | 組織で作成された新しいリポジトリの Dependabot security updates の組織レベルの構成アクティビティが含まれています。 |
dependency_graph | リポジトリの依存関係グラフ用組織レベルの構成アクティビティが含まれます。 詳しくは、「依存関係グラフ」をご覧ください。 |
dependency_graph_ | Organization 内に作成された新しいリポジトリの Organization レベルの構成アクティビティが含まれます。 |
discussion_post | チーム ページに投稿されたディスカッションに関連するすべてのアクティビティが含まれます。 |
discussion_post_ | チーム ページに投稿されたディスカッションへの返答に関連するすべてのアクティビティが含まれます。 |
enterprise | Enterprise 設定に関連するアクティビティが含まれます。 |
hook | webhookに関連するすべてのアクティビティを含みます。 |
integration_installation | アカウント内にインストールされた統合に関連するアクティビティが含まれます。 |
integration_installation_ | Organization 内で使用するインテグレーションをオーナーが承認するよう求める、Organization メンバーからのリクエストに関連するすべてのアクティビティが含まれます。 |
issue | 問題の削除に関連するアクティビティは含まれています。 |
marketplace_agreement_ | |
| GitHub Marketplace開発者契約の署名に関連するすべてのアクティビティが含まれます。 | |
marketplace_listing | |
| GitHub Marketplaceでのアプリの一覧表示に関連するすべてのアクティビティが含まれます。 | |
members_can_create_ | 組織内のリポジトリの GitHub Pages サイトの発行の管理に関連するすべてのアクティビティが含まれます。 詳しくは、「Organization の GitHub Pages サイトの公開を管理する」をご覧ください。 |
org | 組織メンバーシップに関連する活動が含まれます。 |
org_secret_scanning_ | |
| secret scanningの自動有効性チェックの有効化と無効化に関連する組織レベルのアクティビティが含まれています。 詳しくは、「カスタム セキュリティ構成を作成する」をご覧ください。 | |
org_secret_scanning_ | |
| secret scanningカスタム パターンに関連する組織レベルのアクティビティが含まれています。 詳しくは、「シークレット スキャンのカスタム パターンの定義」をご覧ください。 | |
organization_ | Organization のリポジトリのデフォルト ラベルに関連するすべてのアクティビティが対象です。 |
oauth_application | |
| OAuth appsに関連するすべてのアクティビティが含まれます。 | |
packages | |
| GitHub Packagesに関連するすべてのアクティビティが含まれます。 | |
payment_method | GitHubに対する組織の支払い方法に関連するすべてのアクティビティが含まれます。 |
personal_access_ | 組織内の fine-grained personal access tokenに関連するアクティビティが含まれています。 詳しくは、「個人用アクセス トークンを管理する」をご覧ください。 |
profile_picture | 組織のプロフィール画像に関連するすべてのアクティビティが含まれます。 |
project | |
| プロジェクトに関連するすべてのアクティビティが含まれます。 | |
protected_branch | 保護されたブランチに関連するすべてのアクティビティが対象です。 |
repo | 貴社が所有するリポジトリに関連するアクティビティを含みます。 |
repository_advisory | |
| GitHub Advisory Databaseのセキュリティ アドバイザリに関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「リポジトリ セキュリティ アドバイザリ」をご覧ください。 | |
repository_content_ | プライベート リポジトリのデータ使用の有効化または無効化に関連するすべてのアクティビティが含まれます。 詳しくは、「リポジトリのセキュリティと分析設定を管理する」をご覧ください。 |
repository_dependency_ | プライベート リポジトリの依存関係グラフの有効化または無効化に関連するリポジトリレベルのアクティビティが含まれます。 詳しくは、「依存関係グラフ」をご覧ください。 |
repository_secret_ | |
| secret scanningの自動有効性チェックの有効化と無効化に関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「リポジトリのシークレット スキャンの有効化」をご覧ください。 | |
repository_secret_ | |
| secret scanningカスタム パターンに関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「シークレット スキャンのカスタム パターンの定義」をご覧ください。 | |
repository_secret_ | |
| secret scanningのカスタム パターンのプッシュ保護に関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「シークレット スキャンのカスタム パターンの定義」をご覧ください。 | |
repository_secret_ | |
| secret scanningプッシュ保護に関連するリポジトリ レベルのアクティビティが含まれています。 詳しくは、「プッシュプロテクション」をご覧ください。 | |
repository_vulnerability_ | |
| [ | |
| Dependabot alerts | |
| ](/code-security/concepts/supply-chain-security/dependabot-alerts)に関連するすべてのアクティビティが含まれます。 | |
repository_vulnerability_ | |
| Dependabot alertsのリポジトリ レベルの構成アクティビティが含まれています。 | |
restore_member | Organization のオーナーがメンバーを復帰させるときにトリガーされます。 詳しくは、「組織の以前のメンバーの復帰」をご覧ください。 |
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 つ以上使って検索してください。
| 修飾子 | 値の例 |
|---|---|
action | team.create |
actor | octocat |
user | codertocat |
org | octo-org |
repo | octo-org/documentation |
created | 2019-06-01 |
エクスポートの制限
組織の監査ログをエクスポートする場合、ハード制限があります。 これらの制限は次のいずれかです。
- 100 MB の圧縮ファイル、または
- エクスポート処理時間 10 分 、または
- 両方。
これらの制限を回避するには、エクスポートする前に監査ログを小さなデータセットに減らすことをお勧めします。 詳細については、「あなたの組織の監査ログを確認する」を参照してください。
エクスポートされたログ キーと値
エクスポートされたログの出力ファイルには、以下のキーと値があります。
| Key | 値の例 |
|---|---|
action | team.create |
actor | octocat |
user | codertocat |
actor_location.country_ | US |
org | octo-org |
repo | octo-org/documentation |
created_at | 1429548104000 (タイムスタンプは Epoch からの経過時間をミリ秒で示します。) |
data.email | octocat@nowhere.com |
data.hook_id | 245 |
data.events | ["issues", "issue_comment", "pull_request", "pull_request_review_comment"] |
data.events_were | ["push", "pull_request", "issues"] |
data.target_login | octocat |
data.old_user | hubot |
data.team | octo-org/engineering |
Audit log API を使用する
GitHub Enterprise Cloudを使用する組織は、GraphQL API と REST API を使用して監査ログを操作できます。 詳細については、GitHub Enterprise Cloudドキュメントを参照してください。