My Dream Being Visualized

[ AWS ] ACL 및 보안그룹 비교, 생성 및 적용 본문

Backend/Infrastructure

[ AWS ] ACL 및 보안그룹 비교, 생성 및 적용

마틴킴 2021. 11. 19. 08:07
728x90

 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _)

 

[AWS 설명]

AWS는 VPC를 위해 보안을 늘리고 모니터링 할 수 있는 기능들을 제공한다.

  • 보안그룹(Security groups)
  • ACL(Network Access Control Lists)
  • Flow logs
  • Traffic mirroring

 

ACL이란?

ACL(Network access control list, 네트워크 엑세스 제어 목록)은 VPC를 위한 하나 이상의 서브넷에서 들어오고 나가는 트래픽을 제어하기 위한 방화벽(firewall) 역할을 하는 추가적인 보안 계층이다. VPC에 보안그룹(security groups)과 비슷한 추가적인 보안 계층을 추가하기 위해서 ACL을 설정할 수 있다.

네트워크 ACLs는  연결된 서브넷을 위한 서브넷 단(level)에서 inbound(들어오는) 및 outbound(나가는) 트래픽 둘 다 제어하는 방화벽(firewall) 역할을 한다.

ACL은 라우팅 테이블을 지나 서브넷으로 들어가고 나가는(inbound & outbound) 트래픽을 제어한다!

 

보안그룹(Security Group)이란?

보안그룹은 인스턴스를 위해 들어오고(inbound) 나가는(outbound) 트래픽을 제어해주는 가상 방화벽(firewall) 역할을 한다. VPC내 인스턴스를 설치했을 때, 인스턴스에 5개의 보안그룹을 할당할 수 있다. 보안그룹은 서브넷 단이 아닌, 인스턴스 단에서 역할을 한다. 그래서, VPC내 서브넷 안에 있는 각 인스턴스는 각기 다른 보안그룹에 할당될 수 있다.

Amazon EC2 API를 활용 혹은 cli(command line) tool을 활용하여 인스턴스를 시작할 때 보안그룹을 명시해주지 않으면, 인스턴스는 VPC에 대한 default 보안그룹에 자동 할당된다. Amazon EC2 콘솔을 활용하여 인스턴스를 시작할 경우, 해당 인스턴스에 대한 새로운 보안그룹을 생성할 수 있다.

각 보안그룹에 대하여, 인스턴스들에 대한 inbound 트래픽을 제어할 수 있는 규칙(rules) 및 outbound 트래픽을 제어하는 각 규칙들을 더할 수도 있다. 

보안그룹은 인스턴스에서 들어가고 나가는(inbound & outbound) 트래픽을 제어한다!

 

보안그룹과 ACL 비교

보안그룹 네트워크 ACL
인스턴스 단에서 실행 서브넷 단에서 실행
허용(allow) 규칙만 지원 허용(allow) 및 거부(deny) 규칙 지원
스테이트풀(stateful): 어떤 규칙과도 관계없이, 반환 트래픽이 자동적으로 허용된다. 스테이트레스(stateless): 반환 트래픽이 특정 규칙에 의해서 허용된다.
트래픽을 허용할 것인가에 대한 결정 전 모든 규칙을 평가한다.  트래픽을 허용할 것인가에 대해 결정할 때 가장 낮은 번호의 규칙부터 시작하여 순서대로 규칙들을 수행한다.
인스턴스를 시작할 때 보안그룹을 명시하거나 나중에 인스턴스와 보안그룹을 연결할 때에만 인스턴스에 적용된다. 연결된 서브넷 내 모든 인스턴스에 자동적으로 적용된다. (그리하여, 보안그룹이 너무 관대할 경우, 추가적인 방화벽을 제공한다.)
보안그룹 -> 인스턴스 보호
ACL -> 서브넷 보호 -> 인스턴스 보호
스테이트풀과 스테이트레스는 다음에..

 

 

해당 그림은, 보안그룹과 네트워크 ACLs이 적용된 레어이를 보여준다.

 

예를들어, 인터넷 게이트웨이로부터 오는 트래픽은 라우팅테이블 내 라우트를 거쳐 해당 서브넷에 라우팅된다.

 

서브넷과 연결된 네트워크 ACL의 규칙들은 서브넷에 어떤 트래픽을 허용할지 제어한다. (파란색)

 

인스턴스와 연결된 보안그룹의 규칙들은 인스턴스에 어떤 트래픽을 허용할지 제어한다. (회색)

 

오직 보안그룹을 활용하여 인스턴스를 안전하게 할 수 있지만, 추가적인 방화벽으로 네트워크 ACLs을 추가할 수 있다.

 

 

 

보안그룹 생성

보안그룹 생성에는, 특정 서비스가 생성이 될 때 혹은 그 이후에 설정이 가능하다.
그리하여, 이후 진행예정인 RDS생성 혹은 EC2 생성 시, 보안그룹을 생성 혹은 추가가 가능하기 때문에 이후에 추가하도록 하겠다.
이번 편에서는 개념만 잡고 가는 걸로!

 

ACL 생성

Default Network ACL

네트워크 ACL은 default로 VPC가 생성되었을 때 생성된 ACL이 있기 때문에 굳이 수정할 필요는 없다. (additional secure layer를 두고 싶지 않다면 말이다!)

Default Inbound Rules

기본적으로 설정된 규칙 번호를 보면,
100번(IPv4), 101번(IPv6) 규칙을 제외한 모든 *(IPv4), *(IPv6) 트래픽은 모두 제외시킨다는 뜻이다.
모두를 열면서 모두를 제외한다는 게 이상하긴 하지만, 예시로 만들어 두고 이렇게 쓰면 된다~는 것 같다.

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Scenario1.html#nacl-rules-scenario-1
위 주소로 들어가게 되면, 단일 퍼블릭 서브넷이 있는 VPC에 권장되는 네트워크 ACL 규칙이라고 명시되어 있다.

혹은, https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Scenario2.html#nacl-rules-scenario-2
해당 주소로 들어가게 되면, 퍼블릭 및 프라이빗 서브넷이 있는 VPC(NAT)에 권장되는 네트워크 ACL 규칙이 명시되어 있다.

하지만 현재는, 보안그룹만으로도 웬만한 보안셋팅은 가능하다고 판단하여 기본 셋팅을 활용할 것이고, 이름만 바꿔주면 된다!

 

설명이 너무 잘 되어 있어서, 따로 주석을 많이 달지 않았다!
이제 몇개 남지 않았다!
우리 모두 공부 화이팅ㅎㅎㅎ

 

 

 

https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html#VPC_Security_Comparison

 

Internetwork traffic privacy in Amazon VPC - Amazon Virtual Private Cloud

Internetwork traffic privacy in Amazon VPC Amazon Virtual Private Cloud provides features that you can use to increase and monitor the security for your virtual private cloud (VPC): Security groups: Security groups act as a firewall for associated Amazon E

docs.aws.amazon.com