このドキュメントでは、フォルダまたは組織内のリソースで発生したログエントリを照合して、サポートされている宛先にルーティングできる集約シンクについて説明します。集約シンクを使用して、ログデータを一元的なストレージ ロケーションにルーティングすることをおすすめします。
集約シンクについて
集約シンクは、フィルタと宛先が含まれているという点で、プロジェクト レベルのシンクに似ています。ただし、ログルーターは、集約シンクに次のログエントリを送信します。
- フォルダまたは組織で発生したすべてのログエントリ。
- フォルダまたは組織の子リソースで発生したすべてのログエントリ。
たとえば、フォルダレベルの集約シンクを作成すると、ログルーターは、フォルダまたはフォルダの子リソースで発生したすべてのログエントリをそのシンクに送信します。
ログエントリのリソース階層に集約シンクがある場合、ログルーターはまずこれらのシンクにログエントリを送信します。集約シンクはインターセプトまたは非インターセプトであるため、ログルーターは、プロジェクト レベルのシンクに送信された集約シンクによってルーティングされたログエントリを送信しない場合があります。
- 集約シンクのインターセプト
インターセプト集約シンクを使用すると、ログエントリの元のリソースの
_Required
シンクを除き、子リソースのシンクにログエントリがルーティングされなくなります。この集約シンクは、ログエントリの重複コピーが複数の場所に保存されるのを防ぐ場合に役立ちます。たとえば、監査目的でデータアクセス監査ログを有効にする必要があるとします。分析を簡素化するために、これらのログを 1 か所に保存します。ただし、セキュリティとコストの理由から、これらのログがプロジェクト レベルで保存されないようにする必要があります。このシナリオでは、インターセプト集約シンクを作成できます。
- 非インターセプト集約シンク
非インターセプト集約シンクは、ログエントリが他のシンクにルーティングされる方法には影響しません。つまり、ログエントリが非インターセプト集約シンクのフィルタと一致する場合でも、そのログエントリはログエントリのリソース階層内の他のシンクにルーティングされます。非インターセプト集約シンクを使用すると、ログエントリが生成されたリソースでログエントリの可視性を維持できます。
たとえば、組織に含まれているフォルダから生成されたすべてのログエントリを一元化されたログバケットにルーティングする非インターセプト集約シンクを作成できます。ログエントリは、中央のログバケットに保存されます。ただし、シンクは非インターセプトであるため、ログルーターは、ログエントリが生成されたリソースのログシンクにもログエントリを送信します。
ルーティングの例
このセクションでは、プロジェクトで発生したログエントリがリソース階層内のシンクをどのように通過するかについて説明します。
例: 集約されたシンクが存在しない
ログエントリのリソース階層に集約シンクが存在しない場合、ログエントリはログエントリの元のプロジェクトのログシンクに送信されます。プロジェクト レベルのシンクでは、ログエントリがシンクの包含フィルタと一致し、シンクの除外フィルタと一致しない場合、ログエントリはシンクの宛先にルーティングされます。
例: インターセプトしない集約シンクが存在する
ログエントリのリソース階層に非インターセプト集約シンクが存在する場合を考えます。ログルーターがログエントリを非インターセプト集約シンクに送信すると、次のことが行われます。
非インターセプト集約シンクは、ログエントリが包含フィルタと一致して除外フィルタと一致しない場合、ログエントリをシンクの宛先にルーティングします。
ログルーターは、ログエントリの元のプロジェクトのログシンクにログエントリを送信します。
プロジェクト レベルのシンクでは、ログエントリがシンクの包含フィルタと一致し、シンクの除外フィルタと一致しない場合、ログエントリはシンクの宛先にルーティングされます。
例: インターセプト型の集約シンクが存在する
ログエントリのリソース階層にインターセプト集約シンクが存在する場合を考えます。ログルーターがログエントリをインターセプト集約シンクに送信すると、次のいずれかが行われます。
ログエントリが包含フィルタと一致するが、除外フィルタと一致しない場合:
- ログエントリは、インターセプトする集約シンクの宛先にルーティングされます。
- ログエントリは、ログエントリの発生元のプロジェクトの
_Required
シンクに送信されます。
ログエントリが包含フィルタと一致しない場合、または少なくとも 1 つの除外フィルタと一致する場合:
- ログエントリは、インターセプト集約シンクによってルーティングされません。
ログルーターは、ログエントリの元のプロジェクトのログシンクにログエントリを送信します。
プロジェクト レベルのシンクでは、ログエントリがシンクの包含フィルタと一致し、シンクの除外フィルタと一致しない場合、ログエントリはシンクの宛先にルーティングされます。
集約シンクでサポートされている宛先
このセクションでは、集約シンクで利用できる宛先について説明します。
インターセプト シンク
インターセプト集約シンクの宛先にはGoogle Cloud プロジェクトを使用する必要があります。
宛先プロジェクトのログシンクは、ログエントリを宛先に再ルーティングします。プロジェクトを除くすべての宛先に対応しています。たとえば、宛先プロジェクトのログシンクがログエントリをログバケットに再ルーティングする場合があります。
非インターセプト シンク
非インターセプト集約シンクの宛先には、次のいずれかを使用できます。
シンクの宛先は、シンクとは異なるリソースに配置できます。たとえば、ログシンクを使用して、あるプロジェクトのログを別のプロジェクトに保存されているログバケットにルーティングできます。
次の宛先がサポートされています。
- Google Cloud プロジェクト
宛先プロジェクトのログシンクでログエントリを再ルーティングする場合、またはインターセプト集約シンクを作成した場合は、この宛先を選択します。シンクの宛先であるプロジェクトのログシンクは、プロジェクトを除くサポートされている任意の宛先にログエントリを再ルーティングできます。
- ログバケット
Cloud Logging によって管理されるリソースにログデータを保存する場合は、この宛先を選択します。ログバケットに保存されているログデータは、ログ エクスプローラやログ分析などのサービスを使用して表示および分析できます。
ログデータを他のビジネスデータと結合する場合は、ログデータをログバケットに保存し、リンクされた BigQuery データセットを作成できます。リンクされたデータセットは読み取り専用のデータセットで、他の BigQuery データセットと同様にクエリできます。
- BigQuery データセット
- ログデータを他のビジネスデータと結合する場合は、この宛先を選択します。指定するデータセットは書き込み可能である必要があります。シンクの宛先を、リンクされた BigQuery データセットに設定しないでください。リンクされたデータセットは読み取り専用です。
- Cloud Storage バケット
- ログデータを長期保存する場合は、この宛先を選択します。Cloud Storage バケットは、ログエントリの発生元のプロジェクトに配置することも、別のプロジェクトに配置することもできます。ログエントリは、JSON ファイルとして保存されます。
- Pub/Sub トピック
- Google Cloud からログデータをエクスポートし、Splunk や Datadog などのサードパーティ統合を使用する場合は、この宛先を選択します。ログエントリは JSON 形式にフォーマットされ、Pub/Sub トピックにルーティングされます。
ベスト プラクティス
集約シンクの宛先には Google Cloud プロジェクトを使用することをおすすめします。この宛先を使用すると、宛先プロジェクトのログシンクがログエントリを再ルーティングします。 Google Cloud _Required
シンクは、フィルタに一致し、シンクが定義されているリソースで発生したログエントリのみをルーティングします。したがって、_Required
シンクのフィルタに一致するログエントリのコピーを追加で保存する場合は、カスタム ログシンクを作成するか、_Default
ログシンクのフィルタを変更する必要があります。
インターセプト シンクを作成する場合は、次のことをおすすめします。
子リソースがログエントリのルーティングを独立して制御する必要があるかどうかを検討します。子リソースが特定のログエントリの独立した制御を必要とする場合は、インターセプト シンクがそれらのログエントリをルーティングしないようにします。
インターセプト シンクの説明に連絡先情報を追加します。これは、インターセプト シンクを管理するユーザーが、ログエントリがインターセプトされるプロジェクトを管理するユーザーと異なる場合に役立ちます。
まず、非インターセプト集約シンクを作成して、シンクの構成をテストし、正しいログがルーティングされていることを確認します。
集約シンクとログベースのインターセプト
ログベースの指標は、ログエントリの内容から派生した Cloud Monitoring 指標です。ログエントリのルーティング方法によって、そのログエントリがカウントされるログベースの指標が決まります。インターセプト集約シンクはログエントリのルーティング方法に影響するため、このタイプのシンクを作成すると、既存のログベースの指標の値が変更される可能性があります。
詳細については、ログエントリのルーティングがログベースの指標に与える影響をご覧ください。
集約シンクと VPC Service Controls
集約シンクと VPC Service Controls を使用する場合、次の制限が適用されます。
集約シンクは、サービス境界内にあるプロジェクトのデータにアクセスできます。集約シンクが境界内のデータにアクセスするのを制限するには、IAM を使用して Logging 権限を管理することをおすすめします。
VPC Service Controls では、フォルダまたは組織のリソースをサービス境界に追加できません。したがって、VPC Service Controls を使用して、フォルダレベルと組織レベルのログ(集計ログを含む)を保護することはできません。フォルダレベルまたは組織レベルで Logging 権限を管理するには、IAM を使用することをおすすめします。
フォルダレベルまたは組織レベルのシンクを使用して、サービス境界で保護されるリソースにログをルーティングする場合は、サービス境界に上り(内向き)ルールを追加する必要があります。上り(内向き)ルールで、集約シンクが使用するサービス アカウントからリソースへのアクセスを許可する必要があります。詳しくは、以下のページをご覧ください。
サービス境界に上り(内向き)ポリシーまたは下り(外向き)ポリシーを指定すると、ログシンクを使用して Cloud Storage リソースにログをルーティングするときに
ANY_SERVICE_ACCOUNT
とANY_USER_ACCOUNT
を ID タイプとして使用することはできません。ただし、ID タイプとしてANY_IDENTITY
を使用できます。
次のステップ
集約シンクを作成する方法については、組織レベルとフォルダレベルのログを照合してサポートされている宛先にルーティングするをご覧ください。
チュートリアルについては、組織のログを集約して保存するをご覧ください。
既存のシンクの管理については、サポートされている宛先にログをルーティングする: シンクを管理するをご覧ください。
宛先でログを表示する方法と、ログをフォーマットして整理する方法について、シンクの宛先でログを表示するで確認する。