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

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

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

  • _Default ログバケットと _Required ログバケットの保存場所。

  • _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 バケットが組織の設定で指定されたロケーションに作成されます。

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

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

準備

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

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

  1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

    gcloud init

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

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

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

    • 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 バケットのストレージ ロケーションを指定できます。サポートされているストレージ ロケーションのリストについては、サポートされているリージョンをご覧ください。

組織のデフォルトのストレージ ロケーションを構成すると、次のようになります。

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

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

Cloud Logging のデフォルトのストレージ ロケーションは、_Default_Required のログバケットにのみ適用されます。それはユーザー定義のログバケットには適用されません。

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

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 シンクにのみ適用されます。

_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 バケットにルーティングします。一致フィルタ除外フィルタを使用すると、組織内またはフォルダ内の新しい _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 とデフォルト設定のエラーのトラブルシューティングをご覧ください。