데이터 엔지니어링/AWS

[aws] #2. EC2 의 보안

허니비 honeybee 2023. 10. 3. 18:09

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 에 들어가서 포트가 정상 작동하는지 살펴보자. 

 

 

728x90