このドキュメントでは、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 のデフォルトのリソース設定を開始するには、次のようにします。
Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。
gcloud init
組織に対して次の Cloud Logging 権限があることを確認します。
logging.settings.get
logging.settings.update
ログを保存できるサポートされているロケーションなど、
LogBucket
の形式の要件を把握します。ログバケットでサポートされているストレージ ロケーションのリストについては、データ リージョン: サポートされているリージョンをご覧ください。デフォルトのリソース設定を構成する組織またはフォルダの識別子を見つけます。
- 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 のデフォルトのリソース設定で指定されたロケーションが含まれている必要があります。さらに、デフォルトのリソース設定を変更する場合は、デフォルトのリソース設定を更新する前に、組織のポリシーを確認し、必要に応じて更新してください。
組織のポリシーを表示または更新するには、次のようにします。
-
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
シンクにのみ適用されます。
_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 とデフォルト設定のエラーのトラブルシューティングをご覧ください。