説明
セキュリティグループでTCPポート80をインターネット全体に許可すると、ネットワーク経路がある場合に外部からHTTPサービスへアクセスできます。HTTP自体は通信を暗号化しません。
想定される影響
平文で送受信する機密性の高いリクエストやレスポンスが、通信経路で漏えい・改ざんされるおそれがあります。
対処方法
公開サービスにHTTPSを設定し、不要なHTTPアクセスを削除してください。HTTPSへのリダイレクト用にHTTPを残す場合も、最初のHTTPリクエストは暗号化されません。
例
以下はHTTPの接続元だけを制限する例であり、HTTPSを有効にするものではありません。変数には承認されたIPv4とIPv6の範囲を指定し、TLSはアプリケーションやロードバランサーで別途設定してください。
変更前
hcl
resource "aws_security_group" "example" {
name = "allow_tls"
description = "HTTP port open"
ingress {
description = "HTTP port open"
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
}
変更後
hcl
resource "aws_security_group" "example" {
name = "allow_tls"
description = "sample"
ingress {
description = "sample"
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = var.approved_ipv4_cidrs
ipv6_cidr_blocks = var.approved_ipv6_cidrs
}
}