일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 게시글 이미지
- 네비게이션 한번에
- 쿼리스트링
- Winston
- 메뉴바
- 포트번호
- unnest
- JSON Web Token
- 환경변수
- 메뉴바 한번에
- N+1문제
- JWT 쓰는이유
- .env
- secret코드
- JWT
- N+1
- 스테이지어스
- 레포지토리
- 토큰
- 3계층구조
- 이미지가 포함된 게시글
- 게시글 이미지 업로드
- element.style
- 패스파라미터
- route 53
- 부트캠프
- 알림생성모듈
- JWT 쓰는 방법
- getComputedStyle
- 알림생성
- Today
- Total
기주
[AWS] 보안그룹 알아보기 본문
보안그룹
Network Access Control List(NACL)와 함께 방화벽의 역할을 하는 서비스
Port 허용
-기본적으로 모든 포트는 비활성화
-선택적으로 트래픽이 지나갈 수 있는 Port와 Source를 설정가능
-Allow 방식으로만 설정가능.
-Deny는 불가능 -> NACL로 가능함
-인스턴스 단위(정확히는 ENI(elastic network interface)단위)
-NACL의 경우 서브넷 단위
-하나의 인스턴스에 하나 이상의 보안그룹 설정가능
-설정된 인스턴스는 설정한 모든 보안그룹의 룰을 적용 받음
-기본적으로 VPC단위 VPC안에서 생성하고 관리
-기본 VPC가 아니고 리전이 같다면 서로 다른 VPC에서 같은 보안그룹을 사용할 수 있다.
-보안그룹은 기본적으로 포트를 허용하는 식(Allow)으로만 조건 설정가능하다.
-보안그룹은 Stateful
-> 인바운드로 들어온 트래픽이 별 다른 아웃바운드 검증 없이 나갈 수 있다.
-NACL은 Stateless
보안그룹이 Stateful하다는 것의 의미
클라이언트에서 서버로 요청을 보낼 때 송신자와 수신자의 IP와 포트를 적는다.(편지처럼) 이때 클라이언트(송신자)의 포트에는 운영체제가 안쓰는 포트(에페머럴 포트 (임시포트))를 무작위로 할당해서 요청보낸다. 서버가 응답할 때는 그 에페메럴 포트를 기억해놨다가 클라이언트(수신자)의 포트로 보내준다. 에페메럴 포트로 요청받았으니 에페메럴 포트로 응답을 보내주는 것이다.
이때 보안그룹은 stateful하기에 인바운드로 들어온 트래픽은 아웃바운드에서 허용한 포트가 아니어도 응답을 제대로 보내준다.(1번 검증)
반면 Stateless한 서비스(NACL)는 들어오는 트래픽과 나가는 트래픽을 따로 검증(2번검증)하기 때문에 트래픽이 들어와도 응답 트래픽의 포트가 막혀있다면 막힌다.
그런데 요청의 송신자 포트인 에페머럴 포트는 무작위로 매번 바뀌기 때문에 어떤 포트번호로 요청이 올 지 모른다. 에페메럴 포트는 운영체제마다 범위가 다른데, 범위 자체를 아웃바운드 포트 범위로 설정하는게 좋다.
보안그룹의 Source
IP Range(CIDR)
접두사 목록
다른 보안그룹(보안그룹 참조)
접두사 목록(Prefix List)
-하나 이상의 CIDR 블록의 집합
-보안 그룹 혹은 Route Table에서 많은 대상을 참조하는 IP목록
-두가지종류
1.고객관리형: 직접 IP주소 목록를 생성/수정/삭제할 수 있으며 다른 계정과도 공유가능
2.AWS관리형: AWS의 서비스들을 위한 IP목록, 수정,삭제,업데이트가 불가능함
바뀌기도하지만 AWS가 그 부분은 직접 관리해줘서 관리하지 않아도 된다.
(DynamoDB, S3, CloudFront)
-Ipv4, ipv6 둘다 사용가능, 단 한 접두사 목록에 두가지 타입을 동시에 사용 불가능
-생성 시점에 최대 엔트리 숫자를 지정(이후 변경 가능)
-접두사 목록을 만들어 놓고 보안그룹을 설정하면 더 쉽게할 수 있다. 특정 ip들을 그룹화해놓고 이를 레퍼런스(참조) 하도록 쓰면 쉽다.
보안그룹 참조
특정 보안그룹에서 오는 트래픽만을 받도록 설정할 수 있다.
보안그룹 내에서 ec2와 같이 IP주소가 바뀔때 별다른 수정이 필요없다.
만약 오토스케일링 보안그룹과 로드 밸런서가 있는 상황에서 사용자가 EC2에 직접 접근하는 방식을 막고싶다면 보안그룹에서 로드밸런서에서 오는 요청만 받아들이도록 하면 된다.
이때 단순히 로드밸런서의 IP를 등록하는 방식을 쓰면 로드밸런서의 IP가 자주 바뀌기 때문에 수정을 자주해야한다.
하지만 로드밸런서용 보안그룹을 따로 만든뒤 이를 오토스케일링 용 EC2 보안그룹에 등록한다면 로드밸런서의 IP가 자주 변동되어도 문제없다.
유저가 EC2에 직접 개별접근하는 것을 허용하지 않고 로드밸런서로거쳐서 오는 요청만 받도록 보안그룹 설정하기
1. 로드밸런서용 보안그룹 생성
2. EC2 보안그룹 생성
인바운드규칙: 로드밸런서 보안그룹 등록
3. 로드밸런서에는 로드밸런서용 보안그룹 설정, EC2에는 EC2 보안그룹 설정하기.
인스턴스-보안그룹변경-보안그룹추가, 기존 보안그룹 제거
'devops > AWS' 카테고리의 다른 글
[AWS] VPC와 서브넷 (0) | 2025.02.19 |
---|---|
[AWS] AWS S3 / CloudFront 를 이용해서 정적 웹서비스 배포하기 (0) | 2024.12.14 |
[AWS]EC2 용량(스토리지)확장하기 (0) | 2024.12.10 |
[AWS] AWS ECR을 활용해서 EC2에서 도커로 배포하기-2 (0) | 2024.12.08 |