본문 바로가기
IT/하려고 하는 클라우드

[AWS 기초] AWS 보안(Security Group) 관한 생각

by Work_Asalia 2023. 1. 17.

과거 진행하였든 프로젝트를 기반으로  AWS Security Group에 대한 개인적인 생각을 작성해 보려고 합니다.

(참고로 Security Group은 AWS 의 서비스가 아닌 하나의 기능입니다. AWS 보안 서비스 목록에는 별도로 나오지 않습니다.)

 

AWS에 Security Group에 대해서 자세히 설명되어 있으니 기능에 대해서 알고 싶은 분들은 AWS 페이지를 참조하시는게 더 빠를 듯합니다.(https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_SecurityGroups.html)

 

1. AWS 사용 시 처음 맞이 하는 보안기능

개인적인 생각에 Security Group은 AWS 인스턴스를 생성하게 되면 가장 처음으로 맞닥뜨리는 보안 요소라고 생각합니다. EC2 생성 시 어떤 Security Group을 생성할 것인지 Default를 적용할 것인지 여러 보안 요소 중 가장 처음 물어보기 때문입니다.(IAM 역할에 대해서 물어보지만 이 부분은 패스하도록 하겠습니다.)


처음으로 생성 시 Security Group에는 인바운드로 22(SSH) or 3389(RDP) 서비스가 기본적으로 되어 있으며 여기서 어떻게 설정할지에 따라 어디서 EC2를 접속하게 할 수 있는지 결정할 수 있습니다. 언제 어디서든 접속을 가능하게 하려면 0.0.0.0을 부여하고 내가 사용하고 있는 공인 IP에서만 접속하게 하려면 내 IP를 선택하면 됩니다.

2. 기본 관리 요소

EC2를 접속하여 기본적으로 운영을 하기 위해서 가장 기본적인 서비스가 SSH or RDP입니다.

저는 서비스를 구성하는 데 있어서 여기서부터 Security Group을 관리해야 한다고 생각합니다. 개인적으로 Default 정책 사용은 지양하고 관리자가 직업 SG를 생성하여 반영하는 것을 추천합니다.

이유는 각 서비스별로 SG를 생성하여 반영하는 것이 추후 관리적인 차원에서 편리하기 때문입니다.


클라우드의 여러 장점 중 가장 큰 묘미는 접근성에 있다고 생각합니다. Seucurity Group이 접근성을 좋게 하는 가장 큰 요소 중 하나라고 생각합니다. 한번 서비스를 위해서 결정된 Port 라면 여러 서비스와 연관이 되면서부터 변경하기가 쉽지 않습니다.

 

3. Default 그룹 사용 지양

보통은 별생각 없이 우선 서비스를 위해서 SG를 Default를 설정하고 진행하는데 이렇게 진행하게 되면 서비스를 오픈하게 되는 시점에는 해당 SG를 정리하느라 며칠분의 체력을 소진할 수 있습니다. 만일 VPC Flow Log라도 활성화가 되어 있지 않다면 어느 단에서 서비스가 진행이 안되는지 찾는 것은 쉽지가 않습니다.

보통 클라우드로 운영하려는 서비스는 신규 서비스도 있지만 대부분은 기존 레거시에서 운영 중이던 일부 서비스를 클라우드로 마이그레이션 하는 경우가 더 많습니다.

그러므로 이미 서비스를 위한 Port는 거의 정의가 되어 있으므로 해상 서비스를 기준으로 미리 SG를 정의하고 적용하여 구축을 진행하는 것이 추후 발생될 수 있는 체력 소모를 줄이는 일이라고 생각됩니다.

 

4. Deny는 언제나 기본

우리가 방화벽을 구축할 때 모든 정책을 Deny 시킨 상태에서 꼭 필요한 것만 반영하는 것과 같은 이치라고 생각하시면 됩니다.

그리고 우리가 흔히 3-Tire라고 말하는 Web, Was, DB로 구분하여 SG를 반영하는 것이 추후 추가되는 서비스에 대해서 혼동을 발생되지 않고 흔히 발생할 수 있는 Human Error를 예방할 수 있습니다.


Web-SG, Was-SG, DB-SG 이렇게 구분하여 각 서버 단에서 필요한 정책을 반영하여 서비스를 추가하고 수정하는 데로 무리가 없으며, 더 좋은 방법은 각 서버단에서 서비스에 영향이 있는 SG와 서비스에 영향이 없는 SG를 구분하여 생성하여 반영한다면 SG의 영향도를 더 줄일 수 있기 때문입니다.


짧은 클라우드 경력으로 주저리주저리 말이 많았지만 말하고자 하는 내용은 다음과 같습니다.

 

1. SG는 Default는 사용하지 않는다. 서버 또는 서비스별로 신규로 생성하여 반영한다.

2. SG는 방화벽과 같이 Deny 정책으로 시작한다.

3. SG를 3-tire로 구분하고 서비스 영향도에 따라 생성하여 관리한다.

728x90

댓글