AWS 보안 주니어 기술면접

AWS 주니어 (1~3년) 보안 10문항 조회수 7 · 2026-09-18 (금) 02:12:03
1 IAM 보안
Easy

Q. AWS IAM 정책(Policy)에서 Principle of Least Privilege(최소 권한 원칙)란 무엇이며, 이를 실무에 적용할 때 어떤 방식으로 권한을 설계해야 하나요?

사용자나 서비스가 작업을 수행하는데 필요한 최소한의 권한만 부여하는 원칙입니다.

A. 모범답안

최소 권한 원칙은 사용자나 서비스가 업무를 수행하는데 필요한 최소한의 권한만 부여하는 보안 원칙입니다. 실무에서는 처음에 모든 권한을 거부하고, 필요한 액션과 리소스에 대해서만 명시적으로 허용합니다. 예를 들어 S3 읽기만 필요한 Lambda라면 s3:GetObject만 허용하고, 특정 버킷으로 Resource를 제한합니다. 와일드카드(*)는 최대한 피하고, 정기적으로 권한을 검토하여 불필요한 권한을 제거해야 합니다. IAM Access Analyzer를 활용하여 과도한 권한을 탐지할 수 있습니다.

핵심 포인트
  • • 최소한의 권한만 부여
  • • 명시적 허용 방식
  • • 와일드카드 사용 최소화
  • • 정기적인 권한 검토
답변에 넣으면 좋은 키워드
최소 권한 원칙 Least Privilege 명시적 허용 IAM Policy Resource 제한 Access Analyzer
실무에서는

Lambda 함수에 IAM Role을 부여할 때 S3 전체가 아닌 특정 버킷과 액션만 허용하여 보안 사고를 예방합니다.

Follow-up 질문

IAM 정책에서 명시적 거부(Explicit Deny)와 암묵적 거부(Implicit Deny)의 차이는 무엇이며, 정책 평가 우선순위는 어떻게 되나요?

2 S3 보안
Medium

Q. S3 버킷이 실수로 퍼블릭 액세스가 허용되어 민감한 데이터가 노출되는 것을 방지하기 위한 AWS의 보안 기능과 설정 방법을 설명해주세요.

S3 Block Public Access 설정과 버킷 정책, ACL 등 여러 계층의 보안 메커니즘을 활용할 수 있습니다.

A. 모범답안

S3 버킷의 퍼블릭 노출을 방지하기 위해 Block Public Access 설정을 계정 및 버킷 레벨에서 활성화해야 합니다. 이 설정은 BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy, RestrictPublicBuckets 네 가지 옵션을 제공합니다. 버킷 정책에서는 Principal을 특정 IAM Role이나 사용자로 제한하고, Condition을 활용해 VPC Endpoint나 특정 IP에서만 접근하도록 설정합니다. S3 Object Ownership을 BucketOwnerEnforced로 설정하여 ACL을 비활성화하고, CloudTrail로 버킷 액세스를 로깅하여 이상 접근을 모니터링합니다. AWS Config의 s3-bucket-public-read-prohibited 규칙을 활성화하여 규정 준수를 자동으로 확인할 수 있습니다.

핵심 포인트
  • • Block Public Access 활성화
  • • 버킷 정책에서 Principal 제한
  • • VPC Endpoint 또는 IP 기반 접근 제어
  • • CloudTrail 로깅 및 AWS Config 규칙
답변에 넣으면 좋은 키워드
Block Public Access 버킷 정책 Principal Condition VPC Endpoint CloudTrail AWS Config
실무에서는

고객 개인정보가 담긴 S3 버킷을 Block Public Access로 보호하고, VPC Endpoint를 통해서만 접근하도록 설정하여 외부 노출을 원천 차단합니다.

Follow-up 질문

S3 버킷 정책과 IAM 정책의 차이점은 무엇이며, 두 정책이 충돌할 때 어떤 우선순위로 평가되나요?

3 네트워크 보안
Medium

Q. VPC 내에서 웹 서버(퍼블릭 서브넷)와 데이터베이스(프라이빗 서브넷)를 분리하여 배치할 때, Security Group과 Network ACL을 어떻게 설정하여 다층 보안을 구현해야 하나요?

웹 서버는 인터넷에서 접근 가능하지만, 데이터베이스는 웹 서버에서만 접근할 수 있도록 제한해야 합니다.

A. 모범답안

퍼블릭 서브넷의 웹 서버 Security Group은 인바운드에서 80/443 포트를 0.0.0.0/0에서 허용하고, 아웃바운드는 DB Security Group으로 3306 포트만 허용합니다. 프라이빗 서브넷의 DB Security Group은 인바운드에서 3306 포트를 웹 서버 Security Group에서만 허용합니다. Network ACL은 서브넷 레벨에서 추가 방어선으로, 퍼블릭 서브넷 NACL은 80/443 인바운드와 Ephemeral 포트 아웃바운드를 허용합니다. 프라이빗 서브넷 NACL은 웹 서버 서브넷 CIDR에서 3306 포트만 허용하고, 인터넷 게이트웨이로의 직접 접근을 명시적으로 거부합니다. Security Group은 상태 저장(Stateful)이고 NACL은 상태 비저장(Stateless)이므로 인바운드와 아웃바운드를 모두 설정해야 합니다.

핵심 포인트
  • • Security Group으로 애플리케이션 계층 제어
  • • NACL로 서브넷 계층 제어
  • • DB는 웹 서버 Security Group에서만 접근 허용
  • • Stateful vs Stateless 차이 이해
답변에 넣으면 좋은 키워드
Security Group Network ACL 다층 보안 Stateful Stateless 인바운드 아웃바운드 Ephemeral 포트
실무에서는

3-tier 아키텍처에서 웹, 앱, DB 계층을 각각 다른 서브넷에 배치하고 Security Group과 NACL로 계층 간 통신만 허용하여 침해 확산을 방지합니다.

Follow-up 질문

Ephemeral 포트란 무엇이며, NACL 아웃바운드 규칙에서 왜 이 포트 범위를 허용해야 하나요?

4 인증/인가
Medium

Q. API Gateway에서 API 키(API Key)와 Lambda Authorizer(Custom Authorizer)의 차이점을 설명하고, 각각 어떤 보안 수준과 사용 사례에 적합한지 설명해주세요.

API 키는 사용량 추적에 더 적합하고, Lambda Authorizer는 복잡한 인증 로직 구현이 가능합니다.

A. 모범답안

API 키는 간단한 식별자로 주로 사용량 추적과 할당량 관리에 사용되며, 보안 메커니즘이라기보다는 클라이언트 식별 수단입니다. x-api-key 헤더로 전달되며 정적이고 장기간 유지됩니다. 반면 Lambda Authorizer는 커스텀 인증 로직을 구현할 수 있어 JWT 토큰 검증, OAuth 토큰 검증, 외부 인증 서버 연동 등이 가능합니다. 요청마다 Lambda 함수가 실행되어 토큰을 검증하고 IAM 정책을 반환하여 세밀한 권한 제어가 가능합니다. API 키는 파트너사 구분이나 요금제별 할당량 관리에 적합하고, Lambda Authorizer는 사용자 인증과 세션 기반 권한 제어가 필요한 경우 사용합니다. 보안이 중요한 경우 Lambda Authorizer와 API 키를 함께 사용하여 다층 보안을 구현할 수 있습니다.

핵심 포인트
  • • API 키는 사용량 추적 용도
  • • Lambda Authorizer는 커스텀 인증 로직
  • • Lambda Authorizer는 IAM 정책 반환
  • • 보안 수준과 사용 사례 차이
답변에 넣으면 좋은 키워드
API Key Lambda Authorizer JWT 사용량 추적 IAM 정책 토큰 검증 x-api-key
실무에서는

모바일 앱 API에서 Lambda Authorizer로 JWT 토큰을 검증하여 사용자별로 접근 가능한 리소스를 제어합니다.

Follow-up 질문

Lambda Authorizer에서 반환하는 IAM 정책의 구조는 어떻게 되며, 정책 캐싱은 어떻게 설정하나요?

5 암호화
Easy

Q. AWS에서 저장 데이터 암호화(Encryption at Rest)와 전송 중 데이터 암호화(Encryption in Transit)의 차이를 설명하고, 각각을 구현하는 AWS 서비스나 방법을 예시를 들어 설명해주세요.

저장된 데이터와 네트워크를 통해 전송되는 데이터를 보호하는 방법이 다릅니다.

A. 모범답안

저장 데이터 암호화(Encryption at Rest)는 디스크나 스토리지에 저장된 데이터를 암호화하여 물리적 접근이나 스토리지 유출 시 데이터를 보호합니다. S3의 SSE, RDS의 암호화 옵션, EBS 볼륨 암호화 등이 해당됩니다. 전송 중 데이터 암호화(Encryption in Transit)는 네트워크를 통해 데이터가 이동할 때 암호화하여 중간자 공격이나 패킷 스니핑을 방지합니다. HTTPS/TLS, VPN, AWS Certificate Manager를 통한 SSL/TLS 인증서 적용이 대표적입니다. 실무에서는 두 가지를 모두 적용해야 하며, 예를 들어 사용자가 HTTPS로 API Gateway에 요청하고(전송 중 암호화), Lambda가 암호화된 RDS에 데이터를 저장(저장 데이터 암호화)하는 방식으로 구현합니다.

핵심 포인트
  • • 저장 데이터 암호화는 스토리지 보호
  • • 전송 중 암호화는 네트워크 통신 보호
  • • S3 SSE, RDS 암호화는 at Rest
  • • HTTPS, TLS는 in Transit
답변에 넣으면 좋은 키워드
Encryption at Rest Encryption in Transit SSE TLS HTTPS 중간자 공격 Certificate Manager
실무에서는

고객 결제 정보를 HTTPS로 전송받아 암호화된 RDS에 저장하여 PCI-DSS 규정을 준수합니다.

Follow-up 질문

TLS 1.2와 TLS 1.3의 차이점은 무엇이며, AWS에서 TLS 버전을 강제하는 방법은 무엇인가요?

6 웹 취약점
Medium

Q. AWS WAF(Web Application Firewall)를 사용하여 SQL Injection과 XSS 공격을 방어할 때 어떤 규칙을 설정해야 하며, CloudFront나 API Gateway와 어떻게 통합하나요?

AWS WAF는 관리형 규칙 그룹과 커스텀 규칙을 제공하며, 요청을 검사하여 차단할 수 있습니다.

A. 모범답안

AWS WAF는 Web ACL을 생성하여 CloudFront, API Gateway, ALB 앞단에 배치할 수 있습니다. SQL Injection 방어를 위해 AWS Managed Rules의 SQLi 규칙 그룹을 활성화하거나, 커스텀 규칙으로 쿼리 문자열과 바디에서 SQL 패턴을 탐지합니다. XSS 방어는 XSS 관리형 규칙 그룹을 사용하거나, <script> 태그와 자바스크립트 이벤트 핸들러 패턴을 차단하는 규칙을 만듭니다. Rate-based 규칙으로 특정 IP의 과도한 요청을 제한하여 DDoS를 방어할 수 있습니다. CloudFront와 통합 시 엣지 로케이션에서 차단하여 오리진 서버 부하를 줄이고, API Gateway와 통합 시 리전 수준에서 보호합니다. WAF 로그를 CloudWatch나 S3에 저장하여 공격 패턴을 분석하고 규칙을 지속적으로 개선해야 합니다.

핵심 포인트
  • • AWS Managed Rules 활용
  • • SQL Injection과 XSS 패턴 차단
  • • CloudFront/API Gateway 통합
  • • Rate-based 규칙으로 DDoS 방어
답변에 넣으면 좋은 키워드
AWS WAF Web ACL SQL Injection XSS Managed Rules Rate-based CloudFront API Gateway
실무에서는

전자상거래 사이트의 CloudFront 앞단에 WAF를 배치하여 SQL Injection 공격을 차단하고, 정상 트래픽은 통과시킵니다.

Follow-up 질문

WAF의 Count 모드와 Block 모드의 차이는 무엇이며, 프로덕션 배포 전에 어떻게 규칙을 테스트해야 하나요?

7 자격증명 관리
Medium

Q. 애플리케이션 코드에서 데이터베이스 패스워드나 API 키를 하드코딩하지 않고 안전하게 관리하기 위해 AWS Secrets Manager를 사용할 때, Lambda 함수에서 시크릿을 조회하고 캐싱하는 모범 사례를 설명해주세요.

Lambda 함수 핸들러 외부에서 시크릿을 조회하고, 주기적으로 갱신하는 전략이 필요합니다.

A. 모범답안

Lambda 함수에서 Secrets Manager를 사용할 때는 핸들러 외부(전역 스코프)에서 시크릿을 조회하여 컨테이너 재사용 시 캐싱 효과를 얻습니다. AWS SDK의 getSecretValue API를 호출하고, 예외 처리를 통해 시크릿이 없거나 권한이 없는 경우를 처리합니다. 시크릿 버전 스테이징 레이블(AWSCURRENT)을 사용하여 최신 시크릿을 가져오고, 자동 로테이션이 설정된 경우 Lambda가 주기적으로 재시작되어 새 시크릿을 가져옵니다. IAM Role에는 secretsmanager:GetSecretValue 권한을 부여하고, 특정 시크릿 ARN으로 제한합니다. VPC Lambda의 경우 Secrets Manager VPC 엔드포인트를 사용하여 인터넷 경유 없이 시크릿을 조회할 수 있습니다. 시크릿 조회 실패 시 재시도 로직과 기본값 처리를 구현해야 합니다.

핵심 포인트
  • • 핸들러 외부에서 시크릿 조회 및 캐싱
  • • 자동 로테이션 지원
  • • IAM 권한 최소화
  • • VPC 엔드포인트 활용
답변에 넣으면 좋은 키워드
Secrets Manager getSecretValue 시크릿 로테이션 Lambda 캐싱 VPC 엔드포인트 IAM Role AWSCURRENT
실무에서는

Lambda 함수에서 RDS 연결 시 Secrets Manager에서 DB 자격증명을 가져와 하드코딩을 피하고, 자동 로테이션으로 보안을 강화합니다.

Follow-up 질문

Secrets Manager의 자동 로테이션 기능은 어떻게 동작하며, RDS 데이터베이스 패스워드를 로테이션할 때 애플리케이션 다운타임을 최소화하는 방법은 무엇인가요?

8 로깅 및 모니터링
Easy

Q. AWS CloudTrail의 역할과 주요 기능을 설명하고, 보안 감사(Security Audit)와 규정 준수(Compliance)를 위해 어떤 이벤트를 로깅해야 하는지 설명해주세요.

CloudTrail은 AWS API 호출을 기록하여 누가, 언제, 무엇을 했는지 추적합니다.

A. 모범답안

CloudTrail은 AWS 계정의 모든 API 호출과 이벤트를 기록하는 감사 로깅 서비스입니다. 관리 이벤트(Management Events)는 리소스 생성, 수정, 삭제 등을 기록하고, 데이터 이벤트(Data Events)는 S3 객체 액세스나 Lambda 함수 실행을 기록합니다. 보안 감사를 위해서는 IAM 정책 변경, Security Group 규칙 수정, S3 버킷 정책 변경, 루트 사용자 로그인 등을 모니터링해야 합니다. CloudTrail 로그는 S3에 저장되며, 로그 파일 무결성 검증을 활성화하여 변조를 방지합니다. CloudWatch Logs와 통합하여 실시간 알람을 설정하고, AWS Config와 함께 사용하여 규정 준수를 자동으로 확인할 수 있습니다.

핵심 포인트
  • • AWS API 호출 기록
  • • 관리 이벤트와 데이터 이벤트
  • • IAM 및 보안 설정 변경 추적
  • • 로그 무결성 검증
답변에 넣으면 좋은 키워드
CloudTrail API 호출 감사 로깅 관리 이벤트 데이터 이벤트 로그 무결성 규정 준수
실무에서는

보안 사고 발생 시 CloudTrail 로그를 분석하여 누가 언제 어떤 리소스를 변경했는지 추적하고 원인을 파악합니다.

Follow-up 질문

CloudTrail 로그에서 루트 사용자 로그인이나 MFA 없는 콘솔 로그인을 탐지하여 자동으로 알람을 보내는 방법은 무엇인가요?

9 인증/인가
Medium

Q. STS(Security Token Service)의 AssumeRole을 사용하여 크로스 계정 액세스를 구현할 때, 신뢰 정책(Trust Policy)과 권한 정책(Permissions Policy)의 역할을 설명하고, 보안을 강화하기 위한 조건(Condition)을 어떻게 설정해야 하나요?

신뢰 정책은 누가 역할을 맡을 수 있는지, 권한 정책은 역할이 무엇을 할 수 있는지 정의합니다.

A. 모범답안

AssumeRole을 사용한 크로스 계정 액세스에서 신뢰 정책(Trust Policy)은 역할을 맡을 수 있는 Principal(계정, 사용자, 서비스)을 정의하고, 권한 정책(Permissions Policy)은 역할이 수행할 수 있는 작업을 정의합니다. 신뢰 정책에는 외부 계정의 ARN을 Principal로 지정하고, Condition으로 ExternalId를 요구하여 혼동된 대리자 문제(Confused Deputy Problem)를 방지합니다. MFA 인증을 요구하려면 aws:MultiFactorAuthPresent 조건을 추가합니다. 소스 IP를 제한하려면 aws:SourceIp 조건을 사용하고, 특정 VPC Endpoint에서만 접근하도록 aws:SourceVpce를 설정할 수 있습니다. 세션 지속 시간(DurationSeconds)을 최소화하여 임시 자격증명의 유효 기간을 제한하고, 역할 세션 이름(RoleSessionName)으로 사용자를 추적할 수 있습니다.

핵심 포인트
  • • 신뢰 정책은 Principal 정의
  • • 권한 정책은 작업 정의
  • • ExternalId로 혼동된 대리자 방지
  • • MFA, SourceIp 등 조건 활용
답변에 넣으면 좋은 키워드
AssumeRole STS 신뢰 정책 권한 정책 ExternalId Confused Deputy Condition 크로스 계정
실무에서는

파트너사에게 자사 S3 버킷 읽기 권한을 제공할 때 AssumeRole과 ExternalId를 사용하여 안전하게 크로스 계정 액세스를 구현합니다.

Follow-up 질문

ExternalId는 정확히 어떤 보안 문제를 해결하며, 어떤 값을 사용해야 안전한가요?

10 개인정보 보호
Medium

Q. GDPR이나 개인정보보호법 준수를 위해 사용자의 삭제 요청(Right to be Forgotten)을 처리해야 할 때, S3와 RDS에 분산 저장된 개인정보를 완전히 삭제하기 위한 아키텍처와 고려사항을 설명해주세요.

백업, 로그, 캐시 등 여러 위치에 분산된 데이터를 모두 삭제해야 하며, 삭제 증적을 남겨야 합니다.

A. 모범답안

사용자 삭제 요청 시 RDS의 개인정보 테이블에서 해당 레코드를 DELETE하고, S3에 저장된 사용자 파일(프로필 사진, 업로드 파일 등)을 삭제합니다. RDS 자동 백업과 스냅샷에는 삭제 전 데이터가 남아있으므로, 보관 기간 경과 후 자동 삭제되도록 설정하거나 수동 스냅샷을 별도 관리합니다. S3 버전 관리가 활성화된 경우 이전 버전까지 모두 삭제하고, CloudFront 캐시도 무효화합니다. CloudWatch Logs, CloudTrail 로그에 포함된 개인정보는 로그 보관 정책에 따라 삭제하거나 익명화합니다. ElastiCache에 캐싱된 데이터는 TTL 만료를 기다리거나 명시적으로 삭제합니다. 삭제 작업은 Step Functions로 오케스트레이션하여 각 단계를 추적하고, 삭제 완료 후 감사 로그를 별도 테이블에 기록하여 규정 준수 증적을 남깁니다.

핵심 포인트
  • • RDS, S3, 백업, 로그 등 모든 위치에서 삭제
  • • S3 버전 및 CloudFront 캐시 무효화
  • • 삭제 프로세스 오케스트레이션
  • • 감사 로그로 증적 관리
답변에 넣으면 좋은 키워드
GDPR Right to be Forgotten 개인정보 삭제 RDS 백업 S3 버전 CloudFront 무효화 Step Functions 감사 로그
실무에서는

전자상거래 플랫폼에서 회원 탈퇴 시 주문 이력 제외 모든 개인정보를 삭제하고, Step Functions로 삭제 프로세스를 자동화하여 GDPR을 준수합니다.

Follow-up 질문

RDS 자동 백업에 남아있는 삭제된 사용자 데이터를 즉시 제거할 수 없는 경우, 규정 준수를 위해 어떤 보완 조치를 취할 수 있나요?

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!