このドキュメントでは、Google Cloud CLI を使用して Logging のデフォルトの設定を構成する方法について説明します。 デフォルトの設定(組織またはフォルダに適用可能)は、以下を決定します。
- 新しいログバケットに顧客管理の暗号鍵(CMEK)が必要かどうか。
- 新しい
_Default
バケットと_Required
バケット、および [ログ エクスプローラ] ページまたは [ログ分析] ページで実行されるクエリのストレージ ロケーション。
_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 のデフォルトの設定を開始するには、次のようにします。
-
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.
デフォルト設定を構成する組織またはフォルダに対する Identity and Access Management ロールに、次の Cloud Logging 権限が含まれていることを確認します。
logging.settings.get
logging.settings.update
ログとクエリを保存する場所を特定します。サポートされているストレージ ロケーションのリストについては、サポートされているリージョンをご覧ください。
Logging のデフォルト設定を表示する
デフォルトのストレージ ロケーションなど、Logging のデフォルト設定を表示するには、gcloud logging settings describe
コマンドを使用します。
フォルダ
gcloud logging settings describe --folder=FOLDER_ID
前のコマンドを実行する前に、次のように置き換えます。
- FOLDER_ID: フォルダの一意の数値 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 のデフォルトの設定で指定されたロケーションを含める必要があります。 さらに、デフォルトの設定を変更する場合は、デフォルトの設定を更新する前に、組織のポリシーを確認し、必要に応じて更新してください。
組織のポリシーを表示または更新するには、次のようにします。
-
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
次のコマンドを実行する前に、次のように置き換えます。
- 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
前のコマンドを実行する前に、次のように置き換えます。
- FOLDER_ID: フォルダの一意の数値 ID。フォルダの使用方法については、フォルダの作成と管理をご覧ください。
組織
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 とデフォルトの設定エラーのトラブルシューティングをご覧ください。