Google Cloud Identity コンテキスト ログを収集する
このドキュメントでは、Google Cloud Storage V2 を使用して Google Cloud Identity コンテキスト ログを Google Security Operations に取り込む方法について説明します。
Cloud Identity コンテキストは、デバイスのポスチャー、ユーザー属性、セキュリティ コンテキストの拡充に使用されるグループ メンバーシップなど、ID 認識アクセス決定のためのユーザーとデバイスの情報を提供します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Cloud Storage API が有効になっている GCP プロジェクト
- GCS バケットを作成および管理する権限
- GCS バケットの IAM ポリシーを管理する権限
- ユーザーとデバイスを含む Google Workspace または Cloud Identity 環境
- GCP プロジェクトでロギング シンクを作成するための IAM 権限
- ロギング管理者ロール(
roles/logging.admin)または同等の権限
Google Cloud Storage バケットを作成する
Google Cloud コンソールを使用する
- Google Cloud コンソールに移動します。
- プロジェクトを選択するか、新しいプロジェクトを作成します。
- ナビゲーション メニューで、[Cloud Storage > バケット] に移動します。
- [バケットを作成] をクリックします。
次の構成情報を提供してください。
設定 値 バケットに名前を付ける グローバルに一意の名前を入力します(例: cloud-identity-context-logs)。ロケーション タイプ ニーズに応じて選択します(リージョン、デュアルリージョン、マルチリージョン)。 ロケーション 場所を選択します(例: us-central1)。ストレージ クラス Standard(頻繁にアクセスされるログにおすすめ) アクセス制御 均一(推奨) 保護ツール 省略可: オブジェクトのバージョニングまたは保持ポリシーを有効にする [作成] をクリックします。
gcloud コマンドライン ツールの使用
または、
gcloudコマンドを使用してバケットを作成します。gcloud storage buckets create gs://cloud-identity-context-logs \ --location=us-central1 \ --default-storage-class=STANDARD- 置き換え:
cloud-identity-context-logsは、バケット名(グローバルに一意)に置き換えます。 us-central1は、目的のリージョン(us-central1、europe-west1など)に置き換えます。
- 置き換え:
Cloud Identity コンテキスト ログを GCS にエクスポートする
Cloud Identity コンテキスト ログは Cloud Logging に収集されます。GCS にエクスポートするには、Cloud Logging シンクを作成します。
- Google Cloud コンソールに移動します。
- プロジェクトを選択します。
- [ロギング>ログルーター] に移動します。
- [シンクを作成] をクリックします。
次の詳細情報を入力します。
- シンク名:
cloud-identity-context-sink - シンクの説明: 省略可能な説明
- [次へ] をクリックします。
- シンク名:
[シンクサービスの選択] セクションで、次の操作を行います。
- シンクサービスとして [Cloud Storage バケット] を選択します。
- 前に作成したバケットを選択します。
- [次へ] をクリックします。
[シンクに含めるログの選択] セクションで、次のフィルタを使用します。
resource.type="audited_resource" protoPayload.serviceName="cloudidentity.googleapis.com"[次へ] をクリックします。
シンクの構成を確認し、[シンクを作成] をクリックします。
確認メッセージに表示されたサービス アカウント(例:
service-PROJECT_NUMBER@gcp-sa-logging.iam.gserviceaccount.com)をコピーします。[Cloud Storage] > [バケット] に移動します。
バケットを選択します。
[権限] タブに移動します。
[アクセス権を付与] をクリックします。
ステップ 9 でコピーしたサービス アカウントのメールアドレスを貼り付けます。
Storage オブジェクト作成者ロールを割り当てます。
[保存] をクリックします。
Google SecOps サービス アカウントを取得する
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- [ソースタイプ] として [Google Cloud Storage V2] を選択します。
- [サービス アカウントを取得する] をクリックします。
一意のサービス アカウントのメールアドレスが表示されます(例:)。
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comこのメールアドレスをコピーします。次のステップでこれを使用します。
Google SecOps サービス アカウントに IAM 権限を付与する
Google Cloud コンソールを使用する
- [Cloud Storage] > [バケット] に移動します。
- バケット名をクリックします。
- [権限] タブに移動します。
- [アクセス権を付与] をクリックします。
- 次の構成の詳細を入力します。
- プリンシパルを追加: Google SecOps サービス アカウントのメールアドレスを貼り付けます。
- ロールを割り当てる: [Storage オブジェクト閲覧者] を選択します。
- [保存] をクリックします。
gcloud コマンドライン ツールの使用
次のコマンドを使用します。
gcloud storage buckets add-iam-policy-binding gs://cloud-identity-context-logs \ --member="serviceAccount:<SECOPS_SERVICE_ACCOUNT_EMAIL>" \ --role="roles/storage.objectViewer"次のように置き換えます。
cloud-identity-context-logs: バケット名。<SECOPS_SERVICE_ACCOUNT_EMAIL>: Google SecOps サービス アカウントのメールアドレス。
Cloud Identity コンテキスト ログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Cloud Identity Context Logs)。 - [ソースタイプ] として [Google Cloud Storage V2] を選択します。
- [ログタイプ] として [Google Cloud Identity Context] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
ストレージ バケット URI: GCS バケット URI を入力します。
gs://cloud-identity-context-logs/Source deletion option: 必要に応じて削除オプションを選択します。
- ファイルを削除しない: 転送後にファイルを削除しません。
- 転送されたファイルと空のディレクトリを削除する: 転送が完了した後にファイルと空のディレクトリを削除します。
ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 です。
アセットの名前空間: アセットの名前空間。
Ingestion labels: このフィードのすべてのイベントに適用されるラベル。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
Google Security Operations フィードの詳細については、Google Security Operations フィードのドキュメントをご覧ください。各フィードタイプの要件については、タイプ別のフィード構成をご覧ください。
フィードの作成時に問題が発生した場合は、Google Security Operations サポートにお問い合わせください。
フィールド マッピング リファレンス
Cloud Identity コンテキスト パーサーは、ユーザー属性、メールアドレス、グループ メンバーシップ、組織部門のパス、デバイスのポスチャー データなど、Google Cloud Identity からユーザーとデバイスの ID 情報を抽出します。これらのフィールドは、エンティティ タイプ USER の UDM entity モデルにマッピングされます。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | 論理 |
|---|---|---|
product_object_id |
entity.asset.product_object_id |
直接マッピングされます。 |
data.protoPayload.requestMetadata.callerIp |
entity.ip |
統合済み |
authorizationInfodata_granted_label |
entity.labels |
統合済み |
authorizationInfodata_permission_label |
entity.labels |
統合済み |
authorizationInfodata_resource_label |
entity.labels |
統合済み |
data_logname_label |
entity.labels |
統合済み |
field_ |
entity.labels |
統合済み |
referencedTables_datasetId_label |
entity.labels |
統合済み |
referencedTables_projectId_label |
entity.labels |
統合済み |
referencedTables_tableId_label |
entity.labels |
統合済み |
referencedViews_datasetId_label |
entity.labels |
統合済み |
referencedViews_projectId_label |
entity.labels |
統合済み |
referencedViews_tableId_label |
entity.labels |
統合済み |
value |
entity.location.country_or_region |
直接マッピングされます。 |
data.protoPayload.resourceName |
entity.resource.name |
直接マッピングされます。 |
company_name |
entity.user.company_name |
名前変更/マッピング済み |
depart |
entity.user.department |
統合済み |
organisation |
entity.user.department |
統合済み |
alias |
entity.user.email_addresses |
統合済み |
data.protoPayload.authenticationInfo.principalEmail |
entity.user.email_addresses |
統合済み |
email |
entity.user.email_addresses |
統合済み |
emails |
entity.user.email_addresses |
統合済み |
primaryEmail |
entity.user.email_addresses |
統合済み |
employeeId |
entity.user.employee_id |
直接マッピングされます。 |
employee_id |
entity.user.employee_id |
直接マッピングされます。 |
ext.value |
entity.user.employee_id |
直接マッピングされます。 |
first_name |
entity.user.first_name |
直接マッピングされます。 |
givenName |
entity.user.first_name |
直接マッピングされます。 |
name.givenName |
entity.user.first_name |
直接マッピングされます。 |
orgUnitPath |
entity.user.group_identifiers |
統合済み |
familyName |
entity.user.last_name |
直接マッピングされます。 |
last_name |
entity.user.last_name |
直接マッピングされます。 |
name.familyName |
entity.user.last_name |
直接マッピングされます。 |
office_address.country_or_region |
entity.user.office_address.country_or_region |
直接マッピングされます。 |
office_address.state |
entity.user.office_address.state |
直接マッピングされます。 |
number |
entity.user.phone_numbers |
統合済み |
data.insertId |
entity.user.product_object_id |
直接マッピングされます。 |
id |
entity.user.product_object_id |
直接マッピングされます。 |
title |
entity.user.title |
直接マッピングされます。 |
familyName |
entity.user.user_display_name |
直接マッピングされます。 |
givenName |
entity.user.user_display_name |
直接マッピングされます。 |
name.fullName |
entity.user.user_display_name |
直接マッピングされます。 |
user_display_name |
entity.user.user_display_name |
直接マッピングされます。 |
data.insertId |
entity.user.userid |
直接マッピングされます。 |
userid |
entity.user.userid |
直接マッピングされます。 |
windows_sid |
entity.user.windows_sid |
直接マッピングされます。 |
value |
metadata.event_timestamp |
ISO8601 として解析されました |
| なし | metadata.description |
定数: From BigQuery |
| なし | metadata.entity_type |
定数: USER |
| なし | metadata.product_entity_id |
定数: unknown |
| なし | metadata.product_name |
定数: Cloud Identity |
| なし | metadata.vendor_name |
定数: Google |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。