AWS Route 53 のログを収集する
このドキュメントでは、AWS Route 53 DNS ログを S3 バケットに保存し、S3 から Google Security Operations にログを取り込むように AWS CloudTrail を構成する方法について説明します。Amazon Route 53 は、DNS クエリのロギングと、ヘルスチェックを使用したリソースのモニタリング機能を提供します。Route 53 は、Route 53 でユーザー、ロール、AWS サービスによって実行されたアクションの記録を提供するサービスである AWS CloudTrail と統合されています。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- AWS への特権アクセス
AWS CloudTrail と Route 53 を構成する方法
- AWS コンソールにログインします。
- Cloudtrail を検索します。
- トレイルがまだない場合は、[トレイルを作成] をクリックします。
- [Trail name] を指定します。
- [新しい S3 バケットを作成する] を選択します(既存の S3 バケットを使用することもできます)。
- [AWS KMS Alias] の名前を指定するか、既存の [AWS KMS Key] を選択します。
- その他の設定はデフォルトのままにして、[次へ] をクリックします。
- [イベントタイプ] を選択し、[管理イベント] が選択されていることを確認します(これらは Route 53 API 呼び出しを含むイベントです)。
- [次へ] をクリックします。
- [Review and create] で設定を確認します。
- [トレイルを作成] をクリックします。
- AWS コンソールで「S3」を検索します。
- 新しく作成したログバケットをクリックし、[AWSLogs] フォルダを選択します。
- [Copy S3 URI] をクリックして保存します。
AWS IAM ユーザーを構成する
- AWS コンソールで [IAM] を検索します。
- [ユーザー] をクリックします。
- [ユーザーを追加] をクリックします。
- ユーザーの名前を指定します(例: chronicle-feed-user)。
- AWS 認証情報タイプとして [アクセスキー - プログラムによるアクセス] を選択します。
- [Next: Permissions] をクリックします。
- [既存のポリシーを直接アタッチする] を選択します。
- [AmazonS3ReadOnlyAccess] または [AmazonS3FullAccess] を選択します。
- [Next: Tags] をクリックします。
- 省略可: 必要に応じてタグを追加します。
- [次へ: 確認] をクリックします。
- 構成を確認し、[ユーザーを作成] をクリックします。
- 作成したユーザーのアクセスキー ID とシークレット アクセスキーをコピーします。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
このプロダクト ファミリー内で異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。
1 つのフィードを設定する手順は次のとおりです。
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで、[単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: AWS Route 53 Logs)。
- [ソースタイプ] として [Amazon S3] を選択します。
- [ログタイプ] として [AWS Route 53] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- リージョン: Amazon S3 バケットが配置されているリージョン。
- S3 URI: バケット URI。
s3:/BUCKET_NAME
BUCKET_NAME
は、実際の S3 バケットの名前に置き換えます。
- URI is a: [サブディレクトリを含むディレクトリ] を選択します。
- Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
アクセスキー ID: S3 バケットから読み取る権限を持つユーザーのアクセスキー。
シークレット アクセスキー: S3 バケットから読み取る権限を持つユーザーのシークレット キー。
アセットの名前空間: アセットの名前空間。
Ingestion labels: このフィードのイベントに適用されるラベル。
[次へ] をクリックします。
[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_id | read_only_udm.principal.resource.product_object_id | クエリに関連付けられている AWS アカウント ID。 |
firewall_domain_list_id | read_only_udm.security_result.rule_labels.value | クエリ対象のドメインが属するドメインリストの ID。 |
firewall_rule_action | read_only_udm.security_result.action | クエリに一致したファイアウォール ルールによって実行されたアクション。アクションが認識されない場合、有効な値は「ALLOW」、「BLOCK」、「UNKNOWN_ACTION」です。 |
firewall_rule_group_id | read_only_udm.security_result.rule_id | クエリに一致したファイアウォール ルール グループの ID。 |
logEvents{}.id | read_only_udm.principal.resource.product_object_id | ログイベントの一意の ID。「account_id」が存在しない場合のフォールバックとして使用されます。 |
logEvents{}.message | このフィールドは、その形式に基づいて他の UDM フィールドに解析されます。 | |
logEvents{}.timestamp | read_only_udm.metadata.event_timestamp.seconds | DNS クエリがログに記録された時刻。 |
messageType | このフィールドは、ログメッセージの構造を決定するために使用されます。 | |
owner | read_only_udm.principal.user.userid | ログの所有者の AWS アカウント ID。 |
query_class | read_only_udm.network.dns.questions.class | DNS クエリのクラス。 |
query_name | read_only_udm.network.dns.questions.name | クエリされたドメイン名。 |
query_timestamp | read_only_udm.metadata.event_timestamp.seconds | DNS クエリが実行された時刻。 |
query_type | read_only_udm.metadata.product_event_type | DNS クエリのタイプ。 |
rcode | read_only_udm.metadata.description | DNS クエリのレスポンス コード。 |
region | read_only_udm.principal.location.name | クエリの送信元の AWS リージョン。 |
srcaddr | read_only_udm.principal.ip | DNS クエリを行ったクライアントの IP アドレス。 |
srcids.instance | read_only_udm.principal.hostname | DNS クエリを行ったクライアントのインスタンス ID。 |
srcids.resolver_endpoint | read_only_udm.security_result.rule_labels.value | クエリを処理したリゾルバのエンドポイント ID。 |
srcids.resolver_network_interface | read_only_udm.security_result.rule_labels.value | クエリを処理したリゾルバのネットワーク インターフェース ID。 |
srcport | read_only_udm.principal.port | DNS クエリを行ったクライアントのポート番号。 |
transport | read_only_udm.network.ip_protocol | DNS クエリに使用されるトランスポート プロトコル。 |
version | read_only_udm.metadata.product_version | Route 53 Resolver クエリログの形式のバージョン。 |
なし | read_only_udm.metadata.event_type | 「NETWORK_DNS」にハードコードされています。 |
なし | read_only_udm.metadata.product_name | 「AWS Route 53」にハードコードされています。 |
なし | read_only_udm.metadata.vendor_name | 「AMAZON」にハードコードされています。 |
なし | read_only_udm.principal.cloud.environment | 「AMAZON_WEB_SERVICES」にハードコードされています。 |
なし | read_only_udm.network.application_protocol | 「DNS」にハードコードされています。 |
なし | read_only_udm.network.dns.response_code | ルックアップ テーブルを使用して「rcode」フィールドからマッピングされます。 |
なし | read_only_udm.network.dns.questions.type | ルックアップ テーブルを使用して「query_type」フィールドからマッピングされます。 |
なし | read_only_udm.metadata.product_deployment_id | Grok パターンを使用して logevent.message_data フィールドから抽出されます。 |
なし | read_only_udm.network.dns.authority.name | Grok パターンを使用して logevent.message_data フィールドから抽出されます。 |
なし | read_only_udm.security_result.rule_labels.key | 使用可能なフィールドに応じて、「firewall_domain_list_id」、「resolver_endpoint」、「resolver_network_interface」に設定します。 |
なし | read_only_udm.security_result.action_details | 「firewall_rule_action」が「ALLOW」または「BLOCK」でない場合は、その値に設定します。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。