【Security Hub修復手順】[ELB.1] Application Load Balancer は、すべての HTTP リクエストを HTTPS にリダイレクトするように設定する必要があります

AWS SecurityHub 基礎セキュリティのベストプラクティスコントロール修復手順をご紹介します。
2023.03.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!AWS事業本部のおつまみです。

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介します。

本記事の対象コントロール

[ELB.1] Application Load Balancer は、すべての HTTP リクエストを HTTPS にリダイレクトするように設定する必要があります

[ELB.1] Application Load Balancer should be configured to redirect all HTTP requests to HTTPS

現在(2023/3/30時点)は、日本語版の公式ドキュメントでは、ELBv2.1となっておりますが、ELB.1にコントロール番号が変更されています。 SecurityHubにてELB.1で検知するため、ご注意ください。

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。 AWS Security Hubの詳細についてはこちらのブログをご覧ください。

対象コントロールの説明

このコントロールは、HTTP から HTTPS へのリダイレクトが Application Load Balancer のすべての HTTP リスナーで設定されているかどうかを確認します。 HTTP リスナーに HTTP から HTTPS へのリダイレクトが設定されていない場合、チェックは失敗します。

HTTPとする特別な理由がある場合はコントロールを無効化でも問題ないですが、基本的にはHTTPSリスナーを使用することが好ましいです。 HTTPSリスナーを使用すると、暗号化と復号化の作業を Application Load Balancer にオフロードすることができます。

修復手順

  1. Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[ロードバランサー]を選択します。

  3. 対象のApplication Load Balancer を選択し、[リスナー]タブを選択します。

  4. [HTTP:80] のリスナーを選択します。

  5. [ルール]タブを選択し、[ルールを管理]を選択します。

  6. 画面上部のタブからプラスマークを選択し、[ルールの挿入]を選択します。

  7. IFは「パス」を選択し、その値に「*(アスタリスク)」を入れます。

  8. THENは「リダイレクト先...」を選択し、ポートに443を入力します。画面右上にある「保存」を押下する。

  9. 画面右上にある「保存」を押下する。

  10. ALBのセキュリティグループにて、HTTP・HTTPSリクエストを許可していることを確認します。

  11. 動作確認として、HTTPリクエストでアクセスし、HTTPSにリダイレクトされることを確認します。(ブラウザの場合、アドレスバーに鍵マークが付いていればOKです)

  12. SecurityHubにて、失敗しているリソースが0になっていること及びステータスが[成功]になっていることを確認します。 ※リソースの更新には数分、ステータスの更新には1日程度かかります。

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!
どなたかのお役に立てれば幸いです。

以上、おつまみ(@AWS11077)でした!

参考

[新機能]Webサーバでの実装不要!ALBだけでリダイレクト出来るようになりました! | DevelopersIO

HTTP から HTTPS へのリダイレクトに Application Load Balancer を使用する | AWS re:Post