すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:Ztunnel の構成

最終更新日:Jun 26, 2026

Service Mesh (ASM) のアンビエントモードでは、Ztunnel コンポーネントは istio-system namespace の ztunnel-config ConfigMap からランタイム構成を読み込みます。この ConfigMap 内の config.yaml フィールドで、エグレスポリシー、L7 オブザーバビリティ、およびその他の構成の設定を定義します。Ztunnel はファイル監視メカニズムを使用して構成の変更を検出し、再起動を必要とせずに自動的に適用します。このドキュメントでは、ztunnel-config の YAML の例とフィールドの説明を示します。

構成

ztunnel-config ConfigMap の構造は次のとおりです:

apiVersion: v1
kind: ConfigMap
metadata:
  name: ztunnel-config
  namespace: istio-system
data:
  ztunnel-config.yaml: |
    l7Config:
      enabled: false

    egressPolicies: [ ]

フィールド

タイプ

必須

説明

l7Config

L7Config

いいえ

L7 オブザーバビリティの構成です。指定しない場合は、デフォルト値が使用されます。

egressPolicies

EgressPolicy[]

いいえ

クラスター外のサービスへのエグレストラフィックに対する、エグレスポリシールールのリストです。リストが空または指定されていない場合、デフォルトではすべてのエグレストラフィックが許可されます。

重要

EgressPolicy の構成は、クラスター外のサービスにのみ適用されます。Service および ServiceEntry リソースなど、クラスター内に登録されているサービスは影響を受けません。

構成例

例 1:L7 アクセスログの有効化

L7 アクセスログの生成を有効にします。Ztunnel は HTTP および TLS トラフィックを解析し、アクセスログを出力します。

l7Config:
  enabled: true

例 2:プライベート CIDR ブロックへのアクセスの拒否

この例では L7 オブザーバビリティを構成しません。エグレスポリシーを使用して、すべての namespace からプライベート CIDR ブロックへのアクセスを拒否します。

egressPolicies:
- matchCidrs:
  - 10.0.0.0/8
  - 172.16.0.0/12
  - 192.168.0.0/16
  policy: Deny

例 3:L7 アクセスログと多層エグレス制御の有効化

この例では、L7 アクセスログの生成とエグレスポリシーを有効にします。このポリシーは、特定の namespace に対してパススルーを許可し、特定のポートでのメタデータサービスへのアクセスを拒否し、さらにプライベート CIDR ブロックへのアクセスを拒否します。

l7Config:
  enabled: true
egressPolicies:
# egress-gateway namespace ではパススルーを許可し、フォールバックルールによってエグレスプロキシ自体がブロックされないようにします。
- namespaces:
  - egress-gateway
  policy: Passthrough

# ポート 80 と 443 でのクラウドプロバイダーのメタデータサービスへのアクセスを拒否します。
- matchCidrs:
  - 169.254.169.254/32
  - fd00:ec2::254/128
  matchPorts:
  - 80
  - 443
  policy: Deny

# プライベート CIDR ブロックへのアクセスを拒否します。
- matchCidrs:
  - 10.0.0.0/8
  - 172.16.0.0/12
  - 192.168.0.0/16
  - fc00::/7
  policy: Deny

フィールドの詳細

L7Config

フィールド

タイプ

必須

説明

enabled

bool

いいえ

L7 トラフィックのオブザーバビリティを有効にするかどうかを指定します。デフォルト値は false です。

説明
  • 現在、L7 オブザーバビリティがサポートしているのはアクセスログの生成のみです。リクエストレベルのメトリクス収集と分散トレーシングは、まだサポートされていません。

  • サポートされるプロトコルは HTTP と TLS です。

  • この機能により、約 5% のパフォーマンスオーバーヘッドが発生する可能性があります。有効化する前に、ビジネス要件を評価してください。

追加の HTTP フィールド

L7 オブザーバビリティを有効にすると、各 HTTP リクエスト/レスポンスのトランザクションごとに、個別のアクセスログエントリが生成されます。エントリには、基本フィールドに加えて次のフィールドが含まれます:

フィールド

説明

値の例

method

HTTP リクエストメソッド

GETPOSTPUTDELETE

path

リクエストパス

/api/v1/users

protocol

プロトコルバージョン

HTTP/1.0HTTP/1.1

host

リクエストホスト

httpbin:8000

response_code

HTTP レスポンスのステータスコード

200404503

user_agent

User-Agent リクエストヘッダーです。ヘッダーがない場合、値は "-" になります。

curl/7.88.1

bytes_sent

リクエストごとのレスポンスボディサイズ (バイト)

0

bytes_recv

リクエストごとのリクエストボディサイズ (バイト)

512

duration

単一リクエストの合計時間。送信からレスポンス受信までの時間

15 ms

追加の TLS フィールド

TLS トラフィック (HTTP over TLS ではない) に対して L7 オブザーバビリティを有効にすると、Ztunnel は ClientHello ハンドシェイクメッセージを解析し、次のフィールドをログエントリに追加します:

フィールド

説明

値の例

protocol

固定値

TLS

tls.sni

ClientHello メッセージの Server Name Indication (SNI)

example.com

tls.alpn

ClientHello メッセージの最初のアプリケーション層プロトコルネゴシエーション (ALPN) プロトコルです。ALPN が指定されていない場合、値は "-" になります。

h2http/1.1

EgressPolicy

EgressPolicy ルールは、3 つの一致条件 (namespacesmatchCidrsmatchPorts) と policy アクションで構成されます。Ztunnel はリスト内のルールを上から順に評価します。すべての条件を満たした最初のルールが有効になります。

フィールド

タイプ

必須

説明

namespaces

string[]

いいえ

ルールが適用されるクライアント namespace のリストです。空の場合は、すべての namespace に一致します。

matchCidrs

string[]

いいえ

CIDR 形式の宛先 IP アドレス範囲のリストです。空の場合は、すべての宛先 IP アドレスに一致します。IPv4 と IPv6 の両方のトラフィックを制御するには、それぞれの CIDR 範囲を個別に構成する必要があります。

matchPorts

int[]

いいえ

宛先ポートのリストです。空の場合は、すべてのポートに一致します。

policy

string

はい

実行するアクションです。有効な値は次のとおりです:

  • Passthrough

  • Deny

EgressPolicyAction

policy フィールドには、次の値を指定できます:

説明

Passthrough

メッシュプロキシをバイパスし、宛先 IP アドレスに対して TCP でトラフィックを直接転送します。

Deny

リクエストを直ちに破棄し、宛先に到達しないようにします。

構成の制約

  • Ztunnel は egressPolicies のルールを順番に評価します。namespacesmatchCidrsmatchPorts のすべての条件を満たした最初のルールを適用し、それ以降のルールは無視されます。

  • namespaces フィールドは、宛先サービスの namespace ではなく、クライアント (リクエストの送信元) の namespace に一致します。

  • matchCidrs フィールドは、ドメイン名ではなく宛先 IP アドレスに一致します。ドメイン名に基づいてトラフィックを制御するには、外部サービスをメッシュ内の ServiceEntry として登録する必要があります。

  • matchPorts フィールドは、クライアントの送信元ポートではなく、宛先ポート (リクエストのリモートポート) に一致します。

  • リクエストが egressPolicies のいずれのルールにも一致しない場合、デフォルトのアクションは Passthrough です。

  • Ztunnel は、Ztunnel Pod の再起動を必要とせず、ファイル監視メカニズムを通じて構成の変更を自動的に読み込みます。構成フォーマットが無効な場合、Ztunnel は最後に正常だった構成を保持します。