✅ Domain 3: 보안 아키텍처 설계 - 서비스 간 비교, 활용 맥락, 추천 설계 방식
✅ 3. 보안 및 접근 제어 관련 핵심 개념과 서비스
🔒 핵심 목표
- 리소스에 대한 최소 권한 원칙(Least Privilege)
- 인증(Authentication)과 권한 부여(Authorization) 구분
- 데이터 보호(암호화, 접근 통제)
📌 자주 출제되는 보안 관련 서비스 및 개념
① IAM (Identity and Access Management)
- AWS 사용자/그룹/역할/정책을 관리
- 정책(Policy)을 통해 리소스 접근 제어 (JSON 형식)
- 유형:
- 사용자(User): 사람 계정
- 그룹(Group): 사용자 묶음
- 역할(Role): 다른 서비스나 사용자에게 임시 권한 부여
- 정책(Policy): 권한을 정의 (예: S3 접근 가능)
📌 예시 문제:
“EC2 인스턴스가 S3에 접근해야 할 때 가장 안전한 방식은?”
✅ 정답: IAM 역할(Role)을 인스턴스에 할당
② IAM Policy
- JSON 문서로 구성
- 두 종류:
- 관리형 정책(Managed Policy): AWS 또는 사용자가 만든 정책
- 인라인 정책(Inline Policy): 특정 사용자/그룹/역할에 직접 연결된 정책
🔍 Policy 예시
{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::my-bucket/*" }
③ IAM Role + AssumeRole
- EC2, Lambda 등 AWS 리소스가 다른 리소스에 접근할 수 있도록 역할을 부여
- AssumeRole: 다른 계정이나 서비스가 일시적으로 역할을 "가정"할 수 있음
④ Amazon KMS (Key Management Service)
- 데이터 암호화 및 키 관리 서비스
- S3, EBS, RDS, Lambda 등에서 **기본 또는 고객 관리형 키(CMK)**로 암호화 가능
- CloudTrail과 함께 키 사용 이력 추적 가능
📌 출제 포인트:
- 어떤 암호화 방식/키 사용이 가장 적절한지 선택
⑤ S3 버킷 정책 vs ACL
- 버킷 정책(Bucket Policy): JSON 기반, S3 리소스에 대한 권한 부여
- ACL(Access Control List): 세부적인 객체 수준 권한 (구식 방식 – 가급적 피해야 함)
- 블록 퍼블릭 액세스 설정: 실수로 퍼블릭 공개 방지
⑥ 보안 그룹(Security Group) vs NACL(Network ACL)
항목 | Security Group | NACL |
작동 방식 | 상태 저장(Stateful) | 상태 비저장(Stateless) |
적용 대상 | EC2 인스턴스 등 | 서브넷 |
규칙 방향 | Inbound/Outbound 모두 명시 | Inbound/Outbound 각각 설정 필요 |
특징 | 허용 규칙만 있음 | 허용/거부 모두 가능 |
📌 문제 예시:
Q. 보안 그룹은 상태 저장인가요, 상태 비저장인가요?
✅ 정답: 상태 저장 (Stateful)
⑦ AWS WAF (Web Application Firewall)
- 웹 애플리케이션을 SQL Injection, XSS 등의 공격으로부터 보호
- CloudFront, ALB, API Gateway와 연동 가능
⑧ AWS Shield / AWS Shield Advanced
- DDoS 공격 보호
- 기본 Shield는 모든 고객에게 자동 제공 (무료)
- Advanced는 더 강력한 보호 + SLA + 실시간 대응 지원
⑨ AWS Organizations + SCP (Service Control Policies)
- 여러 계정 관리를 위한 통합 서비스
- SCP로 각 계정의 리소스 사용 제약 가능 (예: 특정 계정에서 S3만 허용)
⑩ CloudTrail / CloudWatch
- CloudTrail: AWS 계정의 API 호출 로그 기록 (감사 및 추적용)
- CloudWatch Logs: EC2, Lambda 등에서 애플리케이션 로그 모니터링 가능
- 보안 사건 추적과 분석에 자주 사용됨
🔹 IAM 정책 및 최소 권한 원칙 (Least Privilege)
항목 | 설명 | 활용 포인트 |
IAM User/Group | 사용자 단위 접근 제어 | 최소 권한 원칙 구현 시 기본 단위 |
IAM Role | 리소스에 부여하는 임시 권한 | EC2, Lambda 등 AWS 서비스가 다른 서비스에 접근할 때 사용 |
IAM Policy | JSON 형식 권한 문서 | 서비스, 리소스, 작업(Action) 단위로 세밀한 제어 |
SCP (Service Control Policy) | 조직 계정 전체에 제한 | AWS Organizations 사용 시 루트 계정까지 정책 적용 가능 |
🔹 암호화 관련 서비스 비교
항목 | KMS | S3 | RDS | EBS |
암호화 방법 | CMK 기반 서버 측 암호화 | SSE-KMS, SSE-S3, SSE-C | 생성 시 암호화 적용 (AES-256) | 자동 암호화 가능 |
활용 방식 | 직접 호출하거나 연동 | PUT 시 암호화 설정 | DB 자동 암호화 및 키 관리 | 볼륨 단위 암호화 |
추천 설계 | 표준 키 관리 및 감사 | 중요 파일 저장 시 필수 | 민감 DB, 로그 저장용 | 로그, 루트 볼륨 등 민감한 볼륨 보호 |
🔹 네트워크 보안: Security Group vs NACL
항목 | Security Group | NACL (Network ACL) |
작동 레벨 | 인스턴스 단위 | 서브넷 단위 |
상태 | 상태 저장(Stateful) | 상태 비저장(Stateless) |
방향성 | 인바운드/아웃바운드 분리 | 포트별로 허용/거부 설정 가능 |
추천 설계 | EC2 또는 RDS 접근 제어 | 전체 서브넷의 공통 규칙 설정 시 |
🔹 로깅 및 감시: CloudTrail vs AWS Config
항목 | AWS CloudTrail | AWS Config |
기능 | API 호출 추적 및 기록 | 리소스 구성 변경 기록 |
범위 | 계정/서비스/리전 전반 | 특정 리소스 중심 |
활용 | 보안 감시, 포렌식 분석 | 컴플라이언스, 보안 정책 검사 |
예시 | “누가 S3 버킷 삭제했는가?” | “EC2 인스턴스 유형 변경 여부 기록” |
🔹 인증 및 접근 제어 서비스 요약
서비스 | 용도 |
MFA | 계정 보안 강화 (2차 인증) |
STS | 임시 보안 자격 증명 발급 |
Cognito | 사용자 인증/로그인 및 소셜 인증 연동 |
Secrets Manager | DB 비밀번호, API 키 등 민감 정보 저장 및 주기적 교체 |
✅ 사례 1: 최소 권한 원칙 위반 방지
문제
한 개발자가 실수로 회사의 모든 S3 버킷에 대한 읽기 및 쓰기 권한을 가진 IAM 정책을 요청했다. 보안팀은 최소 권한 원칙을 따르기를 원한다. 어떻게 대응하는 것이 가장 적절한가?
정답: ✅ IAM 정책을 수정하여 특정 S3 리소스에만 제한
해설
- IAM 정책은 리소스별로 권한을 세밀하게 제어 가능
- 최소 권한 원칙(Least Privilege)은 AWS 보안의 핵심 원칙
추천 설계
- Resource 항목에 특정 버킷 ARN만 명시
- 필요 없는 s3:* 권한은 제거
✅ 사례 2: 암호화된 데이터 저장 요구
문제
보안 규정상 모든 데이터는 저장 시 암호화되어야 한다. S3, EBS, RDS에서 이 요구를 만족하려면 어떻게 해야 하는가?
정답: ✅ SSE-KMS for S3, Encryption at Rest for RDS/EBS
해설
- S3는 SSE-KMS를 통해 KMS 키 기반 서버측 암호화 가능
- RDS, EBS는 생성 시 암호화 옵션으로 AES-256 자동 암호화 가능
추천 설계
- KMS 키를 정의해 CMK 기반 통일된 암호화 관리
- CloudTrail로 키 사용 내역 로깅
✅ 사례 3: 웹 애플리케이션 보안 제어
문제
EC2 기반 웹 애플리케이션이 외부에서 공격받고 있다. 트래픽을 제한하려고 할 때, 가장 먼저 점검해야 할 것은?
정답: ✅ Security Group 설정
해설
- Security Group은 인스턴스 단위 가상 방화벽
- 상태 저장이므로 응답 트래픽은 자동 허용
추천 설계
- 특정 IP만 80/443 포트 접근 허용
- SSH(22번)는 사내 IP로 제한
✅ 사례 4: 감사 로그 수집
문제
감사팀이 "누가 S3 버킷을 삭제했는지" 확인하려고 한다. 어떤 서비스를 사용해야 할까?
정답: ✅ AWS CloudTrail
해설
- CloudTrail은 AWS API 호출을 추적
- S3 버킷 생성/삭제/조회 모두 로깅 가능
추천 설계
- 로그를 S3에 저장 + CloudWatch와 연동
- 특정 이벤트 발생 시 알림 전송 설정 (SNS 연동)
✅ 사례 5: 사용자 인증 통합
문제
모바일 앱에서 Google, Facebook 계정으로 로그인 기능을 제공하고 싶다. 어떤 서비스를 활용할 수 있을까?
정답: ✅ Amazon Cognito
해설
- Cognito는 사용자 인증, 소셜 로그인, 사용자 풀 관리 지원
- AWS 서비스 접근 권한 연동 가능
추천 설계
- Cognito User Pool 생성 + Federation 연동
- 앱에서 Cognito 토큰으로 인증 처리
'자격증 > aws' 카테고리의 다른 글
saa핵심요약(5) (1) | 2025.06.03 |
---|---|
saa핵심요약(4) (0) | 2025.06.03 |
saa 핵심 요약(2) (1) | 2025.06.03 |
saa 핵심 요약(1) (0) | 2025.06.03 |
기타 서비스 (0) | 2025.06.02 |