Cloud SIEM のための Google Cloud 構成ガイド
概要
Datadog Cloud SIEM は、Datadog で処理されたすべてのログに検出ルールを適用し、標的型攻撃や脅威インテリジェンスに記載された IP がシステムと通信している、あるいは安全でないリソース変更などの脅威を検出します。この脅威は、トリアージするためにセキュリティシグナルエクスプローラーでセキュリティシグナルとして表面化されます。
Google Cloud サービスのログを Datadog に転送するには、Google Cloud Dataflow と Datadogテンプレートを使用します。このガイドでは、Google Cloud 監査ログを使用して脅威を検出を開始できるよう、以下の手順について説明します。
- Data Access の監査ログを有効にする
- Google Cloud のパブリッシュ/サブスクリプション (pub/sub) のトピックを作成し、サブスクリプションをプルして、構成済みのログシンクからログを受け取る
- カスタム Dataflow ワーカーサービスアカウントを作成する
- ログシンクを作成して、pub/sub にログを公開する
- Dataflow ジョブを作成して実行する
- Cloud SIEM でセキュリティシグナルのトリアージを行う
Pub/Sub Push サブスクリプションによる Google Cloud ログの収集は、以下の理由で非推奨とする準備を進めています。
- Google Cloud VPC をご利用の場合、Push サブスクリプションは VPC 外のエンドポイントにアクセスできない。
- Push サブスクリプションでは、イベントの圧縮やバッチ化ができず、ログの量が少ない場合にのみ適している。
Push サブスクリプション関連のドキュメントは、トラブルシューティングとレガシーセットアップの変更に対応するためだけに残されます。Google Cloud ログを Datadog に転送するには、代わりに Datadog Dataflow テンプレートを使ったPull サブスクリプションを使用します。
Data Access の監査ログを有効にする
- IAM & Admin Console > Audit Log に移動します。
- データアクセスログを有効にするサービスを選択します。
- Log Types パネルで、Admin Read、Data Read、Data Write を有効にします。
- Save をクリックします。
新サービスのデフォルト構成を変更する
新しい Google Cloud サービスが追加された場合、デフォルトの監査構成を引き継ぎます。
新しい Google Cloud サービスに対して Data Access の監査ログがキャプチャされるようにするには、デフォルトの監査構成を変更します。
- IAM & Admin Console > Audit Log に移動します。
- Admin Read、Data Read、Data Write を有効にします。
- Save をクリックします。
Google Cloud のパブリッシュ/サブスクリプション (pub/sub) システムを作成する
- Pub/Sub > Topics に移動します。
- Create Topic をクリックします。
- わかりやすいトピック名を入力します。例えば、
export-audit-logs-to-datadog
とします。 - Add a default subscription は選択したままにして、デフォルトの構成値でサブスクリプションを作成します。サブスクリプション名は、トピック名に “-sub” を追加する形で自動的に生成されます。このサブスクリプション名は、後で Dataflow ジョブを作成する際に使用されます。
- Create をクリックします。
outputDeadletterTopic パラメーター用に追加のトピックとサブスクリプションを作成する
Datadog API により拒否されたログメッセージを処理するために、追加のトピックとデフォルトのサブスクリプションを作成します。このトピックは、後で Dataflow ジョブをセットアップする際に使用されます。
- Pub/Sub > Topics に戻ります。
- Create Topic をクリックします。
- わかりやすいトピック名を入力します。
- Add a default subscription は選択したままにします。
- Create をクリックします。
警告: pub/sub は、Google Cloud の割り当てと制限 に従います。ログの数がこれらの制限を上回る場合、Datadog はログをいくつかのトピックに分割することをお勧めします。これらの制限に近づいたときに通知するモニターを設定する方法については、ログ転送のモニターを参照してください。
Secret Manager でシークレットを作成する
Datadog では、有効な Datadog API キー値を使って Secret Manager でシークレットを作成することを推奨しています。このシークレットは、後で Dataflow ジョブをセットアップする際に使用されます。
- Security > Secret Manager に移動します。
- Create Secret をクリックします。
- シークレットの名前を入力します。
- Datadog API キーをコピーして、Secret value セクションに貼り付けます。
- オプションで、ユースケースに基づきその他の構成を設定します。
- Create Secret をクリックします。
カスタム Dataflow ワーカーサービスアカウントを作成する
Dataflow パイプラインワーカーは、デフォルトの挙動として、プロジェクトの Compute Engine のデフォルトのサービスアカウントを使用します。これは、プロジェクト内のすべてのリソースに権限を与えるものです。本番環境からログを転送する場合は、必要なロールと権限のみでカスタムワーカーサービスアカウントを作成し、このサービスアカウントを Dataflow パイプラインワーカーに割り当てます。
注: Dataflow パイプラインワーカー用のカスタムサービスアカウントを作成する場合は、デフォルトの Compute Engine のサービスアカウントが以下の必要な権限を持っていることを確認してください。
- Google Cloud の [Service Account]]11 ページに移動します。
- プロジェクトを選択します。
- Create Service Account をクリックします。
- サービスアカウントのわかりやすい名前を入力します。
- Create and Continue をクリックします。
- 以下のロールを追加します。
必要な権限
ロール | パス | 説明 |
---|
Dataflow Admin | roles/dataflow.admin | このサービスアカウントが Dataflow の管理者タスクを実行することを許可します。 |
Dataflow Worker | roles/dataflow.worker | このサービスアカウントが Dataflow ジョブのオペレーションを実行することを許可します。 |
Pub/Sub Viewer | roles/pubsub.viewer | このサービスアカウントが Google Cloud ログで Pub/Sub サブスクリプションからのメッセージを表示することを許可します。 |
Pub/Sub Subscriber | roles/pubsub.subscriber | このサービスアカウントが Google Cloud ログで Pub/Sub サブスクリプションからのメッセージを消費することを許可します。 |
Pub/Sub Publisher | roles/pubsub.publisher | このサービスアカウントが別のサブスクリプションにフィールドメッセージを公開することを許可します。これにより、ログの解析や再送信が可能になります。 |
Secret Manager Secret Accessor | roles/secretmanager.secretAccessor | このサービスアカウントが Secret Manager 内の Datadog API キーにアクセスすることを許可します。 |
Storage Object Admin | roles/storage.objectAdmin | このサービスアカウントがファイルのステージング用に指定された Cloud Storage バケットに対する読み取りと書き込みを行うことを許可します。 |
- Continue をクリックします。
- Done をクリックします。
pub/sub にログを公開するためのログシンクを作成する
- Google Cloud の Logs Explorer に移動します。
- 左サイドメニューの Log Router を選択します。
- Create Sink をクリックします。
- シンクのわかりやすい名前を入力します。
- Next をクリックします。
- Select Sink Service ドロップダウンメニューで、Cloud Pub/Sub topic を選択します。
注: Cloud Pub/Sub のトピックは別のプロジェクトに配置することができます。
- Select a Cloud Pub/Sub topic で、先ほど作成した Pub/Sub を選択します。
- Next をクリックします。
- Datadog に送信したいログを対象とした包含フィルターを入力します。
- Next をクリックします。
- オプションで、Datadog に送信したくないログを対象とした除外フィルターを入力します。
- Create Sink をクリックします。
注: 異なるシンクを使用して、Google Cloud Logging から同じ pub/sub への複数のエクスポートを作成することができます。
Dataflow ジョブを作成して実行する
- Google Cloud Dataflow に移動します。
- Create job from template をクリックします。
- ジョブの名前を入力します。
- リージョンエンドポイントを選択します。
- Dataflow template ドロップダウンメニューで、Pub/Sub to Datadog を選択します。
- Required Parameters セクションで以下の設定を行います。
a. Pub/Sub input subscription ドロップダウンメニューで、先ほど新規の Pub/Sub システムを作成した際に作成されたデフォルトのサブスクリプションを選択します。
b. Datadog Logs API URL フィールドに以下の値を入力します。注: 上記の URL をコピーする前に、このドキュメントページの右側にある Datadog サイトセレクタがご利用の Datadog サイトに設定されていることを確認してください。
c. Output deadletter Pub/Sub topic フィールドで、Datadog API により拒否されたメッセージを受信するために先ほど作成した追加のトピックを選択します。
d. Temporary location フィールドで、ストレージバケット内の一時ファイルのパスを指定します。 - 先ほど Datadog API キー値用の シークレットを Secret Manager で作成した場合:
a. Optional Parameters をクリックすると、追加のフィールドが表示されます。
b. Google Cloud Secret Manager ID フィールドにシークレットのリソース名を入力します。
リソース名を取得するには、Secret Manager のリソースに移動して、シークレットをクリックします。Action の下の 3 つのドットをクリックして、Copy resource name を選択します。
c. Source of the API key passed フィールドに SECRET_MANAGER
と入力します。 - Datadog API キー値用のシークレットを使用していない場合:
- 推奨:
Source of API key passed
を KMS
に設定します。Google Cloud KMS key for the API key
にお持ちの Cloud KMS キー ID を設定します。Logs API Key
に暗号化された API キーを設定します。
- 非推奨:
Source of API key passed
を PLAINTEXT
に設定し、Logs API Key
にプレーンテキストの API キーを設定します。
- その他の利用可能なオプションの情報については、Dataflow テンプレートのテンプレートパラメーターを参照してください。
- カスタムワーカーサービスアカウントを作成した場合は、Service account email ドロップダウンメニューでそれを選択します。
- Run Job をクリックします。
Datadog Log Explorer で Cloud Pub/Sub トピックに配信された新規ログイベントを確認します。
Cloud SIEM でセキュリティシグナルのトリアージを行う
Cloud SIEM は、設定した Google Cloud の監査ログを含む、処理されたすべてのログに対して、すぐに検出ルールを適用します。検出ルールで脅威が検出されると、セキュリティシグナルが生成され、セキュリティシグナルエクスプローラーで確認することができます。
その他の参考資料