Simple Log Service (SLS) を設定してログを保存できるのは、トラフィック分析が有効になっているリージョンと Virtual Private Cloud (VPC) のみです。ログストレージを有効にすると、トラフィック分析が自動的に有効になります。トラフィック分析を無効にすると、ログストレージはログデータを受信しません。詳細については、「ネットワークトラフィック分析の有効化または無効化」をご参照ください。
利用シーン
コンプライアンスおよびセキュリティポリシーでは、多くの場合、ネットワークログの保存と分析が求められます。プライベートゾーン名前解決ログは、ネットワーク内でのプライベートドメイン名の使用状況を記録し、ユーザーアクティビティの監査とセキュリティリスクの検出を可能にします。
プライベートゾーン名前解決ログ
プライベートゾーン名前解決ログは、Alibaba Cloud アカウント配下にあるすべての VPC からの DNS クエリと応答を記録します。各エントリは、リージョン、VPC ID、送信元および宛先 IP アドレス、クエリされたドメイン名、レコードタイプ、および応答をキャプチャします。クエリされるドメインには、PrivateZone の権威プライベートドメインと外部パブリックドメインの両方が含まれます。マルチアカウントおよびマルチリージョンのシナリオでは、Alibaba Cloud DNS と SLS は、ログ監査アプリケーションを通じて、ワンクリックでプライベート DNS のロギングを提供します。
クエリされるドメイン名は、次の 4 つのカテゴリに分類されます:
1. 組み込みの権威ゾーン
PrivateZone は、プライベートドメイン名を 1 つ以上の VPC 内の IP アドレスにマッピングします。これらのドメイン名を使用して、ECS インスタンス、SLB インスタンス、OSS バケットなどの Alibaba Cloud リソースにアクセスします。これらのドメインは、VPC 内でのみアクセス可能です。また、専用線や VPN を介して VPC をデータセンターに接続し、双方向のプライベートドメイン名名前解決を行うこともできます。
2. クラウドプロダクトインスタンスドメイン (Apsara Cloud DNS)
Apsara プラットフォームに組み込まれた基本的な DNS サービスで、すべての Alibaba Cloud プロダクトのインスタンスドメイン名を解決します。
3. 外部ドメインの外部 DNS への転送
外部 DNS は、通常、データセンターの内部 DNS です。転送管理機能は、VPC からの DNS クエリをこのシステムにルーティングし、Alibaba Cloud VPC 内の ECS インスタンスがデータセンター内のアプリケーションドメインを解決できるようにします。
4. 外部 DNS へのパブリックドメインの再帰
パブリック権威 DNS サーバーは、ドメインレジストリまたはドメイン指定業者で特定のパブリックドメイン (「example.com」など) の DNS レコードを管理します。自身が提供するドメイン名のみを解決し、他のすべてのクエリを拒否します。
プライベートゾーン名前解決ログのフィールド
1. リクエストログの例
|
パラメーター |
説明 |
例 |
|
dns_msg_flags |
DNS メッセージフラグ:
|
RD |
|
dns_msg_id |
DNS メッセージの一意の識別子。 |
30914 |
|
dst_addr |
宛先 IP アドレス。 |
100.100.2.136 |
|
dst_port |
宛先ポート。 |
53 |
|
ecs_hostname |
ECS ホスト名。 |
iZbp1b1mx9fhe34k***** |
|
ecs_id |
ECS インスタンス ID。 |
i-bp1b1mx9fhe34kh**** |
|
module_type |
ログモジュールタイプ。リクエストログの場合、有効な値は
|
GLOBAL |
|
query_name |
クエリされているドメイン名。 |
www.example.com. |
|
query_type |
リクエストされたレコードタイプ。 |
A |
|
region_id |
リージョン ID。 |
cn-shanghai |
|
src_addr |
送信元 IP アドレス。 |
192.168.0.1 |
|
src_port |
送信元ポート。 |
42071 |
|
transport |
トランスポートプロトコル。 |
UDP |
|
user_id |
Alibaba Cloud アカウント ID。 |
139749398683**** |
|
vpc_id |
VPC ID。 |
vpc-bp1eyy43516itw78**** |
|
edns |
DNS の拡張メカニズム (EDNS) に関する情報。このフィールドは、クエリログと応答ログの両方に表示されることがあります。 |
"flags: DO udp: 1408 CLIENT-SUBNET: 1.1.XX.XX/32/24" |
2. グローバル応答ログ
|
ログフィールド |
説明 |
例 |
|
answer_rrset |
回答リソースレコードセット。 |
JSON 配列: ["www.example.com. 600 A 192.168.1.1", "www.example.com 600 A 192.168.1.2"] |
|
authority_rrset |
権威リソースレコードセット。 |
JSON 配列: ["example.com. 600 SOA ns1.example.com. hostmaster.example.com. 2023010101 3600 1200 3600 360" ] |
|
additional_rrset |
追加リソースレコードセット。 |
JSON 配列: ["ns1.example.com. 600 A 100.100.2.136"] |
|
dns_msg_flags |
|
QR |
|
dns_msg_id |
DNS クエリの一意の ID。 |
30914 |
|
dst_addr |
宛先 IP アドレス。 |
192.168.0.1 |
|
dst_port |
宛先ポート。 |
42071 |
|
ecs_hostname |
ECS ホスト名。 |
iZbp1b1mx9fhe34k***** |
|
ecs_id |
ECS インスタンス ID。 |
i-bp1b1mx9fhe34kh**** |
|
module_type |
ログを生成したモジュールのタイプ。
|
GLOBAL |
|
query_name |
クエリされたドメイン名。 |
www.example.com. |
|
query_type |
クエリのレコードタイプ。A、AAAA、CNAME、TXT、MX など。 |
A |
|
rcode |
応答コード。
|
0 |
|
region_id |
リージョン ID。 |
cn-shanghai |
|
resolve_path |
このフィールドはグローバル応答ログにのみ表示されます。カンマ区切りの値は、権威高速ゾーン、権威標準ゾーン、キャッシュモジュール、転送モジュール、再帰モジュールの順にモジュールを表します。 1:クエリがモジュールを通過したことを示します。 0:クエリがモジュールをスキップしたことを示します。 多階層の CNAME 名前解決の場合、複数のモジュールが 1 の値を持つことがあります。 |
1,0,0,0,0 |
|
rt |
応答レイテンシー。
|
10 ms |
|
src_addr |
送信元 IP アドレス。 |
100.100.2.136 |
|
src_port |
送信元ポート。 |
53 |
|
transport |
トランスポートプロトコル。 |
UDP |
|
user_id |
Alibaba Cloud アカウント ID。 |
139749398683**** |
|
vpc_id |
VPC ID。 |
vpc-bp1eyy43516itw78**** |
|
edns |
DNS の拡張メカニズム (EDNS)。このフィールドは、クエリログまたは応答ログに表示されることがあります。 |
"flags: DO udp: 1408 CLIENT-SUBNET: 1.1.XX.XX/32/24" |
3. モジュール応答ログの例
|
ログフィールド |
説明 |
サンプルデータ |
|
answer_rrset |
回答リソースレコードセット。 |
JSON 配列: ["www.example.com. 600 A 192.168.1.1", "www.example.com 600 A 192.168.1.2", ] |
|
authority_rrset |
権威リソースレコードセット。 |
JSON 配列: ["example.com. 600 SOA ns1.example.com. hostmaster.example.com. 2023010101 3600 1200 3600 360" ] |
|
additional_rrset |
追加リソースレコードセット。 |
JSON 配列: ["ns1.example.com. 600 A 100.100.2.136"] |
|
dns_msg_id |
DNS メッセージ ID、DNS クエリの一意の識別子。 |
30914 |
|
dst_addr |
宛先 IP アドレス。 |
100.100.2.136 |
|
dst_port |
宛先ポート。 |
53 |
|
ecs_hostname |
ECS ホスト名。 |
iZbp1b1mx9fhe34k***** |
|
ecs_id |
ECS インスタンス ID。 |
i-bp1b1mx9fhe34kh**** |
|
module_type |
ログを生成したモジュール:
|
AUTH_FAST |
|
query_name |
クエリされたドメイン名。 |
www.example.com. |
|
query_type |
クエリタイプ。A、AAAA、CNAME、TXT、MX など。 |
A |
|
rcode |
応答コード:
|
0 |
|
region_id |
リージョン ID。 |
cn-shanghai |
|
rt |
応答レイテンシー:
|
1ms |
|
src_addr |
送信元 IP アドレス。 |
192.168.0.1 |
|
src_port |
送信元ポート。 |
42071 |
|
transport |
トランスポートプロトコル。 |
UDP |
|
user_id |
Alibaba Cloud アカウント ID。 |
139749398683**** |
|
vpc_id |
VPC インスタンス ID。 |
vpc-bp1eyy43516itw78**** |
|
edns |
DNS の拡張メカニズム (EDNS)。このフィールドは、クエリログまたは応答ログに表示されることがあります。 |
"flags: DO udp: 1408 CLIENT-SUBNET: 1.1.XX.XX/32/24" |
PrivateZone のログ監査
1. ログ監査
ログ監査サービスは、Log Service (SLS) プラットフォーム上のアプリケーションであり、マルチアカウント管理とさまざまな Alibaba Cloud プロダクトからのクロスリージョンログ収集で拡張されています。Resource Directory を使用して、複数のアカウントにわたるログを一元管理します。
2. プライベートゾーン監査の有効化
PrivateZone DNS ログ監査機能は、中国 (上海)、中国 (北京)、中国 (広州)、中国 (深セン)、中国 (杭州)、中国 (青島)、中国 (張家口)、シンガポール、中国 (香港)、および 中国 (深セン) 金融リージョンで利用できます。他のリージョンでこの機能をリクエストするには、チケットを送信してください。プロダクトチームがリクエストを評価します。
-
ログ監査アプリケーションコンソールにログインします。
-
[グローバル設定] ページで、PrivateZone のログ監査を有効にし、[中央プロジェクトリージョン] (例: 中国 (杭州)) を選択します。ログ収集を有効化します。
3. その他の機能
マルチアカウント設定
ActionTrail は、クロスアカウント収集を通じて、メンバーアカウントからの内部 DNS ログを単一の管理アカウントに統合します。2 つの構成がサポートされています:
-
Resource Directory を使用した管理モード
-
カスタム認証を使用した管理モード
Terraform 設定
Terraform は、コマンドラインインターフェイス (CLI) を使用して、バージョン管理された設定ファイルを介して Alibaba Cloud およびその他のサポートされているクラウド上のインフラストラクチャをデプロイおよび管理するオープンソースツールです。Terraform で ActionTrail ログ収集を構成するには、「Terraform を使用して ActionTrail を構成する」をご参照ください。
次の例は、Terraform を使用して PrivateZone ログ収集を構成する方法を示しています:
resource "alicloud_log_audit" "dns_example" {
display_name = "tf-audit-test-dns"
aliuid = "1480************" // 管理アカウント。
variable_map = {
"dns_intranet_enabled" = "true", // PrivateZone ログの収集を有効にします。
"dns_sync_enabled" = "true", // リージョンのログを中央プロジェクトに同期することを有効にします。
"dns_intranet_ttl" = "3", // リージョンのログを 3 日間保持します。
"dns_sync_ttl" = "185" // 集中ストレージのログを 185 日間保持します。
"dns_intranet_collection_policy" = "accept tag.env == \\\"test\\\"\\ndrop \\\"*\\\"" // タグキーが 'env' でタグ値が 'test' の VPC インスタンスに対してのみ PrivateZone ログ収集を有効にします。
}
multi_account = ["1039************"] // マルチアカウント設定。
}
収集ポリシー
PrivateZone ログ収集は VPC レベルの粒度をサポートしており、特定の VPC の DNS ログを収集できます。
ログ監査コンソールで収集ポリシーを使用してログをフィルターします。たとえば、タグキーが 'env' でタグ値が 'prod' の VPC インスタンスからのみプライベート DNS ログを収集します。
収集ポリシー設定ダイアログボックスでは、詳細編集モードとデフォルトの収集ポリシーを切り替えることができます。新しいポリシーを追加するには、アクション (keep、drop、または accept) を選択し、アカウント、リージョン、インスタンス ID、インスタンス名、またはタグなどの属性でフィルターします。既存のポリシーを編集または削除できます。たとえば、drop instance.id == "vpc-2zettfw..." は特定の VPC インスタンスからのログを破棄し、accept "*" はデフォルトの受け入れポリシーです。
ログ分析
以下は、一般的な PrivateZone ログクエリのシナリオです。カスタム SQL を記述したり、結果をダッシュボードに追加したり、クイッククエリとして保存したり、アラートを作成したりすることもできます。
1. DNS 名前解決結果のタイプ
指定された期間に、指定された VPC 内のドメイン名にわたる DNS リクエストのディストリビューション。
* and vpc_id: vpc-2ze9dducyc3t6p8aeksb3 |select count(*) as total_req, query_name group by query_name
クエリを実行した後、[チャート] タブの円グラフに、ドメイン名ごとのリクエストのディストリビューションが表示されます。
2. DNS 名前解決の応答時間
特定の VPC、ドメイン名、クエリタイプの DNS 名前解決の応答時間を分析します。
* and vpc_id: vpc-2ze9dducyc3t6p8aeksb3 and query_name: "metrichub-cn-beijing.aliyun.com." and query_type: A | select stddev(__time__) as RT, dns_msg_id GROUP by dns_msg_id
クエリは、RT と dns_msg_id の 2 つの列を持つテーブルに 100 件のレコードを返します。すべてのレコードの RT 値は 0.0 であり、各 dns_msg_id グループの時間の標準偏差が 0 であることを示します。
3. 名前解決の例外
Alibaba Cloud 上の ECS インスタンスがドメインをクエリする際に名前解決の問題が発生しました。お客様は、プライベートゾーン名前解決ログを有効にし、これらのログを SLS に保存して原因を分析します。SLS ログには、リクエストログ、グローバル応答ログ、モジュール応答ログの 3 種類が含まれます。
分析プロセス:
-
src_portとdns_msg_idパラメーターを使用して、単一の名前解決リクエストのログエントリを識別し、フィルターします。 -
次のフィールドが 3 つのログタイプを区別します:
-
rtフィールドが空の場合、ログはリクエストログです。 -
resolve_pathフィールドが空の場合、ログはモジュール応答ログです。 -
resolve_pathフィールドが空でない場合、ログはグローバル応答ログです。
-
-
エラー結果の例
前述のルールに基づくと、最初のエントリはリクエストログ、2 番目はモジュール応答ログ、3 番目はグローバル応答ログです。
3 つのログエントリすべての
dns_msg_idは59241です。最初のログでは、module_typeはGLOBALで、dns_msg_flagsはRDです。2 番目のログでは、module_typeはRECURSIONで、dns_msg_flagsは空です。3 番目のログでは、module_typeはGLOBALで、dns_msg_flagsはQR RDで、dst_addrは100.100.2.136です。-
クライアントが DNS 名前解決リクエストを開始し、再帰クエリを期待します。
-
リクエストは再帰モジュールに送信されますが、名前解決は失敗します。
-
100.100.2.136 のサーバーがクライアントにエラーを返します。
-
-
成功結果の例
成功した DNS イントラネットログクエリ結果では、典型的なキーフィールドと値には、
_source_がlog_dispatch、_topic_がdns_intranet_log、module_typeが GLOBAL または CACHE、query_typeが A、dst_addrが100.100.2.136、dst_portが53、transportが UDP、answer_rsetが CNAME 名前解決レコードを含み、node_idがcn-shanghaiであることなどが含まれます。-
クライアントが DNS 名前解決リクエストを開始し、再帰クエリを期待します。
-
リクエストは再帰モジュールに送信され、名前解決は成功します。
-
100.100.2.136 のサーバーがクライアントに名前解決結果を返します。
-