Cloud Compute のコンテキスト ログを収集する
このドキュメントでは、 Google Cloud Compute コンテキスト ログを Cloud Storage を使用して Google Security Operations にエクスポートして取り込む方法について説明します。パーサーは、ログから JSON 形式の情報を抽出します。抽出されたデータを正規化して Google SecOps UDM 形式に構造化します。ハードウェア仕様、ネットワーク構成、セキュリティ設定、他のエンティティとの関係など、仮想マシンの詳細に重点を置いています。
始める前に
- Google SecOps インスタンスがあることを確認します。
- 環境で Compute が設定され、アクティブになっていることを確認します。 Google Cloud
- Google Cloud への特権アクセス権と適切な権限があることを確認します。
Cloud Storage バケットを作成する
- Google Cloud コンソールにログインします。
[Cloud Storage バケット] のページに移動します。
[作成] をクリックします。
[バケットの作成] ページでユーザーのバケット情報を入力します。以下のステップでは、操作を完了した後に [続行] をクリックして、次のステップに進みます。
[始める] セクションで、次の操作を行います。
- バケット名の要件を満たす一意の名前を入力します(compute-context-logs など)。
階層名前空間を有効にするには、展開矢印をクリックして [Optimize for file oriented and data-intensive workloads] セクションを開き、[このバケットで階層的な名前空間を有効にする] を選択します。
バケットラベルを追加するには、展開矢印をクリックして [ラベル] セクションを開きます。
[ラベルを追加] をクリックし、ラベルのキーと値を指定します。
[データの保存場所の選択] セクションで、次の操作を行います。
- ロケーション タイプを選択してください。
ロケーション タイプのメニューを使用して、バケット内のオブジェクト データが永続的に保存されるロケーションを選択します。
クロスバケット レプリケーションを設定するには、[クロスバケット レプリケーションを設定する] セクションを開きます。
[データのストレージ クラスを選択する] セクションで、バケットのデフォルトのストレージ クラスを選択します。あるいは、Autoclass を選択して、バケットデータのストレージ クラスを自動的に管理します。
[オブジェクトへのアクセスを制御する方法を選択する] セクションで、[なし] を選択して公開アクセスの防止を適用し、バケットのオブジェクトの [アクセス制御モデル] を選択します。
[オブジェクト データを保護する方法を選択する] セクションで、次の操作を行います。
- [データ保護] で、バケットに設定するオプションを選択します。
- オブジェクト データの暗号化方法を選択するには、[データ暗号化] というラベルの付いた展開矢印をクリックし、データの暗号化方法を選択します。
[作成] をクリックします。
Google Cloud コンピューティング ログのエクスポートを構成する
- Google Cloud コンソールにログインします。
- [ロギング] > [ログルーター] に移動します。
- [シンクを作成] をクリックします。
次の構成パラメータを指定します。
- シンク名: わかりやすい名前を入力します(例:
Compute-Context-Sink
)。 - シンク デスティネーション: [Cloud Storage Storage] を選択し、バケットの URI(
gs://compute-context-logs
など)を入力します。 ログフィルタ:
logName="*compute*" resource.type="gce_instance"
- シンク名: わかりやすい名前を入力します(例:
[作成] をクリックします。
Cloud Storage の権限を構成する
- [IAM と管理] > [IAM] に移動します。
- Cloud Logging サービス アカウントを見つけます。
- バケットに対する roles/storage.admin を付与します。
Google Cloud コンピューティング コンテキスト ログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [新しく追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Google Cloud Compute Context Logs)。
- [Source type] として [Google Cloud Storage] を選択します。
- [Log type] で [GCP Compute Context] を選択します。
- [Chronicle Service Account] フィールドの横にある [Get Service Account] をクリックします。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- ストレージ バケット URI: Cloud Storage バケットの URL(
gs://compute-context-logs
など)。 - URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
Source deletion options: 必要に応じて削除オプションを選択します。
Asset namespace: アセットの名前空間。
Ingestion labels: このフィードのイベントに適用されるラベル。
- ストレージ バケット URI: Cloud Storage バケットの URL(
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
祖先 | event.idm.entity.entity.asset.attribute.labels.value | ancestors 配列内の各祖先値は、キー ancestors を持つ個別のラベルにマッピングされます。 |
assetType | event.idm.entity.entity.asset.category | assetType フィールドから直接マッピングされます。 |
asset_type | event.idm.entity.entity.asset.category | asset_type フィールドから直接マッピングされます。 |
name | event.idm.entity.entity.resource.name | name フィールドから直接マッピングされます。 |
resource.data.cpuPlatform | event.idm.entity.entity.asset.hardware.cpu_platform | resource.data.cpuPlatform フィールドから直接マッピングされます。 |
resource.data.creationTimestamp | event.idm.entity.entity.asset.attribute.creation_time | resource.data.creationTimestamp フィールドからタイムスタンプ形式に解析されます。 |
resource.data.id | event.idm.entity.entity.asset.product_object_id | resource.data.id フィールドから直接マッピングされます。 |
resource.data.labels.business_function | event.idm.entity.entity.asset.attribute.labels.value | resource.data.labels.business_function フィールドから直接マッピングされ、キーは business_function に設定されます。 |
resource.data.labels.environment | event.idm.entity.entity.asset.attribute.labels.value | resource.data.labels.environment フィールドから直接マッピングされ、キーは environment に設定されます。 |
resource.data.labels.infra_location | event.idm.entity.entity.asset.attribute.labels.value | resource.data.labels.infra_location フィールドから直接マッピングされ、キーは infra_location に設定されます。 |
resource.data.labels.instance_group | event.idm.entity.user.group_identifiers | resource.data.labels.instance_group フィールドから直接マッピングされます。 |
resource.data.labels.os | event.idm.entity.entity.asset.platform_software.platform_version | resource.data.labels.os フィールドから直接マッピングされます。 |
resource.data.labels.primary_application | event.idm.entity.entity.asset.attribute.labels.value | resource.data.labels.primary_application フィールドから直接マッピングされ、キーは primary_application に設定されます。 |
resource.data.labels.project_code | event.idm.entity.entity.asset.attribute.labels.value | resource.data.labels.project_code フィールドから直接マッピングされ、キーは project_code に設定されます。 |
resource.data.lastStartTimestamp | event.idm.entity.entity.asset.last_boot_time | resource.data.lastStartTimestamp フィールドからタイムスタンプ形式に解析されます。 |
resource.data.machineType | event.idm.entity.entity.asset.hardware.model | マシンタイプは、正規表現を使用して resource.data.machineType フィールドから抽出されます。 |
resource.data.name | event.idm.entity.entity.asset.hostname | resource.data.name フィールドから直接マッピングされます。 |
resource.data.networkInterfaces.0.accessConfigs.0.natIP | event.idm.entity.entity.asset.nat_ip | 最初のネットワーク インターフェースの最初の NAT IP アドレスがマッピングされます。 |
resource.data.networkInterfaces.0.network | event.idm.entity.entity.asset.attribute.cloud.vpc.name | ネットワーク ID は、正規表現を使用して resource.data.networkInterfaces.0.network フィールドから抽出されます。 |
resource.data.networkInterfaces.0.networkIP | event.idm.entity.entity.asset.ip | 最初のネットワーク インターフェースの IP アドレスがマッピングされます。 |
resource.data.networkInterfaces.1.networkIP | event.idm.entity.entity.asset.ip | 2 番目のネットワーク インターフェースの IP アドレスがマッピングされます。 |
resource.data.selfLink | event.idm.entity.entity.url | resource.data.selfLink フィールドから直接マッピングされます。 |
resource.data.serviceAccounts.0.email | event.idm.entity.relations.entity.user.email_addresses | 最初のサービス アカウントのメールアドレスがマッピングされます。 |
resource.data.status | event.idm.entity.entity.asset.deployment_status | ステータスが RUNNING 、PROVISIONING 、STAGING 、STOPPING 、SUSPENDING 、SUSPENDED 、REPAIRING 、TERMINATED のいずれかの場合、ACTIVE にマッピングされます。それ以外の場合は、DEPLOYMENT_STATUS_UNSPECIFIED にマッピングされます。 |
event.idm.entity.entity.asset.attribute.cloud.availability_zone | アベイラビリティ ゾーンは、region フィールドと zone_suffix フィールドを組み合わせて作成されます。 | |
event.idm.entity.entity.asset.attribute.cloud.environment | GOOGLE_CLOUD_PLATFORM に設定します。 |
|
event.idm.entity.entity.asset.attribute.cloud.project.name | プロジェクト ID は、正規表現を使用して name フィールドから抽出されます。 | |
event.idm.entity.entity.asset.attribute.cloud.project.resource_type | CLOUD_PROJECT に設定します。 |
|
event.idm.entity.entity.asset.attribute.cloud.vpc.resource_type | VPC_NETWORK に設定します。 |
|
event.idm.entity.entity.resource.resource_type | asset_type または assetType に Instance が含まれている場合は、VIRTUAL_MACHINE に設定します。 |
|
event.idm.entity.entity.resource.type | asset_type または assetType に Instance が含まれている場合は、VIRTUAL_MACHINE に設定します。 |
|
event.idm.entity.metadata.collected_timestamp | Logstash イベントのタイムスタンプに設定します。 | |
event.idm.entity.metadata.entity_type | ASSET に設定します。 |
|
event.idm.entity.metadata.product_name | GCP Compute Context に設定します。 |
|
event.idm.entity.metadata.vendor_name | Google Cloud Platform に設定します。 |
|
event.idm.entity.relations.entity.user.attribute.cloud.environment | GOOGLE_CLOUD_PLATFORM に設定します。 |
|
event.idm.entity.relations.entity_type | USER に設定します。 |
|
event.idm.entity.relations.relationship | ADMINISTERS に設定します。 |
変更点
2024-01-27
バグの修正:
name
、resource.data.id
、resource.data.name
、region
、resource.data.selfLink
、project_id
、asset_network_id
、{region}-%{zone_suffix}
のマッピングを個別のミューテーション ブロックに分離しました。
2024-01-05
機能強化:
event.idm.entity.entity.namespace
のマッピングを削除しました。resource.data.networkInterfaces
のすべてのnetworkIP
を解析するサポートを追加しました。
2022-07-29
resource.data.lastStartTimestamp
の条件付きチェックを追加し、entity.asset.last_boot_time
にマッピングしました。resource.data.networkInterfaces.0.networkIP
の条件付きチェックを追加し、entity.asset.ip
にマッピングしました。
2022-04-04
- ベンダー名の更新。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。