パス正規化を使用すると、パスをより効率的かつ明確に表現できます。このトピックでは、Service Mesh(ASM)のパス正規化ポリシーと、パス正規化ポリシーを設定する方法について説明します。
背景情報
HTTPリクエストのパス情報は、ASMがリクエストを処理するために不可欠です。たとえば、認証ポリシーを使用して、Kubernetesクラスター内のワークロードにセキュリティ保護を提供できます。ただし、リクエストパスが仕様に準拠していない場合、ASMのプロキシによってリクエストが予期せず拒否される可能性があり、クラスター内のサービスのセキュリティリスクにつながる可能性があります。パス正規化ポリシーを設定して、ASMのHTTPリクエストのパスが常に標準化されるようにすることができます。 HTTPリクエストパスは、ポリシーに基づいてサイドカープロキシによって正規化されます。
手順
[ASMコンソール] にログインします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、管理する ASM インスタンスの名前をクリックします。[基本情報] ページで、[構成情報] セクションの [パス正規化ポリシー] を見つけ、右側の [編集] をクリックします。
表示されたダイアログボックスで、パス正規化ポリシーを選択し、[OK] をクリックします。次の表に、ASM のパス正規化ポリシーを示します。
パス正規化ポリシー
説明
NONE
パス正規化は実行されません。
BASE
パス正規化は RFC 3986 に従って実行されます。たとえば、
/a/../b
は/b
に正規化されます。MERGE_SLASHES
パス正規化は BASE ポリシーに従って実行され、その後、隣接するスラッシュがマージされます。たとえば、
/a//b
は/a/b
に正規化されます。DECODE_AND_MERGE_SLASHES
まず、パス正規化は MERGE_SLASHES ポリシーに従って実行されます。次に、パス上の文字が UTF-8 デコードされます。最後に、隣接するスラッシュがマージされます。これは、
%2F
、%21
、%5C
、および%5C
が/
および\
文字に変換されることを意味します。たとえば、/a%21/b
は/a/b
に正規化されます。