HTTP Application Load Balancer の ヘッダーの変更 - Elastic Load Balancing

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

HTTP Application Load Balancer の ヘッダーの変更

HTTP ヘッダーの変更は、リクエストヘッダーとレスポンスヘッダーの両方で Application Load Balancer でサポートされています。ヘッダーを変更することで、アプリケーションコードを更新しなくても、アプリケーションのトラフィックとセキュリティをより詳細に制御できます。

ヘッダーの名前を変更する

ヘッダーの名前変更機能を使用すると、Application Load Balancer が生成してリクエストに追加するすべての Transport Layer Security (TLS) ヘッダーの名前を変更できます。これには、6 つの mTLS ヘッダーと、バージョンと暗号の 2 つのTLSヘッダーが含まれます。

HTTP ヘッダーを変更する機能により、Application Load Balancer は、特別にフォーマットされたリクエストヘッダーとレスポンスヘッダーを使用するアプリケーションを簡単にサポートできます。

ヘッダー 説明

X-Amzn-Mtls-Clientcert-Serial-Number

ターゲットがTLSハンドシェイク中にクライアントによって提示された特定の証明書を識別して検証できるようにします。

X-Amzn-Mtls-Clientcert-Issuer

証明書を発行した認証機関を特定することで、ターゲットがクライアント証明書を検証および認証するのに役立ちます。

X-Amzn-Mtls-Clientcert-Subject

クライアント証明書が発行されたエンティティに関する詳細情報をターゲットに提供し、mTLS 認証中の識別、認証、認可、ログ記録に役立ちます。

X-Amzn-Mtls-Clientcert-Validity

ターゲットが、使用されているクライアント証明書が定義された有効期間内であることを検証し、証明書の有効期限が切れたり、途中で使用されたりしていないことを確認します。

X-Amzn-Mtls-Clientcert-Leaf

mTLS ハンドシェイクで使用されるクライアント証明書を提供し、サーバーがクライアントを認証して証明書チェーンを検証できるようにします。これにより、接続が安全で認可されます。

X-Amzn-Mtls-Clientcert

完全なクライアント証明書を実行します。ターゲットが証明書の信頼性を検証し、証明書チェーンを検証し、mTLS ハンドシェイクプロセス中にクライアントを認証できるようにします。

X-Amzn-TLS-Version

接続に使用されるTLSプロトコルのバージョンを示します。これにより、通信のセキュリティレベルの判断、接続の問題のトラブルシューティング、コンプライアンスの確保が容易になります。

X-AmznTLS--Cipher-Suite

で接続を保護するために使用される暗号化アルゴリズムの組み合わせを示しますTLS。これにより、サーバーは接続のセキュリティを評価でき、互換性のトラブルシューティングやセキュリティポリシーへの準拠に役立ちます。

Application Load Balancer リスナーがリクエストヘッダーの名前を変更できるようにするには、次のコマンドを使用します。

aws elbv2 modify-listener-attributes \ --listener-arn ARN \ --attributes Key="routing.http.request.actual_header_field_name.header_name",Value="desired_header_field_name"

ヘッダーを挿入する

挿入ヘッダーを使用すると、Application Load Balancer を設定して、セキュリティ関連のヘッダーをレスポンスに追加できます。10 個の新しい属性を使用して、HSTS、、 CORSなどのヘッダーを挿入できますCSP。

これらのヘッダーのデフォルト値はすべて空です。この場合、Application Load Balancer はこのレスポンスヘッダーを変更しません。

ヘッダー 説明

Strict-Transport-Security

ブラウザによる HTTPSのみの接続を指定された期間強制し、攻撃、プロトコルのダウングレード、ユーザーエラーから保護 man-in-the-middleします。クライアントとターゲット間のすべての通信が暗号化されます。

Access-Control-Allow-Origin

ターゲット上のリソースに異なるオリジンからアクセスできるかどうかを制御します。これにより、不正なアクセスを防止しながら、安全なクロスオリジンインタラクションが可能になります。

Access-Control-Allow-Methods

ターゲットにクロスオリジンリクエストを行うときに許可されるHTTPメソッドを指定します。これにより、異なるオリジンから実行できるアクションを制御できます。

Access-Control-Allow-Headers

クロスオリジンリクエストに含めることができるカスタムヘッダーまたはシンプルではないヘッダーを指定します。このヘッダーにより、ターゲットは異なるオリジンのクライアントからどのヘッダーを送信できるかを制御できます。

Access-Control-Allow-Credentials

クライアントがクロスオリジンリクエストに Cookie、HTTP認証、クライアント証明書などの認証情報を含めるかどうかを指定します。

Access-Control-Expose-Headers

ターゲットが、クロスオリジンリクエストでクライアントがアクセスできる追加のレスポンスヘッダーを指定できるようにします。

Access-Control-Max-Age

ブラウザがプリフライトリクエストの結果をキャッシュできる期間を定義し、プリフライトチェックを繰り返す必要性を減らします。これにより、特定のクロスオリジンOPTIONSリクエストに必要なリクエストの数を減らすことで、パフォーマンスを最適化できます。

Content-Security-Policy

スクリプト、スタイル、イメージなどのどのリソースをウェブサイトでロードして実行できるかを制御するXSSことで、 のようなコードインジェクション攻撃を防ぐセキュリティ機能。

X-Content-Type-Options

no-sniff ディレクティブを使用すると、 はブラウザがリソースMIMEのタイプを推測できないようにすることで、ウェブセキュリティを強化します。これにより、ブラウザは宣言された Content-Type に従ってのみコンテンツを解釈できます。

X-Frame-Options

ウェブページをフレームに埋め込むことができるかどうかを制御することで、クリックジャック攻撃を防ぐのに役立つヘッダーセキュリティメカニズム。DENY や などの値により、悪意のあるウェブサイトや信頼できないウェブサイトにコンテンツが埋め込まれないようにSAMEORIGINできます。

HSTS ヘッダーを挿入するように Application Load Balancer リスナーを設定するには、次のコマンドを使用します。

aws elbv2 modify-listener-attributes \ --listener-arn ARN \ --attributes Key="routing.http.response.strict_transport_security.header_value",Value="max-age=time_in_sec;includeSubdomains;preload;"

ヘッダーを無効にする

disable ヘッダーを使用すると、レスポンスから server:awselb/2.0 ヘッダーを無効にするように Application Load Balancer を設定できます。これにより、サーバー固有の情報の露出が軽減され、アプリケーションに保護レイヤーが追加されます。

属性名は ですrouting.http.response.server.enabled。使用できる値は trueまたは ですfalse。デフォルト値は true です。

次のコマンドを使用して、Application Load Balancer リスナーが server ヘッダーを挿入しないように設定します。

aws elbv2 modify-listener-attributes \ --listener-arn ARN \ --attributes Key="routing.http.response.server.enabled",Value=false
制限:
  • ヘッダー値には次の文字を含めることができます

    • 英数字: a-zA-Z0-9

    • 特殊文字: _ :;.,\/'?!(){}[]@<>=-+*#&`|~^%

  • 属性の値は、サイズが 1K バイトを超えることはできません。

  • Elastic Load Balancing は基本的な入力検証を実行して、ヘッダー値が有効であることを確認します。ただし、検証では、値が特定のヘッダーでサポートされているかどうかを確認することはできません。

  • 属性に空の値を設定すると、Application Load Balancer はデフォルトの動作に戻ります。

  • ヘッダーはコード 2xx または 3xx のHTTPレスポンスにのみ挿入されます。

詳細については、「リスナー属性」を参照してください。