보안 그룹을 사용하여 AWS 리소스에 대한 트래픽 제어 - Amazon Virtual Private Cloud

보안 그룹을 사용하여 AWS 리소스에 대한 트래픽 제어

보안 그룹은 연결된 리소스에 도달하고 나갈 수 있는 트래픽을 제어합니다. 예를 들어 보안 그룹을 EC2 인스턴스와 연결하면 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어합니다.

VPC를 생성할 경우 VPC는 기본 보안 그룹과 함께 제공됩니다. 각각 고유한 인바운드 및 아웃바운드 규칙이 있는 추가 보안 그룹을 생성할 수 있습니다. 각 인바운드 규칙에 대해 소스, 포트 범위 및 프로토콜을 지정할 수 있습니다. 각 아웃바운드 규칙에 대해 대상, 포트 범위 및 프로토콜을 지정할 수 있습니다.

다음 다이어그램은 서브넷, 인터넷 게이트웨이 및 보안 그룹이 있는 VPC를 보여줍니다. 이 서브넷에는 EC2 인스턴스가 포함되어 있습니다. 보안 그룹은 인스턴스에 할당됩니다. 보안 그룹은 가상 방화벽의 기능을 수행합니다. 인스턴스에 연결되는 트래픽은 보안 그룹 규칙에서 허용되는 트래픽이 유일합니다. 예를 들어, 보안 그룹에 해당 네트워크에서 인스턴스로 이동하는 ICMP 트래픽을 허용하는 규칙이 포함되어 있는 경우 컴퓨터에서 인스턴스를 ping할 수 있습니다. 보안 그룹에 SSH 트래픽을 허용하는 규칙이 포함되어 있지 않은 경우에는 SSH를 사용하여 인스턴스에 연결할 수 없습니다.

서브넷 2개, 보안 그룹 2개, 서로 다른 보안 그룹과 연결된 서브넷의 서버가 있는 VPC
요금

보안 그룹을 사용해도 추가 요금이 부과되지 않습니다.

보안 그룹 기본 사항

  • 보안 그룹은 보안 그룹과 동일한 VPC에 만들어진 리소스에만 할당할 수 있습니다. 리소스에 여러 개의 보안 그룹을 할당할 수 있습니다.

  • 보안 그룹을 생성할 때 이름과 설명을 제공해야 합니다. 다음 규칙이 적용됩니다.

    • 보안 그룹 이름은 VPC 내에서 고유해야 합니다.

    • 이름과 설명은 최대 255자일 수 있습니다.

    • 이름과 설명은 다음과 같은 문자로 제한됩니다. a-z, A-Z, 0-9, 공백 및 ._-:/()#,@[]+=&;{}!$*

    • 이름에 후행 공백이 포함되어 있으면 이름 끝의 공백을 자릅니다. 예를 들어 이름에 “테스트 보안 그룹 ”을 입력하면 “테스트 보안 그룹”으로 저장됩니다.

    • 보안 그룹 이름은 sg-로 시작할 수 없습니다.

  • 보안 그룹은 상태가 저장됩니다. 예를 들어 사용자가 인스턴스에서 요청을 전송하면 해당 요청의 응답 트래픽은 인바운드 보안 그룹 규칙에 관계없이 인스턴스에 도달할 수 있습니다. 허용된 인바운드 트래픽에 대한 응답은 아웃바운드 규칙에 관계없이 인스턴스를 떠날 수 있습니다.

  • 보안 그룹은 다음에서 송수신되는 트래픽을 필터링하지 않습니다.

    • Amazon Domain Name Services(DNS)

    • Amazon Dynamic Host Configuration Protocol(DHCP)

    • Amazon EC2 인스턴스 메타데이터

    • Amazon ECS 태스크 메타데이터 엔드포인트

    • Windows 인스턴스에 대한 라이선스 활성화

    • Amazon Time Sync Service

    • 기본 VPC 라우터에서 사용하는 예약된 IP 주소

  • VPC당 생성할 수 있는 보안 그룹의 개수, 각 보안 그룹에 추가할 수 있는 규칙의 개수, 그리고 네트워크 인터페이스에 연결할 수 있는 보안 그룹의 개수에는 할당량이 있습니다. 자세한 내용은 Amazon VPC 할당량 단원을 참조하십시오.

모범 사례
  • 특정 IAM 보안 주체에만 보안 그룹을 생성 및 수정하는 권한을 부여합니다.

  • 오류 위험을 줄이려면 필요한 최소 보안 그룹 수를 생성합니다. 각 보안 그룹을 사용하여 함수 및 보안 요구 사항이 비슷한 리소스에 대한 액세스 권한을 관리합니다.

  • EC2 인스턴스에 액세스할 수 있도록 포트 22(SSH) 또는 3389(RDP)에 대한 인바운드 규칙을 추가하는 경우 특정 IP 주소 범위만 권한을 부여합니다. 0.0.0.0/0(IPv4)과 ::/(IPv6)를 지정하면 누구든지 지정된 프로토콜을 사용하여 모든 IP 주소에서 인스턴스에 액세스할 수 있게 됩니다.

  • 큰 포트 범위를 열지 마세요. 각 포트를 통한 액세스 권한이 해당 포트를 필요로 하는 원본 또는 대상으로 제한되도록 하세요.

  • 보안 그룹과 비슷한 규칙으로 네트워크 ACL을 생성하여 VPC에 추가 보안 계층을 추가해 보세요. 보안 그룹과 네트워크 ACL의 차이에 대한 자세한 정보는 보안 그룹 및 네트워크 ACL 비교 단원을 참조하세요.

보안 그룹 예시

다음 다이어그램에서는 보안 그룹과 서브넷이 각각 2개인 VPC를 보여줍니다. 서브넷 A의 인스턴스는 연결 요구 사항이 동일한 보안 그룹 1과 연결됩니다. 서브넷 B의 인스턴스는 연결 요구 사항이 동일한 보안 그룹 2와 연결됩니다. 보안 그룹 규칙에서는 다음의 트래픽이 허용됩니다.

  • 보안 그룹 1의 첫 번째 인바운드 규칙은 지정된 주소 범위(예: 자체 네트워크의 범위)에서 서브넷 A의 인스턴스로 이동하는 SSH 트래픽을 허용합니다.

  • 보안 그룹 1의 두 번째 인바운드 규칙에서는 서브넷 A의 인스턴스가 프로토콜과 포트를 사용하여 상호 간에 통신하는 것이 허용됩니다.

  • 보안 그룹 2의 첫 번째 인바운드 규칙에서는 서브넷 B의 인스턴스가 프로토콜과 포트를 사용하여 상호 간에 통신하는 것이 허용됩니다.

  • 보안 그룹 2의 두 번째 인바운드 규칙에서는 서브넷 A의 인스턴스가 SSH를 사용하여 서브넷 B의 인스턴스와 통신하는 것이 허용됩니다.

  • 두 보안 그룹 모두 모든 트래픽을 허용하는 기본 아웃바운드 규칙을 사용합니다.

두 개의 서브넷에 두 개의 보안 그룹 및 서버가 포함된 VPC 서브넷 A의 서버는 보안 그룹 1과 연결되어 있습니다. 서브넷 B의 서버는 보안 그룹 2와 연결되어 있습니다.