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

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

  • 新しいログバケットに顧客管理の暗号鍵(CMEK)が必要かどうか。
  • _Default シンクが有効か無効か。

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

概要

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

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

Cloud Logging は、次のデフォルト設定をサポートしています。

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

  • 子リソースによって作成された新しい _Default ログバケットと _Required ログバケット、および [ログ エクスプローラ] ページまたは [ログ分析] ページで保存されたクエリのストレージ ロケーション。ストレージ ロケーションを設定すると、ログの保存場所を制御できます。

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

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

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

構成例

  • 組織のデフォルトのストレージ ロケーションを構成します。組織内の新しいプロジェクトの場合、_Default ログバケットと _Required ログバケットは指定された場所に作成されます。また、[ログ エクスプローラ] ページまたは [ログ分析] ページで保存されたクエリは、指定されたロケーションに保存されます。これらのクエリには、実行後に自動的に保存される最近のクエリと、Google Cloud プロジェクトのメンバーによって保存されたクエリが含まれます。
  • 組織のデフォルトのストレージ ロケーションを構成し、その組織内の各フォルダのデフォルトのストレージ ロケーションを構成します。フォルダ内の新しいプロジェクトの場合、_Default バケットと _Required バケットは、フォルダの設定で指定された場所に作成されます。フォルダ内に存在しないプロジェクトの場合、プロジェクトの _Default バケットと _Required バケットは組織の設定で指定された場所に作成されます。

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

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

始める前に

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

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

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. デフォルト設定を構成する組織またはフォルダに対する Identity and Access Management ロールに、次の Cloud Logging 権限が含まれていることを確認します。

    • logging.settings.get
    • logging.settings.update
  3. ログとクエリを保存する場所を特定します。サポートされているストレージ ロケーションのリストについては、サポートされているリージョンをご覧ください。

Logging のデフォルト設定を表示する

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

フォルダ

 gcloud logging settings describe --folder=FOLDER_ID

前のコマンドを実行する前に、次のように置き換えます。

組織

gcloud logging settings describe --organization=ORGANIZATION_ID

前のコマンドを実行する前に、次のように置き換えます。

  • ORGANIZATION_ID: 組織の一意の数値識別子。この ID を取得する方法については、組織 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 ロケーションに自動的に保存されます。

組織またはフォルダのデフォルトのストレージ ロケーションを設定すると、新しい _Required ログバケットと _Default ログバケットの作成場所と、[ログ エクスプローラ] ページと [ログ分析] ページで実行するクエリの保存場所を指定します。デフォルトのストレージ ロケーションを設定しても、既存のログバケットのロケーションには影響しません。同様に、保存したクエリの保存場所は変更されません。

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

  • 組織またはフォルダで作成された新しい子リソースの場合、その _Required バケットと _Default バケットはデフォルトのストレージ ロケーションを継承します。
  • [ログ エクスプローラ] ページまたは [ログ分析] ページで実行する新しいクエリは、デフォルトのストレージ ロケーションに保存されます。このロケーションは、自動的に保存される最近のクエリにも適用されます。

Cloud Logging のデフォルトのストレージ ロケーションは、ユーザー定義のログバケットや 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

次のコマンドを実行する前に、次のように置き換えます。

  • FOLDER_ID: フォルダの一意の数値 ID。フォルダの使用方法については、フォルダの作成と管理をご覧ください。
  • LOCATION: 新しい _Default ログバケットと _Required ログバケットが作成され、クエリが保存されるロケーション。サポートされているロケーションの一覧については、サポートされているリージョンをご覧ください。

組織

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

次のコマンドを実行する前に、次のように置き換えます。

  • ORGANIZATION_ID: 組織の一意の数値識別子。この ID を取得する方法については、組織 ID の取得をご覧ください。
  • LOCATION: 新しい _Default ログバケットと _Required ログバケットが作成され、クエリが保存されるロケーション。サポートされているロケーションの一覧については、サポートされているリージョンをご覧ください。

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

前のコマンドを実行する前に、次のように置き換えます。

組織

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

前のコマンドを実行する前に、次のように置き換えます。

  • ORGANIZATION_ID: 組織の一意の数値識別子。この ID を取得する方法については、組織 ID の取得をご覧ください。

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

_Default シンクを再度有効にするには、次の gcloud logging settings update コマンドを実行します。

フォルダ

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 バケットにルーティングします。Cloud Logging API コマンドを送信して、_Default シンクの組み込み包含フィルタをオーバーライドしたり、フィルタを追加したりできます。_Default シンクの組み込み除外フィルタが空です。ただし、API コマンドでは除外フィルタを追加することもできます。

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

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 シンクの組み込みの包含フィルタには、AND NOT LOG_ID("externalaudit.googleapis.com/activity") ステートメントが含まれています。これにより、管理アクティビティ監査ログが _Default ログバケットに転送されなくなります。上の例では、管理アクティビティ監査ログが _Default ログバケットに転送されるように、包含フィルタが変更されています。この例では、データアクセスの監査ログが _Default バケットにルーティングされないようにする除外フィルタも追加します。上の例では、除外フィルタの名前は exclude-data-access です。

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

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