AWS Aurora ログを収集する
このドキュメントでは、AWS Aurora ログを Google Security Operations に取り込む方法について説明します。AWS Aurora は、高いパフォーマンス、スケーラビリティ、可用性を提供するマネージド リレーショナル データベース サービスです。この統合では、ログを分析、モニタリング、脅威検出のために Google SecOps に転送するように AWS Aurora を構成します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- AWS への特権アクセス
- AWS Aurora データベース クラスタが設定され、実行されている
Amazon S3 バケットを構成する
- バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
- 後で使用するために、バケットの名前とリージョンを保存します。
- IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
- 作成した [ユーザー] を選択します。
- [セキュリティ認証情報] タブを選択します。
- [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
- [ユースケース] として [サードパーティ サービス] を選択します。
- [次へ] をクリックします。
- 省略可: 説明タグを追加します。
- [アクセスキーを作成] をクリックします。
- [CSV ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存し、後で使用できるようにします。
- [完了] をクリックします。
- [権限] タブを選択します。
- [権限ポリシー] セクションで、[権限を追加] をクリックします。
- [権限を追加] を選択します。
- [ポリシーを直接アタッチする] を選択します。
- AmazonS3FullAccess ポリシーと CloudWatchLogsFullAccess ポリシーを検索して選択します。
- [次へ] をクリックします。
- [権限を追加] をクリックします。
モニタリングの強化を構成する
- AWS Management Console にログインします。
- 検索バーに「RDS」と入力し、サービス リストから [RDS] を選択します。
- [RDS ダッシュボード] のナビゲーション ペインで、[データベース] を選択します。
- モニタリングする Aurora クラスタを選択します。
- [ログとモニタリング] セクションで、[変更] をクリックします。
- [モニタリング] セクションに移動し、[拡張モニタリング] を有効にします。
- モニタリング ロールを、CloudWatch Logs または S3 に公開する権限を持つ適切な IAM ロールに設定します。
- 変更を保存して、Aurora クラスタに適用します。
AWS Aurora 監査ログを構成する方法
- RDS ダッシュボードで、[データベース] を選択し、Aurora クラスタをクリックします。
- [ログとモニタリング] セクションで、[変更] をクリックします。
- [データベース オプション] セクションで、[監査ログを有効にする] が選択されていることを確認します。
- [宛先] で [S3] を選択し、ログが保存される S3 バケットを指定します。
- [変更を保存] をクリックして設定を適用します。
省略可: CloudWatch を使用した AWS Aurora ログの構成
モニタリング機能をさらに追加するには、Aurora ログをキャプチャするように CloudWatch Logs を構成します。
- [RDS ダッシュボード] で、Aurora クラスタを選択します。
- [ログとモニタリング] セクションで、CloudWatch Logs の統合が有効になっていることを確認します。
- CloudWatch Logs に移動し、Aurora ログを保存する新しいロググループを作成します。
- [ロググループ] 画面で、新しいロググループの名前を選択します。
- [アクション> Amazon S3 にデータをエクスポート] を選択します。
[Export data to Amazon S3] 画面の [Define data export] で、[From] と [To] を使用して、エクスポートするデータの期間を設定します。
[Choose S3 bucket] で、Amazon S3 バケットに関連付けられているアカウントを選択します。
[S3 バケット名] で、Amazon S3 バケットを選択します。
[S3 Bucket prefix] に、バケット ポリシーで指定したランダムに生成された文字列を入力します。
[エクスポート] を選択して、ログデータを Amazon S3 にエクスポートします。
Amazon S3 にエクスポートしたログデータのステータスを表示するには、[操作] > [Amazon S3 へのすべてのエクスポートを表示] を選択します。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
このプロダクト ファミリー内で異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。
1 つのフィードを設定する手順は次のとおりです。
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで、[単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: AWS Aurora Logs)。
- [ソースタイプ] として [Amazon S3] を選択します。
- [ログタイプ] として [AWS Aurora] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- リージョン: Amazon S3 バケットが配置されているリージョン。
- S3 URI: バケット URI。
s3://your-log-bucket-name/
your-log-bucket-name
は、実際の S3 バケットの名前に置き換えます。
- URI is a: バケット構造に応じて、[ディレクトリ] または [サブディレクトリを含むディレクトリ] を選択します。
Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
your-log-bucket-name
は、実際の S3 バケットの名前に置き換えます。
アクセスキー ID: S3 バケットから読み取る権限を持つユーザーのアクセスキー。
シークレット アクセスキー: S3 バケットから読み取る権限を持つユーザーのシークレット キー。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- リージョン: Amazon S3 バケットが配置されているリージョン。
- S3 URI: バケット URI。
s3://your-log-bucket-name/
your-log-bucket-name
は、実際の S3 バケットの名前に置き換えます。
- URI is a: バケット構造に応じて、[ディレクトリ] または [サブディレクトリを含むディレクトリ] を選択します。
- Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
- アクセスキー ID: S3 バケットから読み取る権限を持つユーザーのアクセスキー。
- シークレット アクセスキー: S3 バケットから読み取る権限を持つユーザーのシークレット キー。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- ソースタイプ: Google SecOps にログを収集するために使用される方法。
- Asset Namespace: フィードに関連付けられた名前空間。
- Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
account |
principal.group.product_object_id |
未加工ログの account フィールドから直接マッピングされます。 |
column1 |
timestamp_epoch |
未加工ログの column1 フィールドから直接マッピングされます。metadata.event_timestamp の派生に使用されます。 |
column10 |
場合によって異なる | ログ形式に応じて、principal.process.command_line 、object 、number のいずれかになります。 |
column11 |
ddl 、response 、または command_line2 |
ログ形式に応じて、principal.resource.resource_subtype (ddl)、security_result.outcomes.value (response)、または principal.process.command_line (command_line2)の一部になります。 |
column12 |
operation 、response 、または command_line3 |
ログ形式に応じて、sr.summary (オペレーション)、security_result.outcomes.value (レスポンス)、または principal.process.command_line (command_line3)の一部になります。 |
column13 |
database または response |
ログ形式に応じて、target.resource.name (データベース)または security_result.outcomes.value (レスポンス)になります。 |
column14 |
object |
ログ形式に応じて、principal.resource.product_object_id または target_data.resource.name に直接マッピングされます。 |
column15 |
command_line |
principal.process.command_line に直接マッピングされます。 |
column16 |
response |
security_result.outcomes.value に直接マッピングされます。 |
column2 |
timestamp または timestamp_ms |
未加工ログの column2 フィールドから直接マッピングされます。 |
column3 |
ip または hostname |
ログ形式に応じて、principal.ip または principal.resource.name になります。 |
column4 |
port または userid |
ログ形式に応じて、principal.port または principal.user.userid になります。 |
column5 |
userid または ip |
ログ形式に応じて、principal.user.userid または principal.ip になります。 |
column6 |
hostname または connection_id |
ログ形式に応じて、principal.resource.name または network.session_id になります。 |
column7 |
connection_id または query_id |
ログ形式に応じて、network.session_id または principal.process.pid になります。 |
column8 |
operation |
sr.summary または metadata.product_event_type に直接マッピングされます。 |
column9 |
query_id または database |
ログ形式に応じて、principal.process.pid または target_data.resource.name になります。 |
command_line |
principal.process.command_line |
抽出された command_line フィールドから直接マッピングされます。 |
connection_id |
network.session_id |
抽出された connection_id フィールドから直接マッピングされます。 |
database |
target.resource.name |
抽出された database フィールドから直接マッピングされます。パーサーの条件付きロジックを通じて、operation 、command_line 、has_principal_user 、has_principal_machine などの複数のフィールドから取得されます。RESOURCE_DELETION 、RESOURCE_CREATION 、RESOURCE_READ 、RESOURCE_WRITTEN 、USER_RESOURCE_ACCESS 、USER_UNCATEGORIZED 、または GENERIC_EVENT のいずれかです。「AWS_AURORA」にハードコードされています。column8 からマッピングされるか、パーサー ロジックから取得されます。「AURORA」にハードコードされます。「AMAZON」にハードコードされています。 |
has_principal_machine |
has_principal_machine |
principal.ip が存在する場合は「true」に設定し、それ以外の場合は「false」に初期化します。 |
has_principal_user |
has_principal_user |
principal.user.userid が存在する場合は「true」に設定し、それ以外の場合は「false」に初期化します。 |
hostname |
principal.resource.name |
抽出された hostname フィールドから直接マッピングされます。 |
ip |
principal.ip |
抽出された ip フィールドから直接マッピングされます。 |
logevent.id |
security_result.detection_fields.value |
target.logEvents.logEvents 内にネストされ、キー「id」でマッピングされます。 |
logevent.message |
security_result.detection_fields.value |
target.logEvents.logEvents 内にネストされ、キー「message」でマッピングされます。principal.ip 、time_unix 、operation 、user の抽出に使用されます。 |
logevent.timestamp |
security_result.detection_fields.value |
target.logEvents.logEvents 内にネストされ、キー「timestamp」でマッピングされます。 |
object |
target_data.resource.name または principal.resource.product_object_id |
抽出された object フィールドから直接マッピングされます。 |
operation |
sr.summary |
抽出された operation フィールドから直接マッピングされます。 |
port |
principal.port |
抽出された port フィールドから直接マッピングされます。 |
query_id |
principal.process.pid |
抽出された query_id フィールドから直接マッピングされます。 |
response |
security_result.outcomes.value |
抽出された response フィールドから直接マッピングされます。 |
service |
principal.application |
未加工ログの service フィールドから直接マッピングされます。 |
src_ip |
principal.ip |
ネストされた target.logEvents.logEvents 構造内の logevent.message から抽出されます。 |
target.logEvents.logGroup |
target.resource.attribute.labels.value |
キー「logGroup」でマッピングされます。 |
target.logEvents.logStream |
target.resource.attribute.labels.value |
キー「logStream」でマッピングされます。 |
target.logEvents.messageType |
target.resource.attribute.labels.value |
キー「messageType」でマッピングされます。 |
target.logEvents.owner |
target.resource.attribute.labels.value |
キー「owner」でマッピングされます。 |
timestamp_epoch |
metadata.event_timestamp |
date フィルタを使用して metadata.event_timestamp に変換されます。 |
user |
principal.user.userid |
ネストされた target.logEvents.logEvents 構造内の logevent.message から抽出されます。 |
userid |
principal.user.userid |
抽出された userid フィールドから直接マッピングされます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。