このドキュメントでは、集約されたシンクを作成する方法について説明します。集約シンクを使用すると、組織またはフォルダ内の Google Cloud リソースによって生成されたログを組み合わせて、一元化されたロケーションにルーティングできます。
始める前に
シンクを作成する前に、次のことを確認します。
- 集約シンクの動作を把握している。これらのシンクの詳細については、集約シンクの概要をご覧ください。 
- ログ エクスプローラに表示できるログエントリを含む Google Cloud フォルダまたは組織がある。 
- ログのルーティング元のGoogle Cloud の組織またはフォルダに対して、次のいずれかの IAM ロールを付与されている。 - オーナー(roles/owner)
- Logging 管理者(roles/logging.admin)
- ログ構成書き込み(roles/logging.configWriter)
 - これらのロールに含まれる権限を使用して、シンクの作成、削除、変更ができます。IAM ロールの設定については、Logging のアクセス制御ガイドをご覧ください。 
- オーナー(
- 集約シンクの宛先が存在する、または作成できる。 - 宛先が Google Cloud プロジェクトの場合、プロジェクトは任意の組織に配置できます。他のすべての宛先は、任意の組織の任意のプロジェクトに配置できます。 
- Select the tab for how you plan to use the samples on this page: - Console- When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. - gcloud- In the Google Cloud console, activate Cloud Shell. - At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. - REST- このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。 - Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。 - gcloud init- 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - 詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。 - 集約シンクを作成する- 集約シンクを構成するには、シンクを作成し、宛先への書き込み権限をシンクに付与します。このセクションでは、集約シンクの作成方法について説明します。シンクに権限を付与する方法については、このページの宛先の権限を設定するをご覧ください。 - フォルダまたは組織ごとに最大 200 個のシンクを作成できます。 - コンソール- フォルダまたは組織の集約シンクを作成する手順は次のとおりです。 - 
Google Cloud コンソールで、[ログルーター] ページに移動します。 検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。 
- 既存のフォルダまたは組織を選択します。 
- [シンクを作成] を選択します。 
- [シンクの詳細] パネルで、次の詳細を入力します。 - シンクの名前: シンクの識別子を指定します。シンクを作成した後はシンク名を変更できませんが、シンクを削除して新しいシンクを作成することはできます。 
- シンクの説明(省略可): シンクの目的またはユースケースについて説明を入力します。 
 
- [シンクサービスの選択] メニューで宛先のタイプを選択し、宛先を指定します。既存のリンク先を選択することも、リンク先を作成することもできます。 - インターセプト シンクの場合は、Google Cloud プロジェクトを選択して宛先 Google Cloud プロジェクトの完全修飾名を入力します。 - logging.googleapis.com/projects/DESTINATION_PROJECT_ID
- 非インターセプト シンクの場合は、宛先を選択して宛先の完全修飾名を入力します。次の宛先がサポートされています。 - Google Cloud プロジェクト - logging.googleapis.com/projects/DESTINATION_PROJECT_ID
- Cloud Logging バケット - logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
 - BigQuery データセット - 書き込みが有効なデータセットの完全修飾名を入力する必要があります。データセットは、日付でシャーディングされたテーブルまたはパーティション分割テーブルを使用できます。リンクされたデータセットの名前は入力しないでください。リンクされたデータセットは読み取り専用です。 - bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
 - Cloud Storage バケット - storage.googleapis.com/BUCKET_NAME
 - Pub/Sub トピック - pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
 - Splunk - Splunk サービスの Pub/Sub トピックを入力します。 
 
 
- [シンクに含めるログの選択] パネルで、シンクに含めるリソースを選択します。 - インターセプト シンクの場合は、[Intercept logs ingested by this organization and all child resources] を選択します。 
- 非インターセプト シンクの場合は、[Include logs ingested by this resource and all child resources] を選択します。 
 
- [包含フィルタの作成] フィールドに、含めるログエントリに一致するフィルタ式を入力します。フィルタを設定しない場合は、選択したリソースのすべてのログエントリが宛先にルーティングされます。 - たとえば、すべてのデータアクセスの監査 ログを 1 つの Logging バケットにルーティングするようにフィルタを作成できます。このフィルタは次のようになります。 - LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")- フィルタの例については、このページの集約シンクのフィルタを作成するをご覧ください。 - フィルタの長さは 20,000 文字までです。 
- (省略可)正しいフィルタを入力したことを確認するには、[ログをプレビュー] を選択します。これにより、フィルタが事前に入力された状態で、ログ エクスプローラが新しいタブで開きます。 
- (省略可)[シンクから除外するログを選択] パネルで、次の操作を行います。 - [除外フィルタ名] フィールドに名前を入力します。 
- [除外フィルタの作成] セクションで、除外するログエントリに一致するフィルタ式を入力します。 - sample関数を使用して、除外するログエントリの一部を選択することもできます。- たとえば、特定のプロジェクトのログエントリを宛先にルーティングしない場合は、次の除外フィルタを追加します。 - logName:projects/PROJECT_ID - 複数のプロジェクトからログエントリを除外するには、論理 OR 演算子を使用して - logName句を結合します。
 - シンクごとに最大 50 個の除外フィルタを作成できます。フィルタの長さは 20,000 文字までです。 
- [シンクを作成] を選択します。 
- 集約シンクの構成を完了するには、シンクのサービス アカウントに、シンクの宛先にログエントリを書き込む権限を付与します。詳細については、宛先の権限を設定するをご覧ください。 
 - gcloud- 集約シンクを作成するには、 - logging sinks createコマンドを使用します。- シンクを作成するには、 - gcloud logging sinks createコマンドを呼び出し、- --include-childrenオプションを含めます。- 次のコマンドを使用する前に、次のように置き換えます。 - SINK_NAME: ログシンクの名前。シンクの作成後に名前を変更することはできません。
- SINK_DESTINATION: ログエントリのルーティング先となるサービスまたはプロジェクト。これらの宛先の形式については、宛先パスの形式をご覧ください。
- INCLUSION_FILTER: シンクの包含フィルタ。フィルタの例については、集約シンク用のフィルタを作成するをご覧ください。
- FOLDER_ID: フォルダの ID。シンクを組織レベルで作成する場合は、--folder=FOLDER_IDを-- organization=ORGANIZATION_IDに置き換えます。
 - gcloud logging sinks createコマンドを実行します。- gcloud logging sinks create SINK_NAME \ SINK_DESTINATION --include-children \ --folder=FOLDER_ID --log-filter="INCLUSION_FILTER" - 次のオプションも指定できます。 - インターセプト シンクを作成するには、--intercept-childrenオプションを含めます。
 - たとえば、フォルダレベルで集約シンクを作成し、宛先が Pub/Sub トピックの場合は、コマンドは次のようになります。 - gcloud logging sinks create SINK_NAME \ pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID --include-children \ --folder=FOLDER_ID --log-filter="logName:activity" 
- シンクのシ宛先への書き込み権限をシンクのサービス アカウントに付与します。詳細については、宛先の権限を設定するをご覧ください。 
 - REST- 集約シンクを作成するには、Logging API メソッド - organizations.sinks.createまたは- folders.sinks.createを使用します。次のように、メソッドの引数を準備します。- parentフィールドを、シンクを作成する Google Cloud 組織またはフォルダに設定します。親は次のいずれかにする必要があります。- organizations/ORGANIZATION_ID
- folders/FOLDER_ID
 
- メソッドのリクエスト本文の - LogSinkオブジェクトで、次のいずれかを行います。- includeChildrenを- Trueに設定します。
- インターセプト シンクを作成するには、 - interceptChildrenフィールドを- Trueに設定します。
 
- 含めるログエントリに一致するように - filterフィールドを設定します。- フィルタの例については、集約シンク用のフィルタを作成するをご覧ください。 - フィルタの長さは 20,000 文字以下にする必要があります。 
- 残りの - LogSinkフィールドを他のシンクの場合と同様に設定します。 詳細については、サポートされている宛先にログをルーティングするをご覧ください。
- organizations.sinks.createまたは- folders.sinks.createを呼び出してシンクを作成します。
- シンクのシ宛先への書き込み権限をシンクのサービス アカウントに付与します。詳細については、宛先の権限を設定するをご覧ください。 
 - シンクに加えたどの変更も、適用されるまで数分かかることがあります。 - 集約シンクのフィルタ- このセクションでは、集約シンクで使用できるフィルタの例について説明します。その他の例については、ログ エクスプローラを使用したサンプルクエリをご覧ください。 - 一部の例で次の表記を使用しています。 - :は部分文字列演算子です。- =演算子を代わりに使用しないでください。
- ...はさらにフィルタ比較が続くことを表します。
- 変数は色付きのテキストで示されます。これらは有効な値に置き換えてください。
 - フィルタの長さは 20,000 文字に制限されています。 - フィルタリング構文の詳細については、Logging のクエリ言語をご覧ください。 - ログソースを選択する- シンクがすべての子リソースからログエントリをルーティングするには、シンクの包含フィルタと除外フィルタでプロジェクト、フォルダ、または組織を指定しないでください。たとえば、次のようなフィルタを使用して組織の集約シンクを構成するとします。 - resource.type="gce_instance" - 前述のフィルタでは、その組織の子に書き込まれたリソースタイプの Compute Engine インスタンスのログエントリが、集約シンクによって宛先にルーティングされます。 - しかし、集約シンクを使用して特定の子リソースからのログエントリのみをルーティングしたい場合もありえます。たとえば、コンプライアンス上の理由から、特定のフォルダやプロジェクトの監査ログを、自身の Cloud Storage バケットに格納したい場合などです。このような状況では、包含フィルタを構成して、ログエントリをルーティング対象とする各子リソースを指定します。フォルダとそのフォルダ内のすべてのプロジェクトからログエントリをルーティングする場合、フィルタでフォルダとそのフォルダに含まれる各プロジェクトの一覧を表示し、さらにステートメントを - OR句で結合する必要があります。- 次のフィルタは、ログエントリを特定の Google Cloud プロジェクト、フォルダ、組織に制限します。 - logName:"projects/PROJECT_ID/logs/" AND ... - logName:("projects/PROJECT_A_ID/logs/" OR "projects/PROJECT_B_ID/logs/") AND ... - logName:"folders/FOLDER_ID/logs/" AND ... - logName:"organizations/ORGANIZATION_ID/logs/" AND ... - たとえば、フォルダ - my-folderに書き込まれた Compute Engine インスタンスに書き込まれたログエントリのみをルーティングするには、次のフィルタを使用します。- logName:"folders/my-folder/logs/" AND resource.type="gce_instance" - 前述のフィルタでは、 - my-folder以外のリソースに書き込まれたログエントリ(- my-folderの子である Google Cloud プロジェクトに書き込まれたログエントリを含む)は、宛先にルーティングされません。- モニタリング対象リソースを選択する- Google Cloud プロジェクトの特定のモニタリング対象リソースだけからログエントリをルーティングするには、複数の比較演算子を使用してリソースを厳密に指定します。 - logName:"projects/PROJECT_ID/logs" AND resource.type=RESOURCE_TYPE AND resource.labels.instance_id=INSTANCE_ID - リソースタイプの一覧については、モニタリング対象リソースタイプをご覧ください。 - ログエントリのサンプルを選択する- ログエントリのランダムなサンプルをルーティングするには、 - sample組み込み関数を追加します。たとえば、現在のフィルタに一致するログエントリの 10% だけをルーティングするには、次の記述を追加します。- sample(insertId, 0.10) AND ...- 詳細については、 - sample関数をご覧ください。- Cloud Logging のフィルタの詳細については、Logging のクエリ言語をご覧ください。 - 宛先の権限を設定する- このセクションでは、シンクの宛先にログエントリを書き込むための Identity and Access Management 権限を Logging に付与する方法について説明します。Logging のロールと権限の完全なリストについては、アクセス制御をご覧ください。 - ログエントリを現在のプロジェクトのログバケット以外の宛先にルーティングするシンクを作成または更新する場合は、そのシンクのサービス アカウントが必要です。Logging は、サービス アカウントを自動的に作成して管理します。 - 2023 年 5 月 22 日以降、シンクを作成し、基盤となるリソースのサービス アカウントが存在しない場合は、Logging によってサービス アカウントが作成されます。Logging では、基盤となるリソース内のすべてのシンクに同じサービス アカウントが使用されます。リソースには、 Google Cloud プロジェクト、組織、フォルダ、請求先アカウントがあります。
- 2023 年 5 月 22 日より前には、Logging は各シンクのサービス アカウントを作成していました。2023 年 5 月 22 日現在、Logging では基盤となるリソース内のすべてのシンクに共有サービス アカウントを使用しています。
 - シンクの書き込み ID は、そのシンクに関連付けられているサービス アカウントの ID です。現在の Google Cloud プロジェクトのログバケットに書き込むシンクを除き、すべてのシンクには書き込み ID があります。書き込み ID のメールアドレスは、宛先にデータを書き込むためにアクセス権が必要なプリンシパルを識別します。 - サービス境界で保護されたリソースにログエントリをルーティングするには、シンクのサービス アカウントにアクセスレベルを追加し、宛先サービス境界に割り当てる必要があります。この操作は、集約されていないシンクには必要ありません。詳細については、VPC Service Controls: Cloud Logging をご覧ください。 - シンクをエクスポート先にルーティングするための権限を設定するには、次の手順を行います。 - コンソール- シンクのサービス アカウントに関する情報を取得する手順は次のとおりです。 - 
Google Cloud コンソールで、[ログルーター] ページに移動します。 検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。 
- more_vert [メニュー]、[シンクの詳細を表示] の順に選択します。[シンクの詳細] パネルに書き込み ID が表示されます。 
- writerIdentityフィールドの値にメールアドレスが含まれている場合は、次のステップに進みます。値が- Noneの場合、宛先の権限を構成する必要はありません。
- シンクの書き込み ID をクリップボードにコピーします。書き込み ID は、シンクが属するリソースによって異なる場合がありますが、常に - serviceAccount:で始まります。書き込み ID の例を次に示します。- serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com 
 
- 
- シンクの書き込み ID で指定されたプリンシパルに、ログデータをエクスポート先に書き込む権限を付与します。 - 
Google Cloud コンソールで [IAM] ページに移動します。 このページを検索バーで検索する場合は、小見出しが「IAM と管理」の結果を選択します。 
- Google Cloud コンソールのツールバーで、集約シンクの宛先を保存するプロジェクトを選択します。宛先がプロジェクトの場合は、そのプロジェクトを選択します。 
- [アクセスを許可] をクリックします。 
- シンクの書き込み ID で指定されたプリンシパルを入力し、IAM ロールを付与します。 - Google Cloud プロジェクト: ログ書き込みのロール(roles/logging.logWriter)を付与します。具体的には、プリンシパルにlogging.logEntries.route権限が必要です。
- ログバケット: ログバケット書き込みのロール(roles/logging.bucketWriter)を付与します。
- Cloud Storage バケット: ストレージ オブジェクト作成者のロール(roles/storage.objectCreator)を付与します。
- BigQuery データセット: BigQuery データ編集者のロール(roles/bigquery.dataEditor)を付与します。
- Pub/Sub トピック(Splunk を含む): Pub/Sub パブリッシャーのロール(roles/pubsub.publisher)を付与します。
 
- Google Cloud プロジェクト: ログ書き込みのロール(
 
- 
 - gcloud- 宛先を含むGoogle Cloud プロジェクトに対するオーナー権限があることを確認します。シンクの宛先に対するオーナー権限がない場合は、書き込み ID をプリンシパルとして追加するようプロジェクト オーナーに依頼します。 
- シンクのサービス アカウントに関する情報を取得するには、 - gcloud logging sinks describeメソッドを呼び出します。- 次のコマンドを使用する前に、次のように置き換えます。 - SINK_NAME: ログシンクの名前。シンクの作成後に名前を変更することはできません。
 - gcloud logging sinks describeコマンドを実行します。- gcloud logging sinks describe SINK_NAME
- シンクの詳細に - writerIdentityというラベルのフィールドが含まれている場合は、次のステップに進みます。詳細に- writerIdentityフィールドが含まれていない場合、シンクの宛先権限を構成する必要はありません。
- シンクの書き込み ID をクリップボードにコピーします。次に示すのは、書き込み ID です。 - serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
- gcloud projects add-iam-policy-bindingコマンドを呼び出して、エクスポート先にログデータを書き込む権限をシンクの書き込み ID に付与します。- 次のコマンドを使用する前に、次のように置き換えます。 - PROJECT_ID: プロジェクトの ID。集約シンクの宛先を保存するプロジェクトを選択します。宛先がプロジェクトの場合は、そのプロジェクトを選択します。
- PRINCIPAL: ロールを付与するプリンシパルの ID。通常、プリンシパル ID の形式は PRINCIPAL-TYPE:IDです。例:user:my-user@example.comPRINCIPALに使用できる形式の一覧については、プリンシパル ID をご覧ください。
- ROLE: IAM ロール。ログシンクの宛先に基づいて、シンクの書き込み ID に IAM ロールを付与します。 - Google Cloud プロジェクト: ログ書き込みのロール(roles/logging.logWriter)を付与します。具体的には、プリンシパルにlogging.logEntries.route権限が必要です。
- ログバケット: ログバケット書き込みのロール(roles/logging.bucketWriter)を付与します。
- Cloud Storage バケット: ストレージ オブジェクト作成者のロール(roles/storage.objectCreator)を付与します。
- BigQuery データセット: BigQuery データ編集者のロール(roles/bigquery.dataEditor)を付与します。
- Pub/Sub トピック(Splunk を含む): Pub/Sub パブリッシャーのロール(roles/pubsub.publisher)を付与します。
 
- Google Cloud プロジェクト: ログ書き込みのロール(
 - gcloud projects add-iam-policy-bindingコマンドを実行します。- gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
 - REST- サービス アカウントにロールを付与する場合は、 Google Cloud コンソールまたは Google Cloud CLI を使用することをおすすめします。 - 次のステップ- ログバケットにログビューを作成する方法を確認する。ログビューを使用すると、ログバケットに保存されているログエントリのサブセットに対する読み取りアクセス権をプリンシパルに付与できます。 
- 既存のシンクの管理については、サポートされている宛先にログをルーティングする: シンクを管理するをご覧ください。 
- シンクを使用してログをルーティングする際に問題が発生した場合について、ルーティングとシンクのトラブルシューティングで確認する。 
- 宛先でログを表示する方法と、ログをフォーマットして整理する方法について、シンクの宛先でログを表示するで確認する。 
 - 特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。 - 最終更新日 2025-10-19 UTC。 -