[SCS-C02] 시험 필수! AWS 컴퓨팅 서비스(EC2, Lambda, 컨테이너) 보안 아키텍처 Deep Dive

작성자: aws | 작성일: 2026년 07월 07일 | 조회: 0 | 좋아요: 0

AWS SCS-C02 | Specialty 과정
🔒 [SCS-C02] 시험 필수! AWS 컴퓨팅 서비스(EC2, Lambda, 컨테이너) 보안 아키텍처 Deep Dive
AWS 컴퓨팅 자원의 주요 보안 취약점과 Security Specialty 시험 대비를 위한 핵심 강화 전략 총정리
🎓 학습 안내:

AWS Security – Specialty (SCS-C02) 자격증 시험은 클라우드 환경에서 보안 아키텍처를 설계하고 구현하는 심도 깊은 지식을 요구합니다. 특히, 클라우드 워크로드의 기반이 되는 컴퓨팅 서비스의 보안은 그 어떤 개념보다 중요하게 다루어집니다. Amazon EC2부터 AWS Lambda, 그리고 현대적인 컨테이너 기반 서비스인 ECS, EKS, Fargate에 이르기까지, 각 서비스는 고유한 보안 특성과 고려 사항을 가집니다. 본 강의에서는 이러한 주요 컴퓨팅 서비스들이 가지는 보안 원칙과 AWS 책임 공유 모델 (Shared Responsibility Model)에 따른 고객의 책임 영역을 명확히 이해하고, 시험에 출제될 수 있는 핵심 보안 강화 전략들을 깊이 있게 다룰 것입니다. 실제 운영 환경에서 발생할 수 있는 보안 위협으로부터 컴퓨팅 자원을 보호하는 방법을 학습하며, SCS-C02 시험 합격을 위한 기반을 다지시기 바랍니다.

1. AWS 책임 공유 모델 (Shared Responsibility Model)과 컴퓨팅 서비스

AWS 책임 공유 모델은 클라우드 보안에 대한 AWS와 고객의 책임을 명확히 구분합니다. 일반적으로 AWS는 '클라우드의 보안 (Security of the Cloud)'을 책임지며, 이는 물리적 인프라, 네트워크, 하이퍼바이저 등을 포함합니다. 고객은 '클라우드 내 보안 (Security in the Cloud)'을 책임지며, 이는 운영체제(OS), 네트워크 구성, 애플리케이션, 데이터 등을 포함합니다. 컴퓨팅 서비스 유형에 따라 고객의 책임 범위가 달라지므로, 각 서비스에 대한 이해가 필수적입니다.

  • EC2 (Infrastructure as a Service, IaaS): OS 패치, 애플리케이션 보안, 네트워크 설정, 데이터 암호화 등 대부분의 보안 책임이 고객에게 있습니다.
  • Lambda (Serverless, FaaS): OS, 런타임 환경 등 대부분의 인프라 관리는 AWS가 담당하며, 고객은 코드 보안, IAM 권한, VPC 설정 등을 책임집니다.
  • ECS/EKS/Fargate (Container Services): ECS/EKS는 EC2 인스턴스를 관리해야 하는 반면, Fargate는 컨테이너 수준에서 AWS가 EC2 관리를 대행하므로 고객의 책임이 줄어듭니다. 하지만 컨테이너 이미지 보안, 애플리케이션 보안, IAM 권한 등은 여전히 고객 책임입니다.
  • Elastic Beanstalk (PaaS): 플랫폼 수준의 관리는 AWS가 담당하지만, 애플리케이션 코드, IAM 권한, 네트워크 구성 등은 고객 책임입니다.

2. EC2 인스턴스 보안 (EC2 Instance Security)

EC2는 AWS에서 가장 기본적인 컴퓨팅 서비스이며, 강력한 보안 구성이 필수적입니다.

  • IAM Role (IAM 역할) 할당: EC2 인스턴스가 다른 AWS 서비스(예: S3, DynamoDB)에 접근해야 할 경우, 장기 자격 증명 (long-term credentials) 대신 IAM Role을 사용하여 임시 자격 증명을 부여해야 합니다. 이는 최소 권한의 원칙 (Principle of Least Privilege)을 따르며 보안 취약점을 줄입니다.
  • 네트워크 보안:
    • Security Group (보안 그룹): 인스턴스 수준의 스테이트풀(stateful) 방화벽으로, 인바운드(inbound) 및 아웃바운드(outbound) 트래픽을 제어합니다. 필요한 포트만 개방하고, 소스 IP 범위를 최소화해야 합니다.
    • Network ACL (NACL, 네트워크 ACL): 서브넷 수준의 스테이트리스(stateless) 방화벽으로, 모든 트래픽에 대해 규칙을 명시적으로 허용하거나 거부해야 합니다. NACL은 Security Group보다 더 넓은 범위에서 방어를 제공합니다.
    • VPC Endpoint (VPC 엔드포인트): 프라이빗 서브넷의 EC2 인스턴스가 인터넷을 통하지 않고 S3, DynamoDB 등 AWS 서비스에 안전하게 접근하도록 합니다.
  • 데이터 암호화:
    • EBS Encryption (EBS 암호화): EC2 인스턴스에 연결되는 EBS 볼륨은 AWS KMS (Key Management Service)를 사용하여 암호화해야 합니다. 스냅샷(snapshot)도 자동으로 암호화됩니다.
    • Instance Store Encryption: 인스턴스 스토어(instance store)는 휘발성이므로 민감한 데이터를 저장하지 않는 것이 좋습니다. 만약 사용해야 한다면, 애플리케이션 수준에서 암호화를 구현해야 합니다.
  • 운영체제 및 애플리케이션 보안:
    • AMI Hardening (AMI 강화): 불필요한 소프트웨어, 서비스, 포트를 제거하고 보안 패치가 적용된 AMI (Amazon Machine Image)를 사용합니다.
    • Patch Management (패치 관리): AWS Systems Manager (SSM) Patch Manager를 사용하여 OS 및 애플리케이션의 보안 패치를 정기적으로 적용합니다.
    • Monitoring & Logging (모니터링 및 로깅): CloudWatch Logs를 통해 시스템 로그를 수집하고, CloudTrail을 통해 API 호출 이벤트를 모니터링하여 의심스러운 활동을 탐지합니다. Amazon GuardDuty는 지능형 위협 탐지 서비스로 활용할 수 있습니다.

3. Lambda 함수 보안 (Lambda Function Security)

서버리스 서비스인 Lambda는 AWS가 인프라 관리를 담당하므로, 고객은 애플리케이션 코드와 관련된 보안에 집중해야 합니다.

  • IAM Execution Role (IAM 실행 역할): Lambda 함수에 할당되는 실행 역할은 함수가 다른 AWS 서비스에 접근할 수 있는 권한을 정의합니다. 반드시 최소 권한의 원칙을 적용해야 합니다. 예를 들어, S3 버킷에 객체를 쓸 권한만 필요한 함수에는 해당 S3 버킷에 대한 's3:PutObject' 권한만 부여합니다.
  • VPC 통합 (VPC Integration): Lambda 함수가 VPC 내의 프라이빗 리소스(예: RDS 데이터베이스)에 접근해야 할 경우, 함수를 VPC에 연결하여 보안 그룹 및 네트워크 ACL을 통해 트래픽을 제어해야 합니다. 이 경우, Lambda ENI (Elastic Network Interface)가 생성됩니다.
  • 환경 변수 및 시크릿 관리 (Environment Variables & Secrets Management): 데이터베이스 연결 문자열, API 키 등 민감한 정보는 환경 변수에 직접 저장하는 것을 피해야 합니다. 대신 AWS Secrets Manager 또는 AWS Systems Manager Parameter Store를 사용하여 안전하게 저장하고, Lambda 함수 실행 시 동적으로 가져오도록 합니다.
  • 코드 보안:
    • 불필요한 라이브러리 제거, 입력값 검증 (input validation), 출력값 인코딩 (output encoding) 등 일반적인 애플리케이션 보안 모범 사례를 따릅니다.
    • 코드 서명 (Code Signing)을 사용하여 배포된 코드가 신뢰할 수 있는 소스에서 왔는지 확인하고 변조를 방지합니다.
  • 로깅 및 모니터링: CloudWatch Logs를 통해 Lambda 함수의 로그를 수집하고, CloudWatch MetricsCloudWatch Alarms를 사용하여 이상 징후를 탐지합니다.

4. 컨테이너 서비스 보안 (ECS, EKS, Fargate Container Security)

컨테이너 기반 서비스는 애플리케이션의 배포 및 관리를 효율적으로 만들지만, 컨테이너 이미지, 런타임 환경, 네트워크 등 다양한 보안 고려 사항이 존재합니다.

  • 컨테이너 이미지 보안 (Container Image Security):
    • 신뢰할 수 있는 이미지 사용: Docker Hub와 같은 공개 레지스트리 대신 Amazon ECR (Elastic Container Registry)과 같은 프라이빗 레지스트리를 사용하고, 검증된 이미지만 배포합니다.
    • 취약점 스캔 (Vulnerability Scanning): ECR의 이미지 스캔 기능을 활성화하여 이미지 내 알려진 취약점을 탐지하고 수정합니다. 서드파티 스캐너(예: Clair, Trivy)를 CI/CD 파이프라인에 통합할 수도 있습니다.
    • 최소 이미지 크기: 불필요한 도구와 라이브러리가 포함되지 않은 경량(slim) 기본 이미지(예: Alpine Linux)를 사용하여 공격 표면을 줄입니다.
  • IAM Role for Tasks/Pods (태스크/팟용 IAM 역할): ECS 태스크나 EKS 팟(Pod)에는 개별 IAM Role을 할당하여 컨테이너가 다른 AWS 서비스에 접근할 수 있는 권한을 제어합니다. EKS에서는 IAM Roles for Service Accounts (IRSA)를 사용하여 Kubernetes 서비스 어카운트에 IAM 역할을 연결합니다.
  • 네트워크 보안:
    • 컨테이너가 배포되는 VPCSecurity Group을 적절히 구성하여 인바운드/아웃바운드 트래픽을 제어합니다.
    • EKS에서는 Network Policy (네트워크 정책)를 사용하여 팟(Pod) 간 트래픽을 제어할 수 있습니다.
  • 런타임 보안:
    • Fargate: AWS가 기본 OS 및 컨테이너 런타임 환경을 관리하므로, 고객의 관리 부담이 적습니다.
    • ECS/EKS (EC2 기반): EC2 인스턴스에 대한 OS 패치, 보안 업데이트는 고객의 책임입니다. SSM Patch Manager를 활용합니다.
    • Host Level Security: EC2 기반 컨테이너 호스트에는 CIS 벤치마크와 같은 보안 표준을 적용하고, 호스트 침입 탐지 시스템 (HIDS)을 도입하는 것을 고려합니다.
  • 시크릿 관리: 컨테이너 환경에서도 Secrets Manager 또는 Parameter Store를 사용하여 민감한 데이터를 안전하게 관리하고 컨테이너에 전달합니다.

5. Elastic Beanstalk 보안 (Elastic Beanstalk Security)

Elastic Beanstalk는 애플리케이션 배포를 간소화하는 PaaS (Platform as a Service)이며, 기본적으로 여러 AWS 서비스(EC2, S3, RDS 등)를 활용합니다. 따라서 해당 구성 요소들의 보안을 고려해야 합니다.

  • IAM Role: Elastic Beanstalk는 서비스 역할을 사용하여 AWS 리소스를 프로비저닝하고 관리합니다. 또한, 애플리케이션을 호스팅하는 EC2 인스턴스에 인스턴스 프로파일 역할을 할당하여 다른 AWS 서비스에 접근할 수 있도록 합니다. 두 역할 모두 최소 권한의 원칙을 준수해야 합니다.
  • 네트워크 및 환경 구성: EC2와 마찬가지로 VPC, Security Group, NACL을 통해 네트워크 트래픽을 제어합니다. 로드 밸런서(ELB)를 통해 SSL/TLS를 설정하여 전송 중 데이터를 암호화합니다.
  • 데이터 암호화: Elastic Beanstalk 환경에 연결된 RDS 데이터베이스나 S3 버킷은 반드시 KMS를 사용하여 저장 중 암호화를 활성화해야 합니다.
  • 환경 변수 및 구성 파일 보안: 민감한 정보는 환경 변수에 직접 저장하기보다, Secrets ManagerParameter Store를 활용하여 안전하게 관리해야 합니다. Elastic Beanstalk는 .ebextensions를 통해 커스텀 스크립트를 실행할 수 있으므로, 보안 패치 및 취약점 스캔을 자동화할 수 있습니다.
📌 핵심 요약
AWS 책임 공유 모델을 이해하고, 각 컴퓨팅 서비스 유형별 고객 책임 영역을 명확히 구분해야 합니다.
IAM 역할을 사용하여 컴퓨팅 자원에 최소 권한의 원칙을 적용하고, 장기 자격 증명 사용을 지양해야 합니다.
네트워크 보안은 다계층 방어 (Defense-in-Depth) 전략으로 접근하며, Security Group, NACL, VPC Endpoint를 적절히 활용해야 합니다.
데이터는 저장 중 (at rest) 및 전송 중 (in transit) 모두 암호화해야 하며, 이를 위해 AWS KMS를 적극 활용합니다.
컨테이너 이미지의 취약점 스캔, OS 및 애플리케이션의 정기적인 패치 관리, 그리고 중앙 집중식 로깅 및 모니터링은 필수적인 보안 강화 방안입니다.
💡 시험 합격 Tip

SCS-C02 시험에서는 특정 시나리오에서 어떤 보안 제어를 적용해야 하는지를 묻는 문제가 자주 출제됩니다. 서비스별 책임 공유 모델의 차이점을 명확히 이해하고, 최소 권한의 원칙 (Principle of Least Privilege), 심층 방어 (Defense-in-Depth), 데이터 암호화 (Data Encryption)라는 세 가지 핵심 보안 원칙이 각 컴퓨팅 서비스에 어떻게 적용되는지를 중심으로 학습하세요. 특히, 서버리스 (Lambda, Fargate) 환경과 인스턴스 기반 (EC2, EC2 기반 ECS/EKS) 환경의 보안 관리 차이점에 집중하여 문제 풀이 시 혼동하지 않도록 주의해야 합니다. 문제에 제시된 요구사항(예: 민감한 데이터, 외부 접근 불가 등)을 정확히 파악하고, 이에 가장 적합하고 안전한 AWS 서비스를 선택하는 연습을 꾸준히 하세요.

Amazon EC2AWS LambdaAmazon ECSAmazon EKSAWS FargateAWS Elastic BeanstalkAWS IAM (Identity and Access Management)Amazon VPC (Virtual Private Cloud)AWS KMS (Key Management Service)AWS Secrets ManagerAWS Systems Manager Parameter StoreAWS Systems Manager Patch ManagerAmazon ECR (Elastic Container Registry)Amazon CloudWatchAWS CloudTrailAmazon GuardDuty
🛡️ Deuktem AWS Lecture Bot | 커뮤니티 이동