오늘 AWS Secworkshop을 실습하다가, VPC를 보니 Security Group에 EC2의 보안 그룹 ID가 들어가있는걸 보았다.
Security Group을 해당 서비스에 대한 Firewall으로 인식하고 있었기에 당연히 IP/Port가 들어가 있어야 될거 같았는데
EC2의 보안 그룹 ID가 들어가있어서 내용을 좀 찾아보았다!!
결론부터 말하면, 이는 특정 IP에 대해서 허용해주는 의미가 아니라
해당 Security Group을 통과해온 Resource에 대해서는 허용해주겠다는 의미이다!!
주인장도 처음에는 이해가 잘 되지 않아서 아래와 같이 나름의 가상의 시나리오를 세워보았다.
□ 가상 시나리오
A 서비스는 외부에 Open 되어 있는 웹서비스를 제공하고 있고, ELB를 통해 서비스가 이중화 되어 있다.
이런 경우, ELB와 EC2의 Security Group을 어떻게 지정해줘야 할까?
- ELB의 Security Group을 sg-elb로 지정한다.
□ Security Group 설정
1. ELB의 Security Group(sg-elb)
사용자가 웹서버에 접속할 경우, 사용자 → ELB → EC2 Flow로 트래픽이 흐르며, ELB에서 sg-elb Security Group으로 통과 된다.
Service | Port | Source IP | 설명 |
HTTPS | 443 | 0.0.0.0 | 외부에 허용되어 있기에 모든 IP에 대해서 허용한다. |
2. EC2 Security Group(sg-ec2)
ELB(사용자 Proxy) ↔ EC2는 Private IP로 통신하기에 Source IP에 ELB의 Private IP를 넣으면 된다.
하지만, ELB에는 정적인 IP가 아니라 B Class IP Range로 가변적인 IP를 가지고 있다.
물론, B Class IP Range를 Source IP로 넣으면 된다. 그렇지만 이럴 경우 해당 B Class의 다른 서비스도 EC2에 접속할 수 있다.
하지만, 과도하게 허용되어 있는 경우로 보안상 바람직한 방법은 아니다.
그렇다면 최적의 방법은 무엇일까? 이때 Seucurity Group에 보안 그룹 ID를 기재하는 방법이 있다.
Service | Port | Source IP | 설명 |
HTTPS 또는 HTTP | 443 또는 80 | sg-elb | sg-elg를 통과한 Host에 대해서만 허용한다. |
위와 같이 Security Group을 조정할 경우, EC2는 sg-elg를 통과해온 Host에 대해서만 접속을 허용한다.
즉, A 사용자는 ELB 접근하여 → sg_elb를 통과 하였고 → EC2에 접근할 때 → ELB의 sg_elb를 통과하였기에 EC2 접근이 허용된다.
1. ELB의 security group을 sg-elb로 지정한다. 2. ELB → EC2로 접근하기 위해서는 EC2 인바운드 security group에 ELB IP를 기재해야 한다. 3. ELB ↔ EC2는 Private IP를 가지고 통신하는데, 정확한 Private IP를 알 방법이 없다. - ELB에는 도메인 정보만 있고, nslookup해보면 다수의 IP를 반환하며 변경된다. 4. ELB의 Private IP는 Private IP Range 中 하나 이므로, Range를 EC2 인바운드 security group에 넣으면 된다. - 하지만 과도하게 허용되는 경우로 권장하는 방법은 아니다. - 해당 Range에 있는 다른 서비스가 EC2에 접근할 수 있다. 5. EC2의 인바운드 security group에 ELB의 security group sg-elb를 등록한다. - sg-elb를 사용하는 리소스를 통과한 호스트들은 EC2로 접근할 수 있다. ELB에서 sg_elb security group을 통과한 host 들은 EC2에 접근할 수 있다. 즉, 1. A 사용자가 ELB에 접속한다. 2. ELB의 sg-elb security group에서 허용 된다. 3. EC2 인바운드 security group에는 sg_elb가 등록되어 있다. 4. A 사용자는 ELB의 sg_elb를 통과하였기에 EC2에 접속할 수 있다. 즉, ELB의 seuciry group이 sg-elb이므로 EC2에 접근할 수 있다. ELB를 제외한 나머지 리소스는 모두 차단 |
'기술 이모저모 > [AWS] Workshop' 카테고리의 다른 글
[AWS] Resource 과금 모니터링 방안, 새는 AWS 비용 아끼기 (0) | 2022.02.20 |
---|---|
[AWS][Config] Resource를 평가하고 모니터링하는 방법 (0) | 2022.02.17 |
[Secworkshop] Zero Trust Episode 1 (0) | 2022.02.13 |
[AWS][Forensic][WAF] 내 테스트 서버에 공격이 들어오다(1/2) (0) | 2022.02.12 |
[Secworkshop] Protecting workloads on AWS (0) | 2022.02.10 |