HTTPSへのリダイレクトが設定されていないALBの設定変更方法について

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、HTTPSへのリダイレクトが設定されていないALBについて、そのリスクと対策を解説します。

ポリシーの説明
[ELB.1] Application Load Balancer は、すべての HTTP リクエストを HTTPS にリダイレクトするように設定する必要があります
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/elb-controls.html#elb-1
このコントロールはHTTP、HTTPSリダイレクトが Application Load Balancer のすべてのHTTPリスナーに設定されているかどうかをチェックします。Application Load Balancer のHTTPリスナーのいずれかにHTTPSリダイレクトが設定されていない場合HTTP、コントロールは失敗します。
リスクとしては、Application Load Balancer (ALB) が HTTP リクエストを HTTPS にリダイレクトするように設定されていない場合、クライアントと ALB 間の通信が暗号化されず、データの盗聴や改ざんのリスクが高まる可能性があります。 また、この状態ではセキュリティ上の脆弱性が生じるだけでなく、コンプライアンス要件を満たさないリスクもあります。
このリスクを回避するために、ALB の HTTP リスナーにリダイレクトアクションを設定し、すべての HTTP リクエストを HTTPS にリダイレクトすることが望ましいです。 これにより、クライアントと ALB 間の通信が暗号化され、セキュリティが強化されます。
修復方法
AWSコンソールでの修正手順
① EC2 > ロードバランサー へ移動
② 設定するロードバランサーを選択し、「リスナーとルール」のタブを選択
③ 対象のリスナーを選択し、「リスナーの管理」からリスナーの編集を選択

④ 編集するルール内容を選択し、「ルールの編集」を選択

⑤ デフォルトのアクションで「URLにリダイレクト」を選択後、プロトコルとHTTPS、ポートを443に設定

⑥ 内容に問題なければ、「変更内容の保存」を選択し保存する
Terraformでの修復手順
Terraformの場合はProtocol: HTTPの場合デフォルトアクションでHTTPSにRedirectさせればよいです。
# HTTPリスナー(HTTPSへリダイレクト)
resource "aws_lb_listener" "http" {
load_balancer_arn = aws_lb.main.arn
port = "80"
protocol = "HTTP"
default_action {
type = "redirect"
redirect {
port = "443"
protocol = "HTTPS"
status_code = "HTTP_301"
}
}
}
最後に
今回は、Application Load Balancer が HTTP リクエストを HTTPS にリダイレクトするように設定されていない場合のリスクとその対策についてご紹介しました。
HTTP リクエストが暗号化されていないと、データの盗聴や改ざんのリスクが高まります。設定を確認し、必要に応じて本記事を参考に修正してみてください。
こちらの内容の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。運用が非常にラクに出来る製品になっていますのでぜひ興味がある方はお問い合わせお待ちしております。
最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。