일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인프런백기선
- CleanCode
- 이펙티브자바
- MariaDB
- 이펙티브 자바
- DDD
- 스프링부트와AWS로혼자구현하는웹서비스
- 인덱스
- vue.js
- 기술면접
- AWS
- jpa
- 자바
- react
- SQL쿡북
- 자바스터디
- java
- 클린코드
- 알고리즘
- 알고리즘분석
- 자료구조
- 네트워크
- 자바예외
- mysql
- aop
- AWS RDS
- 인프런김영한
- 이팩티브 자바
- 도메인 주도 개발 시작하기
- 혼공SQL
- Today
- Total
기록이 힘이다.
[AWS 네트워크 입문] 7장 네트워크 보안 본문
1. 보안 그룹과 네트워크 ACL
접근 제어
보안상 위협으로부터 제반 시설 및 환경을 보호하기 위한 보안 대책입니다. 인가된 대상은 접근에 허용하고, 인가되지 않은 대상은 접근을 거부하여 보안 측면을 강화할 수 있습니다.
식별 ---> 인증 ---> 권한
IP 주소를 통해 대상을 식별하거나 프로토콜과 포트 번호를 통해 서비스를 식별하는 기준이 될 수 있습니다.
보안 그룹과 네트워크 ACL
IP 주소와 프로토콜과 포트 번호를 통해 대상을 식별하고 제어 정책에 따라 대상의 허용 여부를 판단합니다. 트래픽의 방향성에 따라 인바운드 규칙과 아웃바운드 규칙으로 나뉘어 집니다.
보안 그룹 | 네트워크 ACL | |
트래픽 제어 대상 | 인스턴스 레벨 | 서브넷 레벨 |
이전 상태 정보 기억 | Stateful(기억) | Stateless(기억 X) |
허용/거부 규칙 | 허용 규칙만 존재 | 허용/거부 규칙 존재 |
2. VPC 플로우 로그
VPC에서 속한 네트워크 인터페이스에서 송수신되는 트래픽에 대한 정보를 수집할 수 있는 기능입니다. 이를 통해 네트워크 연결 문제 해결, 보안 문제 확인, 네트워크 접근 제어 정책이 정상적으로 동작하는지 확인해 볼 수 있습니다. 특정 유형의 트래픽을 감지하여 알람을 만들거나 트래픽의 변화와 패턴을 파악하기 위한 통계 지표도 만들 수 있습니다.
VPC 플로우 로그는 네트워크 인터페이스에 대한 로그 정보를 실시간으로 게시하지는 않습니다.
VPC 플로우 로그 레코드의 기본 형식
<ver> <acco-id> <inf-id> <srcaddr> <dstaddr> <srcport> <dstport> <prot> <pkts> <bytes> <start> <end> <act> <log-stat>
VPC 플로우 로그를 통해 VPC 로그 정보를 수집하려면 IAM 정책과 역할을 달성해야 합니다. --> 7절에서
보안 그룹과 네트워크 ACL 차이와 VPC 플로우 로그
보안 그룹 - 인바운드 Stateful 검증
사용자 PC 에서 Server-EC2 로 SSH 접근을 시도하면, 보안 그룹의 인바운드 규칙을 확인합니다. 접 근 허용 되고 도달합니다. 보안 그룹은 Stateful 동작을 하므로 인바운드 규칙에 허용된 대상은 아웃바운드 규칙을 무시하고 전달합니다.
보안 그룹 - 아웃바운드 Stateful 검증
외부 인터넷 구간으로 HTTP 접근을 시도하면 실패하게 됩니다. 아웃바운드 규칙이 존재하지 않아 거부.
외부 웹 서버로 도달 stateful 동작을 하므로 아웃바운드 규칙에서 허용된 대상은 인바운드 규칙을 무시하고 전달
VPC 플로우 로그 확인
보안 그룹에 의해 허용되거나 거부된 로그 정보들을 확인
기본적으로 vpc 에서는 플로우 로그가 비활성화 상태
IAM 정책과 역할 CloudWatch 로그 그룹을 생성해둔다
https://ongja.notion.site/ongja/CNBA71-VPC-IAM-6029e5e1e79c4261ac791b447d211304
[CNBA71] VPC 플로우 로그 IAM 권한 설정
작성자 : ongja.cloudnet@, 업데이트 : 2020.08.21
ongja.notion.site
VPC -> 가상 프라이빗 클라우드 -> VPC -> 'My-VPC' 선택 -> 작업 -> 플로우 로그 생성
vpc 플로우 로그는 vpc 내 네트워크 인터페이스별로 로그 정보를 수집합니다.
인바운드 규칙에 HTTP 추가하면 접근이 가능하다 CloudWatch Logs 에 로그 스트림 확인
보안 그룹은 인스턴스 레벨에서 개별 관리 _==> Server-EC2-2에 같은 방법으로 접근 안됨
네트워크 ACL 을 통한 접근 제어
네트워크 ACL의 인바운드 규칙을 확인 후 보안 그룹 인바운드 규칙도 확인하며, 아웃바운드도 마찬가지 .
Stateless 동작으로 인바운드 규칙에서 허용하더라도 아웃바운드 규칙을 확인합니다.
서브넷 레벨에서 접근 제어를 수행하기 때문에 동일 서브넷에 속한 Server-EC2와 Server-EC2-2는 동일한 영향
일반적으로 접근 제어 보안은 보안 그룹을 통하여 대부분 필터링 하지만 IP 대역 레벨에서 차단이 필요할 경우 네트워크 ACL을 사용합니다. 네트워크 ACL은 Stateless이기 때문에 인바운드 규칙과 아웃바운드 규칙 설정에 민감하여 잘 안쓰는 편.
3. VPC 트래픽 미러링
트래핑 미러링이란 네트워크 환경에서 발생하는 트래픽을 복제하여 특정 장치로 전달하여 해당 정보를 모니터링할 수 있는 기능입니다.
VPC 플로우 로그 | VPC 트래픽 미러링 |
-VPC 상 네트워크 플로우를 로그 형태로 표현 -타깃: S3 버킷이나 CloudWatch Logs로 전달 -구조: 레코드 형태로 제한된 필드 정보 제공 |
-VPC 상 트래픽의 실제 네트워크 패킷 정보를 수집 -타깃: 다른 ENI나 NLB로 전달 -구조: 실제 네트워크 패킷 |
VPC 트래픽 미러링 구성
미러 소스 / 미러 타깃 / 미러 필터 / 미러 세션
VPC 트래픽 미러링 동작
미러 타깃 지정 -> 미러 필터 구성 -> 미러 세션 생성(소스, 타깃, 필터 연결)
VPC 트래픽 미러링 제약 사항
EC2 인스턴스 유형의 제약 -Nitro 유형만 지원
미러 소스와 미러 타깃의 위치 - 동일한 VPC에 속해 있거나 다른 VPC라면 VPC 피처링이나 전송게이트웨이를 통해 연결되어 있어야 합니다.
미러 세션 수 - 계정 당 1,000개의 제약, 네트워크 인터페이스 당 3개
트래픽의 프로토콜 제약 - ARP, DHCP, NTP, EC2 메타데이터 X
4. AWS WAF(Web Application Firewall)
WAF란 웹 애플리케이션 보안에 특화된 전용 방화벽입니다. SQL Injection 공격, XSS 공격, CSRF 공격 등과 같이 웹 서비스 취약점에 대한 공격을 탐지하고 차단하는 기능을 수행합니다. 웹 접근 트래픽에 대한 페이로드 분석 및 패턴 기반의 필터링을 통해 공격을 탐지하고 차단할 수 있습니다.
과거에는 시스템과 네트워크 공격이 중심이었다면, 요즘에는 웹 애플리케이션 공격이 높아지고 있습니다. 가트너에 따르면 모든 정보 보안 공격에 75% 이상이 웹 애플리케이션 대상이라고 추산하고 있습니다.
AWS WAF 를 AWS 서비스 중에서 CloudFront, ALB, API Gateway에 배포할 수 있습니다.
주요 기능
웹 트래픽 필터링 / 자동화 및 유지 관리/ 가시성 보장(CloudWatch)/ AWS Firewall Manager와 통합
구성
단계별로 Web ACL, Rule, Statement로 구성됩니다.
특장점
민첩한 보안 / 동적 확장 / 효율적인 비용 / 손쉬운 배포 및 유지 관리 / API를 통한 자동화
기본 환경에서 웹 취약점 검증
계정 정보 목록이 모두 노출. 웹 서버 리눅스 쉘에서 필요한 정보들을 확인.
Web ACL 생성
서비스 -> WAF & Shield -> AWS WAF -> Web ACLs -> Create Web ACL
- Step 1
- Step 2
직접적인 연결이 아닌 VPN이나 Proxy, Tor node에 의해 접근하는 대상을 차단
OWASP에서 정의한 웹 주요 취약점을 탐지하여 차단
허가되지 않는 SQL Injection 공격을 탐지하여 차단
- Step 3
- Step 4
- Step 5
Review and create web ACL
AWS WAF의 Web ACL은 CloudFront, ALB, API Gateway에 배포할 수 있습니다.
취약점 공격 검증
SQL database
NoExecURI
Core rule set
Anonymous IP List에 의하여 차단됨
Block 설정이 아닌 Count 설정을 통해 탐지 상태를 카운트할 수도 있습니다.
CloudWatch 그래프 형태로 확인 가능
5. AWS IAM(Identity & Access Management)
AWS 서비스와 리소스에 대한 액세스를 안전하게 관리하는 기능입니다. AWS 사용자 및 그룹을 만들고 관리하거나 권한을 통해 AWS 리소스에 대한 액세스를 허용하거나 거부할 수 있습니다. AWS IAM은 대부분의 AWS 서비스와 연결되어 활용할 수 있으며, 추가 비용 없이 제공하고 있습니다.
IAM 세부 요소
IAM 사용자와 그룹
IAM 정책(Policy)
- 자격 증명 기반 정책
- 리소스 기반 정책
- 정책 구성 요소 : JSON 형식으로 구성, 가장 제한적인 정책 우선
IAM 역할
IAM 주요 기능
강화된 보안
세부적인 제어 관리
임시 자격 증명
액세스 분석
외부 자격 증명 활용
AWS CloudTrail
AWS 계정의 관리, 규정 준수, 운영 및 위험 감사를 지원하는 서비스입니다.
발생한 모든 행위에 대한 이벤트를 한 곳으로 모아서 분석, 리소스 변경 추적, 문제 해결을 간소화할 수 있습니다.
모범 사례 조치 사항
모든 리전에 CloudTrail을 활성화하여 AWS의 모든 API 호출에 대한 이력을 남깁니다.
CloudTrail 로그파일의 무결성 확인을 위해 Validation 옵션을 활성화합니다.
CloudTrail 로그파일을 저장하는 S3 버킷에 대해 퍼블릭 접근을 차단합니다.
CloudTrail 로그파일을 저장하는 S3 버킷에 대해 액세스 로그를 지정합니다.
CloudTrail과 CloudWatch를 연계하여 동일 모니터링 툴에 의해 같이 모니터링합니다.
'개발환경 > AWS' 카테고리의 다른 글
[AWS 네트워크 입문] 6장 네트워크 연결 옵션 (0) | 2023.09.01 |
---|---|
[AWS 네트워크 입문] 5장 부하 분산 (0) | 2023.08.26 |
[AWS 네트워크 입문] 4장 인터넷 연결 (0) | 2023.08.23 |
[AWS 네트워크 입문] 3장 VPC 고급 (0) | 2023.08.22 |
[AWS 네트워크 입문] 2장 VPC (0) | 2023.08.08 |