1. Security Group (SG): 가상 방화벽

  • 역할: EC2 인스턴스, RDS, Lambda 등 AWS 리소스에 대한 인바운드(Inbound)아웃바운드(Outbound) 트래픽을 제어.
  • 특징:
    • 상태 기반(Stateful): 인바운드 요청을 허용하면, 이에 대한 응답은 자동으로 허용.
    • 규칙은 허용만 가능(Deny는 설정 불가).
    • 특정 IP, CIDR 범위, 포트, 프로토콜 기반으로 제어 가능.
  • 사용 예:
    • 포트 80(HTTP)과 443(HTTPS)을 허용.
    • 내부 VPC 네트워크에서만 특정 리소스 접근 허용.

2. Network ACL (NACL): 네트워크 레벨의 ACL

  • 역할: 서브넷 수준에서 트래픽을 제어.
  • 특징:
    • 비상태 기반(Stateless): 인바운드와 아웃바운드 규칙을 별도로 설정해야 함.
    • 허용(Allow)과 거부(Deny) 규칙 모두 가능.
    • 규칙은 번호순으로 평가(숫자가 낮은 규칙이 우선 적용).
    • 서브넷에 연결된 모든 리소스에 적용됨.
  • 사용 예:
    • 서브넷 레벨에서 특정 IP의 접근을 완전히 차단.
    • 서브넷에서의 아웃바운드 트래픽을 제한.

3. AWS WAF (Web Application Firewall): 애플리케이션 방화벽

  • 역할: ALB, API Gateway, CloudFront 등의 HTTP/HTTPS 트래픽을 보호.
  • 특징:
    • SQL Injection, XSS(크로스 사이트 스크립팅) 등 웹 공격 차단.
    • IP 허용/차단, 요청 속도 제한(Rate Limiting).
    • 커스텀 규칙 및 AWS Managed 규칙 제공.
  • 사용 예:
    • 악성 요청 차단.
    • IP 블랙리스트/화이트리스트 설정.

4. IAM (Identity and Access Management): AWS 리소스 접근 제어

  • 역할: AWS 서비스와 리소스에 대한 사용자 및 서비스의 권한을 관리.
  • 특징:
    • 사용자, 그룹, 역할(Role)을 기반으로 정책 설정.
    • 특정 서비스(API) 호출만 허용하거나 제한.
    • 리소스 기반 정책(S3, Lambda, API Gateway 등)과도 통합.
  • 사용 예:
    • EC2 인스턴스에서 S3 버킷에 접근하도록 허용.
    • 특정 사용자만 DynamoDB에 쓰기 작업 허용.

5. VPC Endpoint Policy: PrivateLink를 통한 접근 제어

  • 역할: 특정 서비스(S3, DynamoDB 등)에 대한 VPC 내부 트래픽을 제어.
  • 특징:
    • 엔드포인트에 정책을 설정하여 특정 작업(API 호출)을 허용/차단.
    • 인터넷을 거치지 않고 AWS 리소스에 직접 연결.
  • 사용 예:
    • S3 버킷에 대한 VPC 내부에서의 특정 IP 접근만 허용.

6. CloudFront Geo-Restriction 및 Origin Access Control (OAC)

  • 역할: 콘텐츠 배포를 제한하고, S3 등 백엔드 리소스를 보호.
  • 특징:
    • Geo-Restriction: 특정 국가나 지역에서의 접근 차단.
    • OAC: S3 버킷에 CloudFront만 접근하도록 설정.
  • 사용 예:
    • 한국 외 지역에서의 콘텐츠 접근 차단.
    • S3 정적 콘텐츠를 CloudFront로만 서빙.

7. AWS Shield 및 AWS Firewall Manager

AWS Shield

  • 역할: DDoS 공격 방어.
  • 특징:
    • AWS Shield Standard는 모든 계정에서 기본 제공.
    • AWS Shield Advanced는 더 강력한 보호 및 비용 방지 기능 제공.
  • 사용 예:
    • ALB나 CloudFront의 DDoS 공격 보호.

AWS Firewall Manager

  • 역할: 여러 AWS 계정과 리소스에 대한 방화벽 정책 중앙 관리.
  • 특징:
    • WAF, Security Group, VPC NACL 규칙을 계정 단위로 관리.
  • 사용 예:
    • 여러 계정에서 WAF 규칙을 일괄 적용.

8. Elastic Load Balancer (ELB) Listener 및 Rule

  • 역할: 요청의 URL 경로, 도메인, IP에 따라 트래픽 라우팅.
  • 특징:
    • ALB에서 경로 기반(/api, /web) 및 호스트 기반(api.example.com) 라우팅 설정.
    • HTTPS 인증서로 보안 트래픽 처리.
  • 사용 예:
    • /api 요청은 Lambda로, /web 요청은 EC2로 전달.

9. S3 Bucket Policy 및 CORS

  • 역할: S3 버킷에 대한 접근을 제어.
  • 특징:
    • 특정 IAM 사용자, 역할, IP만 허용 가능.
    • CORS 설정을 통해 다른 도메인에서의 액세스를 허용.
  • 사용 예:
    • 특정 VPC에서만 S3 객체 읽기/쓰기 허용.

10. RDS 및 ElastiCache의 Network-Level 접근 제어

  • 역할: 데이터베이스의 네트워크 접근을 제어.
  • 특징:
    • RDS와 ElastiCache는 Security Group으로 접근 제어.
    • 특정 IP 또는 애플리케이션만 데이터베이스에 연결 허용.
  • 사용 예:
    • RDS 데이터베이스에 내부 애플리케이션 서버만 접근 허용.

11. Lambda Function URL

  • 역할: Lambda 함수에 대한 HTTP(S) 엔드포인트 제공.
  • 특징:
    • CORS 설정으로 도메인별 접근 제어.
    • IAM 정책과 연동하여 인증 설정.
  • 사용 예:
    • 특정 사용자만 Lambda URL 호출 허용.

정리

AWS에서 ACL과 Security Group과 같은 역할을 수행하는 도구는 다양한 계층에서 접근과 보안을 관리합니다:

  • 네트워크 계층: Security Group, NACL.
  • 애플리케이션 계층: WAF, API Gateway.
  • 리소스 레벨: IAM, S3 Bucket Policy.
  • 글로벌/배포 레벨: Route 53, CloudFront, Firewall Manager

+ Recent posts