注: GitHub Enterprise Server の監査ログ ストリーミングは現在、ベータ版であり、変更される可能性があります。
監査ログのストリーミングについて
知的財産を保護し、組織のコンプライアンスを維持するために、ストリーミングを使用して監査ログ データのコピーを保持し、監視できます。* 組織またはリポジトリの設定へのアクセス
- アクセス許可の変更
- 組織、リポジトリ、またはチームの追加または削除されたユーザー
- 管理者に昇格されるユーザー
- GitHub Appの権限の変更
監査ログのストリーミングには、次の利点があります。
- データの探索。 大量のデータに対してクエリを実行するために、推奨されるツールを使用して、ストリーミングされたイベントを調べることができます。 ストリーミングには、Enterprise アカウント全体の監査イベントと Git イベントの両方が含まれます。
- データ保有。 エクスポートされた監査ログと Git イベント データを必要な期間だけ保持できます。
Enterprise 所有者は、ストリームをいつでも設定または削除することができます。 ストリーミングによって、Enterprise 内のすべての Organization に関する監査と Git イベント データがエクスポートされます。
メモ: すべての監査ログは JSON 形式でストリーミングされます。
監査ログのストリーミングの設定
プロバイダーの指示に従って、GitHub Enterprise Server での監査ログのストリーミングを設定します。
Amazon S3 へのストリーミングの設定
監査ログを Amazon の S3 エンドポイントにストリーミングするには、バケットとアクセス キーが必要です。 詳しくは、AWS のドキュメント「Amazon S3 バケットの作成、設定、操作」をご覧ください。 必ず、バケットへのパブリック アクセスをブロックして監査ログ情報を保護してください。
GitHub から監査ログのストリーミングを設定するには、次のものが必要です。
- Amazon S3 バケットの名前
- AWS アクセス キー ID
- AWS 秘密鍵
アクセス キー ID と秘密鍵の作成またはアクセスについては、AWS ドキュメントの「Understanding and getting your AWS credentials」 (AWS 資格情報の理解と取得) を参照してください。
-
GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。
1. Enterprise アカウントのサイドバーで、 [設定] をクリックします。 1. [ 設定] で、 [監査ログ] をクリックします。 -
[Audit log](監査ログ) の [Log streaming](ログ ストリーミング) をクリックします。 1. [Configure stream](ストリームの構成) ドロップダウンを選び、 [Amazon S3] をクリックします。
-
ストリームの設定を構成します。
- [バケット] に、ストリーミング先のバケットの名前を入力します。 たとえば、
auditlog-streaming-test
のようにします。 - [アクセス キー ID] に、アクセス キーの ID を入力します。 たとえば、
ABCAIOSFODNN7EXAMPLE1
のようにします。 - [シークレット キー] に、シークレット キーを入力します。 たとえば、
aBcJalrXUtnWXYZ/A1MDENG/zPxRfiCYEXAMPLEKEY
のようにします。
- [バケット] に、ストリーミング先のバケットの名前を入力します。 たとえば、
-
GitHub で Amazon S3 エンドポイントに接続して書き込めることを確認するには、 [Check endpoint](エンドポイントのチェック) をクリックします。
1. エンドポイントを正常に確認したら、 [保存] をクリックします。
AWS CloudTrail Lake との統合
監査ログの S3 ストリーミングを AWS CloudTrail Lake と統合することで、GitHub Enterprise Server からの監査ログは AWS アクティビティ ログと連結できます。 詳しくは、AWS CloudTrail ドキュメントか、aws-samples/aws-cloudtrail-lake-github-audit-log
リポジトリの「GitHub 監査ログと CloudTrail オープン監査の統合」をご覧ください。
Azure Blob Storage へのストリーミングの設定
GitHub でのストリーミングを設定する前に、まず、Microsoft Azure でストレージ アカウントとコンテナーを作成しておく必要があります。 詳細については、Microsoft のドキュメント「Azure Blob Storage の概要」を参照してください。
GitHub でストリーミングを構成するには、SAS トークンの URL が必要です。
Microsoft Azure portal で次の操作を行います。
- [ホーム] ページで、 [ストレージ アカウント] をクリックします。
- [名前] で、使用するストレージ アカウントの名前をクリックします。
- [データ ストレージ] で、 [コンテナー] をクリックします。
- 使用するコンテナーの名前をクリックします。
- 左側のサイドバーの [設定] で、 [共有アクセス トークン] をクリックします。
- [アクセス許可] ドロップダウン メニューを選択し、
Create
とWrite
を選択して他のすべてのオプションの選択を解除します。 - シークレット ローテーション ポリシーに準拠する有効期限を設定します。
- [SAS トークンおよび URL を生成] をクリックします。
- 表示される BLOB SAS URL フィールドの値をコピーします。 この URL を GitHub で使用します。
GitHub で次の操作を行います。1. GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。
-
[Audit log](監査ログ) の [Log streaming](ログ ストリーミング) をクリックします。
-
[Configure stream] をクリックし、 [Azure Blob Storage] を選択します。
-
構成ページで、Azure でコピーした BLOB SAS URL を入力します。 [Container] フィールドは、その URL に基づいて自動入力されます。
-
[Check endpoint] をクリックして、GitHub で Azure Blob Storage エンドポイントに接続して書き込むことができることを確認します。
-
エンドポイントを正常に確認したら、 [保存] をクリックします。
Azure Event Hubs へのストリーミングの設定
GitHub でのストリーミングを設定する前に、まず、Microsoft Azure でイベント ハブ名前空間が必要です。 次に、その名前空間内にイベント ハブ インスタンスを作成する必要があります。 ストリーミングを設定するときに、このイベント ハブ インスタンスの詳細が必要になります。 詳細については、Microsoft のドキュメント「クイック スタート:Azure portal を使用したイベント ハブの作成」を参照してください。
イベント ハブに関する 2 つの情報 (インスタント名と接続文字列) が必要です。
Microsoft Azure portal で次の操作を行います。
-
ページの上部にある [Microsoft Azure] の横にある検索ボックスを使用して、"Event Hubs" を検索します。
-
[Event Hubs] を選択します。 イベント ハブの名前が一覧表示されます。
-
ストリーミング先のイベント ハブの名前をメモします。
-
必要なイベント ハブをクリックします。 次に、左側のメニューで、 [共有アクセスポリシー] を選択します。
-
ポリシーの一覧で共有アクセス ポリシーを選択するか、新しいポリシーを作成します。
-
[接続文字列 – 主キー] フィールドの右側にあるボタンをクリックして、接続文字列をコピーします。
GitHub で次の操作を行います。1. GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。
-
[Audit log](監査ログ) の [Log streaming](ログ ストリーミング) をクリックします。
-
[Configure stream] をクリックし、 [Azure Event Hubs] を選択します。
-
構成ページで、次の項目を入力します。
- Azure Event Hubs インスタンスの名前。
- 接続文字列。
-
[Check endpoint] をクリックして、GitHub で Azure Events Hubs エンドポイントに接続して書き込むことができることを確認します。
-
エンドポイントを正常に確認したら、 [保存] をクリックします。
Google Cloud Storage へのストリーミングの設定
Google Cloud Storage へのストリーミングを設定するには、適切な資格情報とアクセス許可を使用して、Google Cloud にサービス アカウントを作成し、そのサービス アカウントの資格情報を認証に使用して GitHub Enterprise Server での監査ログのストリーミングを構成します。
-
Google Cloud のサービス アカウントを作成します。 サービス アカウントのアクセス制御または IAM ロールを設定する必要はありません。 詳細については、Google Cloud のドキュメント「サービス アカウントの作成と管理」を参照してください。
-
サービス アカウントの JSON キーを作成し、キーを安全に格納します。 詳細については、Google Cloud のドキュメント「サービス アカウント キーの作成と管理」を参照してください。
-
バケットをまだ作成していない場合は、作成します。 詳細については、Google Cloud のドキュメント「ストレージ バケットの作成」を参照してください。
-
バケットのストレージ オブジェクト作成者のロールをサービス アカウントに付与します。 詳細については、Google Cloud のドキュメント「クラウド IAM 権限を使用する」を参照してください。
-
GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。
1. Enterprise アカウントのサイドバーで、 [設定] をクリックします。 1. [ 設定] で、 [監査ログ] をクリックします。 -
[Audit log](監査ログ) の [Log streaming](ログ ストリーミング) をクリックします。
-
[Configure stream] ドロップダウン メニューを選択し、 [Google Cloud Storage] をクリックします。
-
[Bucket] で、Google Cloud Storage バケットの名前を入力します。
-
[JSON Credentials] で、サービス アカウントの JSON キーのファイルの内容全体を貼り付けます。
-
GitHub で Google Cloud Storage バケットに接続して書き込めることを確認するには、 [Check endpoint] をクリックします。
-
エンドポイントを正常に確認したら、 [保存] をクリックします。
Splunk へのストリーミングの設定
監査ログを Splunk の HTTP Event Collector (HEC) エンドポイントにストリーミングするには、エンドポイントが HTTPS 接続を受け入れるように構成されていることを確認する必要があります。 詳細については、Splunk のドキュメント「Set up and use HTTP Event Collector in Splunk Web」 (Splunk Web で HTTP Event Collector を設定および作成する) を参照してください。
-
GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。
1. Enterprise アカウントのサイドバーで、 [設定] をクリックします。 1. [ 設定] で、 [監査ログ] をクリックします。 -
[Audit log](監査ログ) の [Log streaming](ログ ストリーミング) をクリックします。
-
[Configure stream] をクリックし、 [Splunk] を選択します。
-
構成ページで、次の項目を入力します。
-
ストリーミング先のアプリケーションがホストされているドメイン。
Splunk Cloud を使用している場合、
Domain
はhttp-inputs-<host>
である必要があります。ここで、host
は、Splunk Cloud で使用するドメインです。 (例:http-inputs-mycompany.splunkcloud.com
)。 -
アプリケーションでデータを受け入れるポート。
Splunk Cloud を使用していて、ポート構成を変更していない場合、
Port
は443
である必要があります。 Splunk Cloud の無料試用版を使用している場合、Port
は8088
である必要があります。 -
GitHub でサードパーティ アプリケーションに対する認証に使用できるトークン。
-
-
[Enable SSL verification] チェック ボックスはオンのままにします。
監査ログは常に、暗号化されたデータとしてストリーミングされます。ただし、このオプションを選択すると、GitHub によって、イベントの配信前に Splunk インスタンスの SSL 証明書が検証されます。 SSL 検証は、イベントが URL エンドポイントに安全に配信されることを保証するために役立ちます。 このオプションの選択をオフにすることはできますが、SSL 検証を有効のままにすることをお勧めします。
-
[Check endpoint] をクリックして、GitHub で Splunk エンドポイントに接続して書き込むことができることを確認します。
1. エンドポイントを正常に確認したら、 [保存] をクリックします。
監査ログのストリーミングの削除
-
GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。
1. Enterprise アカウントのサイドバーで、 [設定] をクリックします。 1. [ 設定] で、 [監査ログ] をクリックします。 -
[Audit log](監査ログ) の [Log streaming](ログ ストリーミング) をクリックします。
-
[Delete stream] をクリックします。
-
確認メッセージが表示されます。 [Delete stream] をクリックして確定します。