보안 그룹(Security Group)
보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 한다.
보안 그룹
- Network Access Control List(NACL)와 함께 방화벽의 역할을 하는 서비스
- Port 허용 • 기본적으로 모든 포트는 비활성화
- 선택적으로 트래픽이 지나갈 수 있는 Port와 Source를 설정 가능
- Deny는 불가능 -> NACL 로 가능함 • 인스턴스 단위(정확히는 ENI단위)
- 하나의 인스턴스에 하나 이상의 SG설정 가능
- NACL의 경우 서브넷 단위
- 예를 들어 보안그룹A(허용 포트: 8080) 과 보안그룹B(허용포트: 443)이 적용되는 인스턴스는 8080, 443포트를 허용해 외부에서 8080과 443 트래픽을 받게 된다.
보안그룹의 특징
- 보안그룹은 Stateful • Inbound로 들어온 트래픽이 별 다른Outbound설정 없이 나갈 수 있음
보안 그룹의 Source
· IP Range(CIDR)
- 접두사 목록(Prefix List)
- 하나 이상의 CIDR 블록의 집합
- 보안 그룹 혹은 Route Table에서 많은 대상을 참조하기 위해 사용
- 두 가지 종류
- 고객 관리형 : 직접 IP주소를 생성/수정/삭제 할 수 있으며 다른 계정과도 공유 가능
- AWS 관리형 : AWS의 서비스들을 위한 IP목록. 수정, 삭제, 업데이트가 불가능함
- DynamoDB, S3, CloudFront
- IPv4, IPv6 둘 다 사용 가능, 단 한 접두사 목록에 두 가지 타입을 동시에 사용 불가능
- 생성 시점에 최대 엔트리 숫자를 지정(이후 변경 가능)
• 다른 보안그룹 (보안그룹 참조)
- 보안그룹에 속해있는 ASG의 인스턴스 ip는 계속 변경될 수 있음을 알고 있는 것이 중요!
- 이때 보안그룹의 참조를 사용하게 되면 해당 보안그룹에 속해있는 모든 instance들 혹은 다른 요소의 트래픽을 허용시킬 수 있음.
네트워크 ACL(NACL)
- 보안그룹처럼 방화벽 역할을 담당
- NACL은 Stateless
- 서브넷 단위
- 포트 및 아이피를 직접 Deny 가능
- 외부 공격을 받는 상황 등 특정 아이피를 블록하고 싶을 때 사용
- NACL 을 사용하는 경우에는 SG와 다르게 반드시 emphemeral 포트를 outbound로 허용해줘야한다.