보안 그룹
1. SSH만 허용한 EC2인스턴스 2개 (MyWeb1, MyWeb11)을 만들어 주었다.
2. PuTTY를 이용하여 HTTP접속과 SSH접속을 시도하였다.
SSH로는 접속이 잘 되는 모습이다.
3. 인바운드 규칙을 추가해주었다.
4. 연결 확인
이전에 연결되지 않았던 방식들이 인바운드 규칙을 추가하자 연결이 잘 되는 모습을 확인하였다.
5. 아웃바운드 규칙 삭제
아웃바운드 규칙 삭제 후 핑을 보내면 연결이 안되는 모습을 볼 수 있다.
6. 다시 아웃바운드 규칙을 설정해주고
네트워크 ACL을 생성하여 MyPublicSubnet에 연결해주었다.
그러면 접속이 안되는 모습을 볼 수 있는데
네트워크 ACL이 모든 인바운드에 대해 거부하고 있기 때문이다.
7. 인바운드 규칙과 아웃바운드 규칙을 다시 설정해준 후 연결을 확인하면 연결이 잘 되는 모습을 확인할 수 있다.
AWS WAF
1. cloudformation을 이용하여 아래와 같은 환경을 만들어주었다.
2. MyWeb1, MyWeb11의 공인 IP로 접속하면
위와 같은 로그인 화면이 나오고 세부 설정에서 설정한 Username, password를 입력하면 로그인이 가능하다.
공격 시도
IDS 침입 탐지 : 이벤트 발생, 로그 기록
IPS 침입 방지 : 이벤트 발생, 로그 기록, 패턴이 일치하는 packet 차단
WAF 웹 방화벽 : HTTP 관련 문자열을 탐지하는 IPS
3. AWS 웹페이지의 WAF 생성으로 가서
Web ACL를 생성해주고
위와 같이 규칙을 설정해주었다.
그 후에 MyALB를 할당해주면 WAF가 설정되어 공격을 막아준다.
CloudFront
CloudFront 는 캐싱을 통하여 사용자에게 좀 더 빠른 전송 속도를 제공하는 CDN(Content Delivery Network) 서비스이다.
1. MyWeb이라는 이름의 EC2 인스턴스를 하나 만들어 준다. (인스턴스 유형 : t3 micro)
2. CloudFront 탭으로 가서
MyWeb에 해당하는 CloudFront를 생성해준다.
3. PuTTY로 접속하여
실시간 접속 로그를 확인하면 아무리 브라우저에서 새로고침을 해도 접속 로그는 1개밖에 뜨지 않는다.
4. 무효화 생성
무효화를 생성해주면 실시간으로 접속 로그가 생성된다.
5. S3 bucket을 생성해주고 객체에 파일 2개를 업로드 해주었다.
그럼 CloudFront 배포에서 S3 bucket을 선택할 수 있다.
6. 생성된 CloudFront 도메인에 접속하면
위와 같이 두 페이지를 이동할 수 있는 페이지가 만들어진다.