AWS에서 Traffic을 제어하는 2가지 방법
AWS에서 Traffic을 제어하는 2가지 방법인 NACL(Network Access Control Lists)와 Security Group(이하 SG)에 대해 알아본다.
NACL과 SG는 트래픽을 제어하는 방화벽 역할을 수행한다. 둘 다 방화벽의 역할을 하지만 적용 범위나 특징이 다르므로 아래에서 각각에 대해 자세하게 알아본다.
1. NACL (Network Access Control Lists)
- 네트워크 ACL (액세스 제어 목록)은 트래픽을 제어하는 방화벽 역할을 수행한다. Subnet이라는 넓은 범위에 적용되는 방화벽으로 해당 Subnet에 존재하는 모든 자원에게 공통의 방화벽 Rule을 관리하고자 하는 경우에 유용하다.
(1) 적용 범위 : Subnet
NACL(Network access control list)는 Subnet에 적용되어 해당 Subnet 내의 자원에 접근하기 위해 거쳐야 하는 방화벽이다. 아래 그림에서 선으로 그려진 파란색 & 주황색 Traffic 모두 Subnet 안으로 들어가기 위해 NACL을 통과하는 것을 볼 수 있다.
(2) 특징
2-1. Steateless
- 인/아웃바운드는 모두 명시적으로 지정된 rule에 기반하여 트래픽을 제어한다.
ex) 인바운드 80 Open, 아웃바운드 All Deny의 경우
80포트로 서비스 요청이 들어왔지만 아웃바운드가 모두 막혀 있으므로 응답(Return traffic)을 Client에게 보낼 수 없다.
2-2. Rule 등록 및 실행 규칙
- allow rule만 등록 가능함 (deny rule 등록 불가)
- 모든 rule을 검사해서 allow & deny 여부를 결정함
2-3. AWS DOC
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-network-acls.html
2. Security Group
- SG 역시, 트래픽을 제어하는 방화벽 역할을 수행한다. SG는 ENI(Elastic Network Interface)에 적용할 수 있다. 보통, Instance에 할당된 ENI에 SG를 적용하여 인/아웃바운드 트래픽을 제어하므로 Instance의 인/아웃바운드 트래픽을 제어한다고 표현하기도 한다. (그러나, 실제 SG가 적용되는 범위는 Instance가 아닌 ENI다.)
(1) 적용 범위 : ENI (Elastic Network Interface)
SG는 Instance의 ENI에 적용되는 방화벽이다. 아래 그림의 Security Group - B 처럼 동일한 SG를 여러개의 ENI에 적용시킬 수 있다. 예를 들어, WAS서버가 4대가 존재하고 동일한 방화벽 Rule을 적용하고자 할 때 1개의 SG(Security Group - B)를 생성하여 이를 여러개의 ENI에 적용시키면 된다.
아래 그림에서 선으로 그려진 파란색 & 주황색 Traffic 은 EC2로 들어가기 위해 Security Group을 거치는 것을 볼 수 있다.
(2) 특징
2-1. Stateful
- 요청 상태를 저장하여 응답 트래픽(Return traffic)은 인/아웃바운드 규칙에 상관없이 흐름이 허용된다.
ex) 인바운드 80 Open, 아웃바운드 All Deny의 경우
80포트로 서비스 요청이 들어온 경우, 아웃바운드가 막혀 있더라도 Stateful 특징에 의하여 응답(Return traffic)을 Client에게 보낼 수 있다.
2-2. Rule 등록 및 실행 규칙
- allow, deny rule 모두 등록 가능
- specific한 순서로 rule을 검사하여 allow & deny 여부를 결정함
2-3. AWS DOC
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_SecurityGroups.html
댓글