클라우드활용 13주차 — 클라우드 보안 위협 & 대응
계정 탈취·오설정·데이터 유출·DoS/DDoS 같은 주요 보안 위협과 대응책을 정리하고, 강한 암호 정책·S3 퍼블릭 차단 점검을 CLI로 수행한 13주차 기록.
13주차는 클라우드의 주요 보안 위협(계정 탈취·오설정·데이터 유출·DoS/DDoS·안전하지 않은 API)과 대응책 을 다룬다. 사례·위협 유형은 강의 화면으로, 실제 대응 조치(계정 암호 정책·S3 퍼블릭 차단·계정 보안 점검)는 CLI로 수행했다. 변경한 암호 정책은 확인 후 원복했고, 계정 ID는 가렸다.
핵심 개념 — 주요 위협과 대응
| 위협 | 내용 | 대응 |
|---|---|---|
| 계정 탈취 | 자격증명 유출·약한 비밀번호·크리덴셜 스터핑 | MFA, 강한 암호 정책, 키 회전 |
| 오설정(Misconfiguration) | S3 퍼블릭 노출, 과도한 IAM 권한, CloudTrail 비활성 | S3 퍼블릭 차단, 최소 권한, Config 자동점검 |
| 데이터 유출 | 미암호화 저장, 공개 DB 엔드포인트 | 암호화, 접근 제한 |
| DoS/DDoS | 대규모 트래픽으로 서비스 불능 | AWS Shield, WAF Rate-based Rule, ALB 분산 |
| 안전하지 않은 API | 인증 부재·인젝션·과도한 권한 | 인증 강화, 입력 검증, 최소 권한 |
대표 사례로 Capital One(2019) 은 잘못 구성된 WAF + SSRF로 1억 건 이상 개인정보가 유출됐고, GitHub에 액세스 키 노출 로 암호화폐 채굴에 악용된 사례도 있다. 모두 “내 몫(고객 책임)”의 실수로, 공동 책임 모델과 직결된다.
강의 화면 — 위협 유형(DoS/DDoS)
대규모 트래픽 유입으로 정상 서비스가 불가능해지는 DoS/DDoS — 인터넷에 직접 노출된 리소스가 대상이며, AWS Shield·WAF Rate-based Rule·ALB 분산 으로 대응한다.
보안 대응 조치
계정 보안 상태 점검
1
2
$ aws iam get-account-summary --query "SummaryMap.[AccountMFAEnabled,Users]" --output text
0 1 # 루트 MFA 미설정(0), IAM 사용자 1명 → MFA 활성화 권장 신호
강한 계정 암호 정책 적용 (계정 탈취 대응)
1
2
3
4
5
6
7
8
9
$ aws iam get-account-password-policy # 변경 전: (정책 없음 - 기본값)
$ aws iam update-account-password-policy --minimum-password-length 14 \
--require-symbols --require-numbers --require-uppercase-characters \
--require-lowercase-characters --max-password-age 90 --password-reuse-prevention 5
$ aws iam get-account-password-policy \
--query "PasswordPolicy.[MinimumPasswordLength,RequireSymbols,MaxPasswordAge,PasswordReusePrevention]" --output text
14 True 90 5 # 14자 이상·기호 필수·90일 만료·최근 5개 재사용 금지
약한 비밀번호로 인한 계정 탈취를 막는 가드레일을 설정하고 적용을 확인했다.
S3 퍼블릭 액세스 차단 점검 (오설정/데이터 유출 대응)
1
2
3
$ aws s3control get-public-access-block --account-id 9337****0266 \
--query "PublicAccessBlockConfiguration"
NoSuchPublicAccessBlockConfiguration
계정 수준 차단이 미설정 상태라 버킷별로 차단을 관리 해야 함을 확인했다(6주차에서 버킷 정책으로 의도적 공개/차단을 다뤘다). 계정 수준에서 put-public-access-block 을 켜면 모든 버킷의 실수 공개를 원천 차단할 수 있다.
정리 (원복)
1
2
3
$ aws iam delete-account-password-policy # 실습 전 상태(정책 없음)로 원복
$ aws iam get-account-password-policy 2>&1 | grep -o NoSuchEntity
NoSuchEntity
정리
보안 위협의 공통점은 대부분 “고객 책임 영역의 실수”(오설정·약한 자격증명·과도한 권한)라는 것이다. Capital One·GitHub 키 유출 사례가 모두 그랬고, 공동 책임 모델이 왜 중요한지를 사례로 보여준다. 대응을 글이 아니라 명령으로 해보면 — 강한 암호 정책 적용(계정 탈취 대응), S3 퍼블릭 차단 점검(데이터 유출 대응) — 4주차 MFA·최소권한, 6주차 S3 차단이 “보안 대응책”으로 다시 모인다. get-account-summary 의 루트 MFA 0(미설정)은 운영 계정이라면 개선해야 할 신호다.