기본 보안 그룹의 트래픽 허용 점검

기본 그룹의 불필요한 규칙을 제거하고 서비스별 보안 그룹을 사용하세요.

설명

기본 보안 그룹은 별도 그룹을 지정하지 않은 리소스에 사용될 수 있습니다. 여기에 불필요한 인바운드·아웃바운드가 있으면 의도하지 않은 리소스도 그 통신 권한을 받게 됩니다.

기본 인바운드는 같은 보안 그룹에 속한 리소스 간 통신을 허용하며 VPC의 모든 소스를 허용하는 것과는 다릅니다. 실제 허용 범위는 프로토콜, 소스·목적지와 함께 확인하세요.

잠재적 영향

  • 기본 그룹을 공유한 워크로드 사이에 불필요한 통신이 가능해질 수 있습니다.
  • 실수로 기본 그룹에 연결한 새 리소스에 과도한 송신·수신 권한이 적용될 수 있습니다.

해결 방법

  • 실제 연결 자원과 필요한 통신을 파악하고 목적별 그룹을 준비해 연결하세요.
  • 기본 그룹의 불필요한 규칙을 제거하세요. aws_default_security_group의 초기 관리는 기존 규칙을 지우고 선언한 규칙을 적용하므로 영향을 먼저 확인하세요.
  • 신규 배포에서 그룹을 명시하고 필요한 통신은 성공하며 불필요한 통신은 차단되는지 확인하세요.

예시

기본 그룹의 규칙 비교입니다. 참조 VPC는 별도로 정의하고 서비스 전용 그룹으로의 전환을 먼저 준비하세요. 규칙 삭제는 해당 기본 그룹을 사용하는 리소스에 영향을 줍니다.

변경 전

hcl
resource "aws_default_security_group" "default" {
  vpc_id = aws_vpc.mainvpc.id

  ingress = [
    {
      protocol  = -1
      self      = true
      from_port = 0
      to_port   = 0
    }
  ]

  egress = [
    {
      from_port = 0
      to_port   = 0
      protocol  = "-1"
      cidr_blocks = ["0.0.0.0/0"]
    }
  ]
}

같은 보안 그룹의 소스에서 모든 프로토콜을 허용하고 전체 IPv4 목적지로 송신을 허용합니다.

변경 후

hcl
resource "aws_default_security_group" "default" {
  vpc_id = aws_vpc.mainvpc.id
}

기본 그룹을 규칙 없이 관리합니다. 필요한 워크로드 통신은 별도로 연결한 서비스 그룹에서 허용해야 합니다.

참조