[aws] #2. EC2 의 보안
EC2 에서 보안을 지키는 방법엔 여러가지가 있다. 오늘은 그중에서 대표적인 보안 그룹을 통해 보안을 강화하는 법, port 를 통해 보안을 강화하는법을 살펴보자
4. Security Group 보안 그룹
AWS 보안이 아주 강하고 섬세하다는건 이미 iam 을 통해 익혔다. EC2 역시 이에 걸맞은 보안이 따로 있는데, 우리의 EC2 인스턴스에 접근을 허용하는 트래픽을 통제하는 방향으로 보안을 강화한다.
역시 iam 처럼 allow ruls 만 적용한다 (처음에는 모두 비허용이고 허용되는 속성들만 접속 가능)
이때 Secrurity Group 은 방화벽 역할을 하는데, 여기서 방화벽 역할이란 보안을 강화하기 위해 IP 범위를 규정하거나 인바운드, 아웃바운드 네트워크를 컨트롤하는 역할을 하는걸 의미한다.
*inbound 와 outbound 의 차이
아래 다이어그램을 보자. 예를 들어, 하나의 EC2 인스턴스에 인바운드가 허용된 그룹 하나 / 아웃바운드가 허용된 그룹 하나가 있다고 가정하자. 인바운드가 허용된 그룹은 autorized port 에서는 ip 가 들어갈 수 있겠지만, 아무 컴퓨터로 접속하려고 하면 접근이 안될거다. outbound 의 경우 모든 포트에서의 접근을 기본적으로 허용한다
4.2. Security Group 에서 알아두면 좋은 것들
- 보안 그룹은 여러개의 인스턴스에 부착할 수 있다! 1:1 관계는 없음 (하지만 별도로 설정하는게 관리하기 편하다)
- EC2 는 외부에서 작동하는 방화벽임. 내부의 문제와 별개다
- 만약에 timeout 이슈가 발생하면 이는 보안 그룹의 문제다. (내가 허용 자체가 안된거임), 근데 만약에 connction refused 에러가 난다면, 보안 그룹은 실행됬지만 앱이 실행이 안되는 등 더 내부에서 문제가 생긴거라고 생각하면 된다
- inbound 는 default 로 모두 block 된 상태고, outbound 는 모두 허용된 상태로 시작한다
5. Ports 포트
port 로도 보안을 강화할 수 있다 (쉽게 말해 접근 경로에 제한을 두는 방식 정도로 이해하면 된다)
그럼 흔히들 사용되는 포트에는 뭐가있을까? 대표적인 것들을 알아두고 가자
22번 포트 = SSH = secure shell 이라는 것임
21번 포트 = FTP = file transfer 에 사용된다
22번 포트 = SFTP = secure file transfer protocol = ssh 를 이용해 파일을 업로드할때 사용된다
80번 포트 = HTTP = access unsecured websites = 보안이 안된 사이트에 접속할때! http ~ 시작해서 접근할 때 쓰는 포트들이다. 이전에 실습에서 접속할때 http 를 통해 들어갔다.
443번 포트 = HTTPS = access secured websites = 보안이 허용된 사이트에 접속할때!
5.1. port 살펴보기
그럼 우리가 만들었던 ec2 에서 포트 설정을 바꿔보자
만들어둔 인스턴스 왼쪽에서 보안 그룹에 들어가자
내부로 들어가면 내 ec2 인스턴스의 인바운드, 아웃바운드 rule 을 볼 수 있다. 여기선 http 80번 포트가 작동중이기 때문에 http 뒤에 주소를 입력하면 접속할 수 있었던 것이다. 만약 timeout 때문에 웹사이트 접속이 안된다면 이 inbound rule 에 들어가서 포트가 정상 작동하는지 살펴보자.