このドキュメントでは、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 のデフォルトのリソース設定を開始するには、次のようにします。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
組織に対して次の Cloud Logging 権限があることを確認します。
logging.settings.get
logging.settings.update
ログを保存できるサポートされているロケーションなど、
LogBucket
の形式の要件を把握します。ログバケットでサポートされているストレージ ロケーションのリストについては、データ リージョン: サポートされているリージョンをご覧ください。デフォルトのリソース設定を構成する組織またはフォルダの 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 のデフォルトのリソース設定で指定されたロケーションを含める必要があります。 さらに、デフォルトのリソース設定を変更する場合は、デフォルトのリソース設定を更新する前に、組織のポリシーを確認し、必要に応じて更新してください。
組織のポリシーを表示または更新するには、次のようにします。
-
Google Cloud コンソールで、[組織のポリシー] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [IAM と管理者] である結果を選択します。
組織を選択する。
表示し、必要に応じて、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 とデフォルトの設定エラーのトラブルシューティングをご覧ください。