Cloud Identity デバイス ユーザーログを収集する
このドキュメントでは、Cloud Storage を使用して Cloud Identity デバイスユーザーのログを Google Security Operations にエクスポートする方法について説明します。パーサーは、まず JSON 形式の Cloud Identity Device Users
ログからデータを抽出し、タイムスタンプを標準化された形式に変換します。次に、未加工のログデータから特定のフィールドを、ユーザー エンティティ、アセットとの関係、管理状態やパスワード状態などの追加のユーザー属性の統合データモデル(UDM)の対応するフィールドにマッピングします。
始める前に
次の前提条件を満たしていることを確認してください。
- Google Cloud プロジェクトで Google Cloud Identity が有効になっている。
- Google SecOps インスタンス。
- Google Cloud Identity と Cloud Logging への特権アクセス。
Cloud Storage バケットを作成する
- Google Cloud コンソールにログインします。
[Cloud Storage バケット] のページに移動します。
[作成] をクリックします。
[バケットの作成] ページでユーザーのバケット情報を入力します。以下のステップでは、操作を完了した後に [続行] をクリックして、次のステップに進みます。
[始める] セクションで、次の操作を行います。
- バケット名の要件を満たす一意の名前を入力します(例: gcp-cloudidentity-users-logs)。
階層名前空間を有効にするには、展開矢印をクリックして [Optimize for file oriented and data-intensive workloads] セクションを開き、[このバケットで階層的な名前空間を有効にする] を選択します。
バケットラベルを追加するには、展開矢印をクリックして [ラベル] セクションを開きます。
[ラベルを追加] をクリックし、ラベルのキーと値を指定します。
[データの保存場所の選択] セクションで、次の操作を行います。
- ロケーション タイプを選択してください。
ロケーション タイプのメニューを使用して、バケット内のオブジェクト データが永続的に保存されるロケーションを選択します。
クロスバケット レプリケーションを設定するには、[クロスバケット レプリケーションを設定する] セクションを開きます。
[データのストレージ クラスを選択する] セクションで、バケットのデフォルトのストレージ クラスを選択します。あるいは、Autoclass を選択して、バケットデータのストレージ クラスを自動的に管理します。
[オブジェクトへのアクセスを制御する方法を選択する] セクションで、[公開アクセスの防止を適用する] をオフにして、バケットのオブジェクトの [アクセス制御] モデルを選択します。
[オブジェクト データを保護する方法を選択する] セクションで、次の操作を行います。
- [データ保護] で、バケットに設定するオプションを選択します。
- オブジェクト データの暗号化方法を選択するには、[データ暗号化] というラベルの付いた展開矢印をクリックし、データ暗号化方法を選択します。
[作成] をクリックします。
Cloud Identity デバイスユーザーのログのエクスポートを構成する
- Google Cloud コンソールにログインします。
- [ロギング>ログルーター] に移動します。
- [シンクを作成] をクリックします。
次の構成パラメータを指定します。
- シンク名: わかりやすい名前を入力します(例:
Cloudidentity-Users-Sink
)。 - シンクの宛先: [Cloud Storage] を選択し、バケットの URI(例:
gs://gcp-cloudidentity-users-logs
)を入力します。 ログフィルタ:
logName="projects/<your-project-id>/logs/cloudaudit.googleapis.com%2Factivity" resource.type="cloud_identity_user"
エクスポート オプションを設定: すべてのログエントリを含めます。
- シンク名: わかりやすい名前を入力します(例:
[作成] をクリックします。
Cloud Storage の権限を構成する
- [IAM と管理] > [IAM] に移動します。
- Cloud Logging サービス アカウントを見つけます。
- バケットに対する roles/storage.admin を付与します。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
フィードを構成する手順は次のとおりです。
- [SIEM Settings] > [Feeds] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Cloud Identity DU ログ)。
- [ソースタイプ] として [サードパーティ API] を選択します。
- [ログタイプ] として [GCP Cloud Identity Device Users] を選択します。
- [次へ] をクリックします。
- 次の入力パラメータの値を指定します。
- OAuth JWT エンドポイント: OAuth JSON ウェブトークン(JWT)を取得するエンドポイント。
- JWT クレームの発行元: 通常はクライアント ID。
- JWT クレームのサブジェクト: 通常はメールアドレス。
- JWT クレームのオーディエンス: JWT クレームのオーディエンス。
- RSA 秘密鍵: PEM 形式で入力します。
- [次へ] をクリックします。
- [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- ストレージ バケット URI: Cloud Storage バケットの URL(例:
gs://gcp-cloudidentity-users-logs
)。 - URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
Source deletion options: 必要に応じて削除オプションを選択します。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- ソースタイプ: Google SecOps にログを収集するために使用される方法。
- アセットの名前空間: フィードに関連付けられた名前空間。
- Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
collection_time.nanos | timestamp.nanos | ログフィールドから直接マッピングされます。イベントのタイムスタンプをナノ秒単位で表します。 |
collection_time.seconds | timestamp.seconds | ログフィールドから直接マッピングされます。イベントのタイムスタンプを秒単位で表します。 |
createTime | entity.metadata.creation_timestamp | date フィルタで解析された後、ログフィールドから直接マッピングされます。ユーザーの作成タイムスタンプを表します。 |
managementState | entity.additional.fields.value.string_value | ログフィールドから直接マッピングされます。ユーザーの管理状態を表します。 |
name | entity.entity.resource.name | ログフィールドから直接マッピングされます。デバイス ユーザーの完全なリソース名を表します。 |
passwordState | entity.additional.fields.value.string_value | ログフィールドから直接マッピングされます。ユーザーのパスワードの状態を表します。このフィールドは、passwordState フィールドが未加工ログに存在する場合にのみマッピングされます。 |
userEmail | entity.entity.user.email_addresses | ログフィールドから直接マッピングされます。ユーザーのメールアドレスを表します。 |
entity.additional.fields.key | パーサー内の定数値 Management State に設定します。このフィールドは、managementState 値のコンテキストを提供するために使用されます。 |
|
entity.additional.fields.key | パーサー内の定数値 Password State に設定します。このフィールドは、passwordState 値にコンテキストを提供するために使用され、passwordState が未加工ログに存在する場合にのみ存在します。 |
|
entity.entity.user.product_object_id | grok フィルタを使用して name フィールドから抽出され、deviceuser_id 部分がキャプチャされます。デバイス ユーザーの一意の識別子を表します。 |
|
entity.metadata.collected_timestamp.nanos | コピー元: collection_time.nanos 。ログが収集されたときのタイムスタンプを表します。 |
|
entity.metadata.collected_timestamp.seconds | コピー元: collection_time.seconds 。ログが収集されたときのタイムスタンプを表します。 |
|
entity.metadata.entity_type | パーサー内の定数値 USER に設定します。 |
|
entity.metadata.product_name | パーサー内の定数値 GCP Cloud Identity Device Users に設定します。 |
|
entity.metadata.vendor_name | パーサー内の定数値 Google Cloud Platform に設定します。 |
|
relations.entity.asset.product_object_id | grok フィルタを使用して name フィールドから抽出され、device_id 部分がキャプチャされます。デバイスの一意の識別子を表します。 |
|
relations.entity_type | パーサー内の定数値 ASSET に設定します。 |
|
relations.relationship | パーサー内の定数値 MEMBER に設定します。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。