AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

無効なヘッダーをドロップするように Application Load Balancer を設定する方法を教えてください。

所要時間1分
0

Application Load Balancer から有効でないヘッダーを削除したいです。

簡単な説明

Application Load Balancer は、routing.http.drop_invalid_header_fields.enabled 属性を使用して、有効でない HTTP ヘッダーを削除します。この属性のデフォルト値は FALSE です。

属性のデフォルト値を TRUE に設定すると、Application Load Balancer は有効でない HTTP ヘッダーを削除します。属性の値が FALSE の場合、ロードバランサーはヘッダーを元のリクエストのターゲットにルーティングします。
注: Elastic Load Balancing では、登録されているすべてのメッセージヘッダー名が正規表現 [-A-Za-z0-9]+ に準拠している必要があります。各ヘッダー名は英数字またはハイフンで構成されています。

属性 drop_invalid_header_field が機能することを確認する

サーバー側でパケットキャプチャを行います。この属性が非アクティブ化されると、Application Load Balancer は有効でない HTTP ヘッダーをバックエンドサーバーに転送します。この属性がアクティブ化されると、ロードバランサーは有効なヘッダーのみをバックエンドサーバーに転送します。無効なヘッダーは削除されます。

Wireshark を使用してサーバー側の HTTP ヘッダーを確認する (非アクティブ化された属性)

クライアントマシンからの CURL リクエストに +agent: world というヘッダーを渡します。このヘッダーでは、無効な値を使用していることに注意してください。

Hypertext Transfer Protocol
    GET / HTTP/1.1\r\n
    X-Forwarded-For: x.x.x.x\r\n
    X-Forwarded-Proto: http\r\n
    X-Forwarded-Port: 80\r\n
    Host: xxxxxxxx.elb.amazonaws.com\r\n
    X-Amzn-Trace-Id: Root=xxxxxxxxxx\r\n
    User-Agent: curl/8.4.0\r\n
    Accept: */*\r\n
    +agent: world\r\n

この出力は、サーバー側の Wireshark キャプチャからのものです。Application Load Balancer は、無効なヘッダーをバックエンドサーバーに転送します。

Wireshark を使用してサーバー側の HTTP ヘッダーを確認する (有効化された属性)

クライアントマシンからの CURL リクエストに +agent: world というヘッダーを渡します。このヘッダーでは、無効な値を使用していることに注意してください。

Hypertext Transfer Protocol
    GET / HTTP/1.1\r\n
    X-Forwarded-For: x.x.x.x\r\n
    X-Forwarded-Proto: http\r\n
    X-Forwarded-Port: 80\r\n
    Host: xxxxxxxx.elb.amazonaws.com\r\n
    X-Amzn-Trace-Id: Root=xxxxxxxxxx\r\n
    User-Agent: curl/8.4.0\r\n
    Accept: */*\r\n

属性がアクティブ化されると、Application Load Balancer はリクエストをバックエンドサーバーに送信します。ただし、このサーバー側の出力が示すように、ロードバランサーは無効なヘッダーを削除します。

関連情報

ロードバランサーの属性

AWS公式
AWS公式更新しました 7ヶ月前
コメントはありません

関連するコンテンツ