組織とフォルダのデフォルト設定を構成する

このドキュメントでは、Google Cloud CLI を使用して Logging のデフォルトのリソース設定を構成する方法について説明します。 デフォルトのリソース設定(組織またはフォルダに適用可能)は、以下を決定します。

  • 新しいログバケットに CMEK が必要かどうか。

  • ストレージの場所。これによって次が決まります。

    • _Default ログバケットと _Required ログバケットが保存される場所。

    • [ログ エクスプローラ] ページまたは [ログ分析] ページ内の、特に最近のクエリ および Google Cloud プロジェクトのメンバーによって保存されたクエリが保存される場所。

  • _Default シンクが有効か無効か。

  • 新しいリソースの _Default シンクに適用されるフィルタ。

概要

組織リソースは、Google Cloud リソース階層の最上位にあります。 組織リソースは、次の子リソースの親です。Google Cloud プロジェクト、フォルダ、請求先アカウント、およびLogging、バケット

Google Cloud 組織とフォルダのデフォルトのリソース設定を使用するように Logging を構成できます。新しいリソースを作成すると、そのリソースは親のリソースのデフォルト設定を継承します。

Cloud Logging では、次のデフォルトのリソース設定がサポートされています。

  • リソース内の新しいログバケットを顧客管理の鍵で暗号化するかどうか、暗号化する場合は暗号化に使用するデフォルトの Cloud KMS 鍵。

    リソースに CMEK を構成する場合は、子リソースによって作成された新しい _Default バケットと _Required バケットのデフォルトのストレージ ロケーションも設定する必要があります。

  • 新しい _Default_Required バケット、および [ログ エクスプローラ] または [ログ分析] ページ内のクエリのストレージ ロケーション。 このストレージ ロケーションを使用すると、ログのストレージ ロケーションを制御できます。

    リソースのデフォルトのストレージ ロケーションを設定し、そのリソースに CMEK を構成しない場合、リソースの新しいログバケットは CMEK を必要としません。

  • リソース内の新しいプロジェクトで _Default ログシンクが有効か無効か。

  • 子リソース内のすべての新しい _Default シンクに適用される一致フィルタまたは除外フィルタ。

構成例

  • 組織のデフォルトのストレージ ロケーションを構成します。組織内の新しいプロジェクトの場合、_Default バケットと _Required バケットが指定されたロケーションに作成されます。

  • 組織のデフォルトのストレージ ロケーションを構成し、その組織内の各フォルダのデフォルトのストレージ ロケーションを構成します。フォルダ内の新しいプロジェクトの場合、フォルダの設定で指定された場所に _Default バケットと _Required バケットが作成されます。フォルダ内に存在しないプロジェクトの場合、プロジェクトの _Default バケットと _Required バケットは組織の設定で指定された場所に作成されます。

  • ログ エクスプローラのすべてのクエリが保存されるデフォルトのストレージ ロケーションを構成します。これには、実行後に自動的に保存される最近のクエリや、Google Cloud プロジェクトのメンバーによって保存されたクエリが含まれます。

  • 組織の CMEK を構成し、Non-CMEK という名前のフォルダにはデフォルトのストレージ ロケーションのみを設定します。Non-CMEK という名前のフォルダにないプロジェクトを作成する場合、_Default バケットと _Required バケットは Cloud Key Management Service 鍵と同じ場所に作成されます。これらのログバケットは、その鍵で暗号化されます。 ただし、Non-CMEK という名前のフォルダに新しいプロジェクトを作成すると、そのログバケットはそのフォルダの設定で指定された場所に作成され、これらのログバケットは CMEK で暗号化されません。

  • 組織レベルで新しい _Default シンクに適用される除外フィルタを構成します。フィルタにより、すべての子リソースの _Default シンクを介してルーティングされるデータアクセスの監査ログが除外され、データアクセスの監査ログが _Default バケットに保存されなくなります。

準備

このドキュメントには、Logging のデフォルトのリソース設定として CMEK を構成する方法についての情報は含まれていません。このトピックについては、Logging 用の CMEK を構成するをご覧ください。

Logging のデフォルトのリソース設定を開始するには、次のようにします。

  1. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  2. 組織に対して次の Cloud Logging 権限があることを確認します。

    • logging.settings.get
    • logging.settings.update
  3. ログを保存できるサポートされているロケーションなど、LogBucket の形式の要件を把握します。ログバケットでサポートされているストレージ ロケーションのリストについては、データ リージョン: サポートされているリージョンをご覧ください。

  4. デフォルトのリソース設定を構成する組織またはフォルダの ID を見つけます。

    • ORGANIZATION_ID は Google Cloud 組織の一意の数値識別子です。 フォルダのデフォルト リソース設定のみを構成する場合は、この値は必要ありません。この ID を取得する方法については、組織 ID の取得をご覧ください。
    • FOLDER_ID は Google Cloud フォルダの一意の数値識別子です。組織のデフォルトのリソース設定を構成する予定しかない場合は、この値は必要ありません。フォルダの使用方法については、フォルダの作成と管理をご覧ください。
    • LOCATION は、ログデータを格納する場所です。

Logging のデフォルトのリソース設定を表示する

デフォルトのストレージ ロケーションなど、Logging のデフォルトのリソース設定を表示するには、gcloud logging settings describe コマンドを使用します。

フォルダ

 gcloud logging settings describe --folder=FOLDER_ID

ORGANIZATION

gcloud logging settings describe --organization=ORGANIZATION_ID

上記のコマンドは、デフォルトのリソース設定に関する情報を返します。 たとえば、特定の組織のデフォルトのリソース設定は、以下のとおりです。

name: organizations/ORGANIZATION_ID/settings
kmsKeyName: KMS_KEY_NAME
kmsServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
storageLocation: europe-west1
disableDefaultSink: false

SERVICE_ACCT_NAME の値は cmek-12345 または service-12345@... の形式にできます。Google Cloud CLI を使用できない場合は、Cloud Logging API メソッド getSettings を実行します。

デフォルトのストレージ ロケーションを設定する

ログバケットは、ログデータを保存して整理する Google Cloud プロジェクト、請求先アカウント、フォルダ、組織のコンテナです。Logging では、Google Cloud プロジェクト、請求先アカウント、フォルダ、組織ごとに、_Required_Default という 2 つのログバケットが自動的に作成されます。これらのバケットは未指定の global ロケーションに自動的に保存されます。

Logging のデフォルトのリソース設定を変更することで、組織またはフォルダに含まれる _Required バケットと _Default バケットのストレージ ロケーションを指定できます。 このストレージ ロケーションにより、[ログ エクスプローラ] ページと [ログ分析] ページのクエリの保存場所も決まります。これらのクエリには、実行後に自動的に保存される最近のクエリと、Google Cloud プロジェクトのメンバーによって保存されたクエリが含まれます。

サポートされているストレージ ロケーションのリストについては、サポートされているリージョンをご覧ください。

組織のデフォルトのストレージ ロケーションを構成すると、以下が発生します。

  • 組織またはフォルダの既存の _Required バケットと _Default バケットは、作成時に割り当てられたストレージ ロケーションを維持します。

  • デフォルトのストレージ ロケーションを構成した後に組織またはフォルダに作成された子リソースの場合、それらの _Required バケットと _Default バケットはデフォルトのストレージ ロケーションを継承します。

  • 既存のログ エクスプローラまたはログ分析のクエリでは、現在のストレージ ロケーションが維持されます。

  • デフォルトのストレージ ロケーションの構成後に保存する新しいログ エクスプローラ クエリまたは Log Analytics クエリでは、デフォルトのストレージ ロケーションが使用されます。 このロケーションは、自動的に保存される最近のクエリにも適用されます。

Cloud Logging のデフォルトのストレージ ロケーションは、_Default_Required のログバケット、および [ログ エクスプローラ] ページまたは [ログ分析] ページのクエリにのみ適用されます。これらのクエリには、実行後に自動的に保存されるクエリと、Google Cloud プロジェクトのメンバーが保存したクエリが含まれます。ユーザー定義のログバケットや、Logging API を使用して保存されたクエリには適用されません。リクエストでロケーションを指定する必要があります。

組織のポリシーを構成する

Logging では、データを保存する場所を制限できる組織のポリシーがサポートされています。このようなポリシーが組織に存在する場合は、ポリシーで許可されているロケーションにのみログバケットを作成できます。

ロケーションの制約を指定する組織のポリシーが存在する場合、制約のポリシー値には、Logging のデフォルトのリソース設定で指定されたロケーションを含める必要があります。 さらに、デフォルトのリソース設定を変更する場合は、デフォルトのリソース設定を更新する前に、組織のポリシーを確認し、必要に応じて更新してください。

組織のポリシーを表示または更新するには、次のようにします。

  1. Google Cloud コンソールで、[組織のポリシー] ページに移動します。

    [組織のポリシー] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [IAM と管理者] である結果を選択します。

  2. 組織を選択する。

  3. 表示し、必要に応じて、ID constraints/gcp.resourceLocations の制約を更新します。この制約が構成されていない場合は、更新は必要ありません。

    特定の制約を表示する方法と、これらの制約を編集する方法については、ポリシーの作成と編集をご覧ください。

Logging のデフォルトのストレージ ロケーションを構成する

Cloud Logging のデフォルトのストレージ ロケーションを構成するには、gcloud logging settings update コマンドを実行して --storage-location フラグを指定します。

フォルダ

gcloud logging settings update --folder=FOLDER_ID--storage-location=LOCATION

ORGANIZATION

gcloud logging settings update --organization=ORGANIZATION_ID --storage-location=LOCATION

Google Cloud CLI を使用できない場合は、Cloud Logging API メソッド updateSettings を実行します。

デフォルトのストレージ ロケーションを更新する際のエラーの解決方法については、デフォルトのリソース ロケーションの設定に関するトラブルシューティングをご覧ください。

_Default シンクを構成する

Logging は、Google Cloud プロジェクト、請求先アカウント、フォルダ、組織リソースごとに定義済みの _Default シンクを提供します。一致フィルタと一致し、除外されていないリソースで生成されたログは、リソースの事前定義された _Default という名前のバケットにルーティングされます。

次のオプションを使用して、組織とフォルダの _Default シンクのデフォルトのリソース設定を構成できます。

  • すべての子リソースに対して _Default シンクを無効にできます。

  • 新しいプロジェクトの _Default シンクに適用される一致フィルタまたは複数の除外フィルタを構成できます。

_Default シンクを無効にする

組織内またはフォルダのすべての新しいリソースに対して _Default シンクの作成を無効にできます。_Default シンクを無効にすると、ログがリソースの _Default バケットに保存されなくなります。リソースの _Default バケットへのログの保存を停止すると、そのバケットにルーティングされていたログが、そのリソースに対して別のユーザー定義のシンクに明示的に含まれていない限り、Logging のストレージから除外されます。

リソースとその子リソースの _Default シンクを無効にするには、次の gcloud logging settings update コマンドを実行します。

フォルダ

gcloud logging settings update --folder=FOLDER_ID--disable-default-sink

ORGANIZATION

gcloud logging settings update --organization=ORGANIZATION_ID --disable-default-sink

disable-default-sink フラグは、_Default バケットにログをルーティングする _Default シンクにのみ適用されます。

次の gcloud logging settings update コマンドを実行すると、_Default シンクを再び有効にできます。

フォルダ

gcloud logging settings update --folder=FOLDER_ID--no-disable-default-sink

ORGANIZATION

gcloud logging settings update --organization=ORGANIZATION_ID --no-disable-default-sink

_Default シンクのデフォルト フィルタを構成する

事前定義された _Default シンクは、シンク条件に一致するログを対応する _Default バケットにルーティングします。一致フィルタ除外フィルタを使用すると、組織内またはフォルダ内の新しい _Default シンクに含めるか除外するログを構成できます。

一致フィルタは、_Default シンクフィルタをオーバーライドまたは追加します。デフォルトでは、_Default シンクに除外フィルタがないため、除外フィルタが追加されます。

組織またはフォルダ内の新しいリソースのすべての _Default シンクに適用される一致フィルタまたは除外フィルタを指定するには、defaultSinkConfig オブジェクトで Cloud Logging API のメソッド updateSettings を実行します。_Default シンクのデフォルト フィルタは、Logging API を使用して設定できます。

updateSettings メソッドは、メソッドのリファレンス ページにある API Explorer ウィジェットを使用して実行できます。次の例は、サンプル パラメータを示しています。

  • 名前 (URL): organizations/ORGANIZATION_ID/settings
  • updateMask: "default_sink_config"
  • リクエスト本文Settings のインスタンスを含む。

    "defaultSinkConfig": {
      {
      "filter": "NOT LOG_ID(\"externalaudit.googleapis.com/activity\") "
      "AND NOT LOG_ID(\"cloudaudit.googleapis.com/system_event\") "
      "AND NOT LOG_ID(\"externalaudit.googleapis.com/system_event\") "
      "AND NOT LOG_ID(\"cloudaudit.googleapis.com/access_transparency\") "
      "AND NOT LOG_ID(\"externalaudit.googleapis.com/access_transparency\") ",
      "exclusions": [
         {
            "name": "exclude-data-access",
            "description": "Prevents Data Access audit logs from being routed",
            "filter": "log_id(\"cloudaudit.googleapis.com/data_access\")",
         }
      ],
      "mode": OVERWRITE
      }
    }
    

前の例では以下が行われます。

  • _Default シンクの一致フィルタを上書きして、デフォルトで除外される管理アクティビティ監査ログを追加します。

  • データアクセスの監査ログが _Default バケットにルーティングされないようにする除外フィルタを追加します。

構成エラーのトラブルシューティング

トラブルシューティング情報については、CMEK とデフォルトの設定エラーのトラブルシューティングをご覧ください。