네트워크 보안
일반적인 측면에서 접근 제어는 보안상 위협으로부터 제반 시설 및 환경을 보호하기 위한 보안 대책입니다. 인가된 대상은 접근에 허용하고, 인가되지 않은 대상은 접근을 거부하여 보안 측면을 강화할 수 있습니다
접근 제어 절차
식별 -> 인증 -> 권한
기본적으로 대상을 식별하는 대상을 식별하는 작업이 선행이 되어야 합니다. 식별된 대상에 대한 인증을 수행하여 적합한 대상인지 판단을 할 것이며, 정책에 따라 허용, 거부, 제한적인 허용 등의 권한을 부여하여 접근에 대한 제어를 수행합니다
네트워크 입장에서 마찬가지로 인가된 대상만 접근을 허용하고, 인가되지 않은 대상은 접근을 거부하는 접근 제어 정책을 통해 보안 측면을 강화할 수 있습니다. 그렇다면 여기서 대상을 식별하는 기준을 무엇이 될까요? 일반적으로 IP주소를 통해 대상을 식별하거나 프로토콜과 포트 번호를 통해 서비스를 식별하는 기준이 될 수 있습니다.
(식별은 보통 IP주소 프로토콜과 포트 번호를 통해 한다)
트래픽:데이터 용량
보안 그룹과 네트워크 ACL
AWS에서는 네트워크 인프라 보호를 위한 트래픽 제어 정책으로 보안 그룹과 네트워크 ACL기능을 활용합니다. 보안 그룹과 네트워크 ACL은 IP 주소와 프로토콜과 포트 번호를 통해 대상을 식별하고 정책에 따라 대상의 허용 여부를 판단합니다. 이러한 보안 그룹과 네트워크 ACL은 트래픽의 방향성에 따라 인바운드 큐칙과 아웃바운드 규칙으로 나누어 집니다
인바운드 아웃바운드
인바운드와 아웃바운드의 방향의 기준은 AWS 인프라 입장이다.
외부에서 AWS 인프라로 들어오는 것은 인바운드 규칙이고 AWS인프라에서 외부 대상으로 나가는 방향은 아웃바운드 규칙입니다
보안 그룹과 네트워크 ACL의 차이점
보안 그룹과 네트워크 ACL은 트래픽 제어를 수행하는 AWS 대상이 다릅니다 보안 그룹은 인스턴스 레벨 접근 제어를 수행합니다. EC2 인스턴스나 ALB등과 같은 대상에 대한 접근 제어 정책이 보안 그룹입니다. 반명에 네트워크 ACL은 서브넷 접근 제어를 수행합니다. VPC 내부에 생성한 서브넷 네트워크에 대한 접근 제어 정책이 네트워크 ACL 입니다.
Stateful vs Stateless
먼저 stateful과 stateless의 차이를 먼저 알아보면, stateful은 이전 상태 정보를 기억하고 있다가 다음 단계에서 그 상태 정보를 활용할 수 있는 것이고 반대로 stateless이전 상태 정보를 기억하지 않아서 다음 단계에 관여하지 않습니다
클라이언트가 175.121.214.107이고
서버가 13.124.105.122이다
즉 stateful은 인스턴스의 인바운드 조건만 충족을 시키고 아웃바운드가 설정이 되어있지 않더라도 이전 상태 정보를 기억해 클라이언트에게 까지 정보를 전달해 준다
stateless은
조금 고지식하다고 볼 수 있는데 결론적으로 말하면 인스턴스의 인바운드 아웃바운드 권한이 정확하게 설정 되어있어야 트레픽을 서버도 주고 클라이언트도 주고 할 수 있다
허용/거부 규칙
보안 그룹은 허용 규칙만 존재한다. 허용 규칙만 나열하며 그 대상이 아닌 것은 자동으로 거부가 됩니다.
ACL은 허용 규칙과 거부 규칙 둘 다 존재합니다 네트워크 ACL의 규칙을 순차적으로 확인합니다. 순서를 확인하기 위한 스퀀스(들어온 데로 1부터 ~번호가 생긴다) 넘버가 존재하며 가장 작은 숫자부터 순차적으로 확인을 합니다. 각 규칙 별로 대상의 허용과 거부를 지정할 수 있으며, 매칭되는 대상이 있으면 하위 규칙을 더는 확인하지 않습니다. 그리고 마지막 규칙은 모든 트래픽에 대해 거부하는 규칙을 자동으로 가지고 있습니다.
VPC플로우 로그
VPC플로우 로그는 VPC에 속한 네트워크 인터페이스에서 송수신 되는 트래픽에 대한 정보를 수집할 수 있는 기능입니다. 이를 통해 네트워크 연결 문제 해결, 보안 문제 확인, 네트워크 접근 제어 정책이 정상적으로 동작하는지 확인해 볼 수 있습니다. 특정 유형의 트래픽을 감지하여 알람을 만들거나 트래픽의 변화와 패턴을 파악하기 위한 통계 지표도 만들 수 있습니다.
이 vpc 플로우 로그는
인스턴스에 인터페이스에 플로우 로그 그룹을 구설할 수 있고 서브넷에 플로우 로그 레코드를 사용할 수 있습니다
참고로 vpc플로우 로그를 생성한 후 데이터를 수집하여 플로우 로그 레코드를 게시하는 데 1분에서 또는 10분까지 집계 기간에 따라 시간이 소요될 수 있습니다. 즉 VPC플로우 로그는 네트워크 인터페이스에 대한 로그 정보를 실시간으로 게시하지는 않습니다
vpc에서 플로우 로그를 활성화 하면 대상 네트워크 인터페이스로 송수신되는 정보를 수집하는데, 이때 보이는 정보 형태를 플로우 로그 레코드라고 합니다
여기서 참고 했습니다
https://www.youtube.com/watch?v=IwaJoXpO4l4&t=146s