HTTP 포트 80의 인터넷 공개

공개 웹 서비스의 민감한 통신에 HTTPS를 적용하세요.

설명

보안 그룹이 TCP 포트 80을 인터넷 전체에 허용하면, 네트워크 경로가 있을 때 외부에서 HTTP 서비스에 접근할 수 있습니다. HTTP 자체는 통신을 암호화하지 않습니다.

잠재적 영향

평문으로 전송된 민감한 요청과 응답은 통신 경로에서 노출되거나 변조될 수 있습니다.

해결 방법

공개 서비스에는 HTTPS를 구성하고 불필요한 HTTP 허용을 제거하세요. HTTP를 HTTPS 전환용으로 유지하더라도 첫 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
  }
}

참조