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 > Get Started
AWS Route 53 DNS フィードを設定する方法
- [Amazon Cloud Platform] パックをクリックします。
- [AWS Route 53 DNS] ログタイプを見つけます。
- 省略可: 直接ログ取り込みに Ingestion API を使用している場合は、ログタイプとして AWS Route 53 を指定します。
次のフィールドで値を指定します。
- ソースタイプ: Amazon SQS V2
- キュー名: 読み取る SQS キュー名
- S3 URI: バケット URI。
s3://your-log-bucket-name/
your-log-bucket-name
は、実際の S3 バケットの名前に置き換えます。
Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。
SQS キュー アクセスキー ID: 20 文字の英数字の文字列であるアカウント アクセスキー。
SQS キューのシークレット アクセスキー: 40 文字の英数字の文字列であるアカウント アクセスキー。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- アセットの名前空間: フィードに関連付けられた名前空間。
- 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 のプロフェッショナルから回答を得ることができます。