
Splunkさん主催 Google Cloud のデータ取り込みワークショップに参加してみた!
前回、2024年10月にはAWSとSplunkのデータ連携アーキテクチャの詳細に関する講義とハンズオンを行っていただいていました。
今回は、そのGoogle Cloud版ということで、ハンズオン形式のワークショッププログラムを実施していただきました。
ということで、再び大手町オフィスにあるSplunk社へお邪魔させていただいております。
また、今回もAPACでパートナー向け技術コンテンツ開発を担当されており、SplunkとCloud Infra連携のスペシャリストでクラウドテクニカルストラテジストのTravis Kaneさん(通称T-REX)さんが来日、講演いただきました。
当ワークショップはマクガイバーというアメリカのTVドラマになぞられており、ワークショップ自体もシリーズ化されています。
次回も予定されているようで、開催が楽しみです。
- 前回: SplunkへのAWSデータ取り込み
- 今回: SplunkへのGoogle Cloudデータ取り込み
- 次回: SplunkでのAWSセキュリティのユースケースと活用方法
前回開催の内容については下記からご覧いただけます。
SplunkさんのAWSデータ連携に関する特別ワークショップに参加した! | DevelopersIO
本ブログについては、イベント開催のダイジェスト版としてお送りさせていただきます。
主に講義内容のハイライトについてご紹介します。
尚メイントピックであるハンズオンの実施内容については後日別のエントリにてお送りしたいと思いますので、こちらも乞うご期待ください。
アジェンダ
講義の流れは以下のようになっています。
- データ連携に必要な Google Cloud サービスの基礎理解
- Pull方式での取り込み方法
- Push方式での取り込み方法
- 高度なトピック
- 補足のコンテンツ
データ連携に必要な Google Cloud サービスの基礎理解
以下が、データ連携で知っておくべきサービスになります。
ワークショップでは、一つずつ概要を勉強し、特に Cloud Audit Logs
については、ログの種類とログの構造までをきちんと解説いただきました。
(それぞれのサービスの詳細内容については、本家のドキュメントなどで確認いただくのが良いと思いますが、概要の紹介とリンクのご紹介をしていきます)
Resource Manager
が提供するAPI機能によって、Google Cloudリソースの管理を行うことができます。
Resource Manager のドキュメント | Resource Manager Documentation | Google Cloud
Cloud IAM
を使用して、特定のGoogle Cloudリソースへのアクセス権をきめ細かく設定し、それ以外のリソースへのアクセスを防止します(最小権限の原則)。
以下の三種類のロールがありますが、基本ロールは権限が多く含まれているので、推奨されていないようです。
- 基本ロール
- 事前定義ロール
- カスタムロール
これらのロールを使って各種リソースへのアクセス権限を付与し、データ連携を行います。
IAM basic and predefined roles reference | IAM Documentation | Google Cloud
Cloud Monitoring
はGoogle Cloud上のリソースのメトリクスを収集し調査するためのツールです。Splunkのような外部ツールのログソースとしても活用することができます。
Google Cloud Observability のドキュメント | Cloud Monitoring
Cloud Logging
はGoogle Cloud上のログを収集し調査するためのツールです。同じくSplunkのような外部ツールのログソースとして活用可能です。
Google Cloud Observability のドキュメント | Cloud Logging
Pub/Sub
はトピックとサブスクリプションからなる非同期かつスケーラブルなメッセージングサービスです。
Cloud Logging
や Cloud Asset Inventory
などをパブリッシャーとし、今回のハンズオンワークショップで毎回登場するログ連携に重要なサービスになります。
Pub/Sub とは | Pub/Sub Documentation | Google Cloud
Cloud Audit Logs
はGoogle CloudのAPIコールに関する監査証跡を記録するサービスになります。
Cloud Audit Logs の概要 | Cloud Logging | Google Cloud
Google Cloud のセキュリティ上重要なログソースで、後続の Cloud Logging
に繋いでいくことでGoogle Cloud上の操作ログを記録することができます。
ここでは Cloud Audit Logs
が提供する各種ログタイプについて例を見ながら踏み込んで確認しました。
まず下記の4つのログタイプが存在しています。
- 管理アクティビティ監査ログ
- データアクセス監査ログ
- システムイベント監査ログ
- ポリシー拒否監査ログ
データ分析にあたって、どのログが重要なのか、何が記録されているのかを知っておくことは重要だと思います。
例を出して説明いただいたので、非常に分かりやすく体系立てて理解することができました。大変有用でありがたい!!
管理アクティビティ監査ログ
API呼び出しのエントリ、リソースの構成やメタデータに変更を加えるアクションをログに記録します。
下記の説明のように、どのサービスへの操作か、APIへの認証が成功したのか、どんなアクションなのか(Kubernetesのリーダー選出に間する設定変更)、何に対しての操作なのかなどが、読み取れます。
データアクセス監査ログ
リソースやデータに対する更新系・読み取り系のAPIコールを記録します。
非常に多くのデータを生成するために、全てを有効することは非推奨。ログフィルタを設定して必要なものだけ有効化設定するのが良い。
こちらも下記の説明のように、いつ・どこで・誰が・何を・何に対してのアクションなのかが読み取れます。
先ほどと違うのは、リソースへの変更イベントではなく、ログが書き込まれたという内容のイベントになります。
システムイベント監査ログ
Google Cloudサービスによって行われたリソース変更を記録します。
こちらのログの違いは、Pub/Subの無効な状態が継続していたサブスクリプションが自動削除されたメッセージになり、Google Cloudサービスによって行われた変更だと分かります。
ポリシー拒否監査ログ
ポリシーにより拒否されたイベントを記録します。権限のエラーなどセキュリティ特に重要なログとして注目することができます。
こちらのログの違いは、APIの認証が失敗しているものがこちらのイベントとして出力されます。データアクセス監査ログ
に出力されているイベントが仮に認証が失敗していた場合は、データアクセス監査ログ
ではなく、ポリシー拒否監査ログ
に出力される仕組みになっています。
そして、下記がGoogle Cloudからのデータ取り込みのパターンの全体像を表示したものになります。
Pull方式での取り込み方法
Splunk側からGoogle Cloudへデータをポーリングしにいって、データを取得します。
ハンズオンでは主に以下の部分での取り込み方式について学びました。
このアーキテクチャを採用する時のユースケースです。
- 構成が比較的シンプル
- 注意点、ポーリング間隔があるためリアルタイム性にかける
Push方式での取り込み方法
Google CloudからSplunkのHTTPエンドポイントへデータを送信し、データを取得します。
ハンズオンでは主に以下の部分での取り込み方式について学びました。
このアーキテクチャを採用する時のユースケースです。
- リアルタイム性の高いデータ連携
- 抽出/変換/ロードを担当(特に変換作業が必要な場合)
- 大規模データの処理に向いている
高度なトピック
これ移行は座学の講義となり、発展型や補足情報について学び、理解を深めていく内容となりました。
Googleログイン情報は、Google Cloudの利用だけでなく、Google WorkspaceやGoogle認証が提供するOAuthやSAMLを経由したログインイベントを共有することができます。
Google認証詳細情報
Google ID 管理の概要 | Cloud Architecture Center | Google Cloud
Google Workspace Enterprise の共有オプションを設定してイベント情報をGoogle Cloudに送信することができます。
Google Workspaceを利用している環境であれば、統合的に管理でき良さそうですね。
Workspaceでのデータ共有
Share data with Google Cloud services - Google Workspace Admin Help
Terraformを使って、Push方式で使った Dataflow
のデータ送信アーキテクチャをIaCでデプロイ・管理することができます。
テンプレートはSplunkで開発されています。
Terraform テンプレート
GitHub - GoogleCloudPlatform/terraform-splunk-log-export: Deploy Google Cloud log export to Splunk using Terraform
デモビデオ
Simplify data operations and access to insights with the Splunk Dataflow Template - YouTube
また、Splunk Data Managerを使って同じことが可能ですので、どちらかを使うことでより簡単にログ送信のためのリソース構築ができそうです。
GCP prerequisites for Data Manager - Splunk Documentation
補足のコンテンツ
Google Cloudの他のログソースのデータ連携に関する補足情報について、有用なブログリンクのご紹介をいただきました。
Cloud Asset Inventory のデータ取得のアーキテクチャ紹介
Taking Inventory of Your Google Cloud | Splunk
Cloud Audit Logs の概要に関する補足情報
Getting to Know Google Cloud Audit Logs | Splunk
BigQuery のデータを Splunk DB Connect を使って取り込む方法
Configuring Splunk DB Connect for use with Google BigQuery - Splunk Lantern
AWSとGoogle Cloud間でWorkload Identity連携するためのガイド
Deploying Workload Identity Federation between AWS and GCP - Splunk Lantern
最後に、オフライン限定でのミニゲーム
ワークショップの最後には、参加者のためのミニゲームを開いていただきました。
ゲームの内容は、2分間で3大クラウドのサービスのアイコンを当てるというもので、各自の携帯からアクセスして答えていきます。
1位のスコアの方はなんと、Splunk Tシャツが景品としてもらえるということで、いざ、はりきってチャレンジ...!
多分20問だったかな?と思うのですが、想像していた以上に即答する必要があり、私は10問くらいでタイムアップになってしまいました。。
1位の方はなんと、80秒で14問正解という驚異の速さで圧巻。
(意外と普段触ってないCloudだと全くわからないんですよね。。。
とにかく、みなさん盛り上がって楽しい雰囲気の中ワークショップは終了いたしました。
まとめ
以上、Splunkさん開催のGoogle Cloudデータ取り込みに関する特別ワークショップのレポートをさせていただきました。
今回、Google Cloudの知識を含めて多くのことを学ばせていただきました。
この場を借りて、講師のTravis Kaneさん、Splunkスタッフの皆様にお礼申し上げます。
次回、AWSセキュリティワークショップもお楽しみにしております!ありがとうございました!!