
[security] Amazon Macie
우리 S3 어딘가에 개인정보가 무방비로 놓여 있진 않을까. 그 걱정을 대신 뒤져 찾아주는 Macie.
One-Line Summary
Amazon Macie는 S3에 저장된 데이터에서 민감정보(PII 등)를 자동으로 찾아 분류하고, S3 버킷의 보안·접근 상태(공개·비암호화 등)를 상시 평가하는 데이터 보안 서비스다. 머신러닝과 패턴 매칭으로 "이 버킷 어딘가에 주민번호·신용카드·여권번호가 들어있다"를 알려준다. 시험에서는 "S3 + 민감정보(PII) 발견" = Macie / GuardDuty·Inspector와의 차이 / 자동 버킷 보안 평가 / EventBridge 연동 이 핵심이다.
뭔지 (What / Why)
조직이 커지면 S3에 무슨 데이터가 어디에 있는지 아무도 정확히 모른다. 로그 버킷에 실수로 고객 개인정보가 섞여 들어가거나, 백업에 신용카드 번호가 평문으로 남아 있는 식의 사고가 흔하다. 규정(GDPR·PCI-DSS·HIPAA)은 "민감정보가 어디 있고 어떻게 보호되는지"를 요구한다.
Macie는 이 질문에 답한다 — S3 객체 내용을 스캔해서 민감정보를 찾아내고 어느 버킷·객체에 있는지 짚어준다. 동시에 버킷 자체가 안전한지(공개돼 있나, 암호화됐나, 공유됐나)도 자동으로 본다.
[S3 버킷/객체]
│ (Macie가 객체 내용 스캔 + 버킷 설정 평가)
▼
[Macie] = ML + 관리형/커스텀 데이터 식별자
▼
Finding: "이 버킷 객체에 신용카드 번호 발견 (심각도 High)"
"이 버킷은 공개(public) 상태"
└─▶ EventBridge ─▶ Lambda/SNS 자동 대응·알림
두 가지 일을 한다 (구분해서 이해)
Macie는 성격이 다른 두 기능을 합쳐 놓았다.
| 기능 | 하는 일 |
|---|---|
| 민감정보 발견 (Sensitive Data Discovery) | S3 객체 내용을 스캔해 PII·금융·자격증명 등 민감정보 탐지·분류 |
| S3 버킷 보안 평가 (자동·상시) | 계정의 모든 S3 버킷 인벤토리를 만들고 공개 여부·암호화·공유·정책 등 보안 상태를 지속 모니터링 |
포인트: 버킷 보안 평가는 자동·무료 수준으로 상시 돌아가고, 객체 내용 스캔(discovery job)은 선택적으로 돌리는 유료 작업이다. "S3 어디에 민감정보가 있나" + "그 버킷이 공개돼 있나"를 함께 본다.
무엇을 찾아내나 — 데이터 식별자
| 종류 | 예 |
|---|---|
| 관리형 식별자 (Managed data identifiers) | 신용카드 번호, 주민/사회보장번호, 여권·운전면허, 은행계좌, AWS 액세스 키·비밀키, 이메일, 전화번호 등 (AWS 사전 정의) |
| 커스텀 식별자 (Custom data identifiers) | 정규식 + 근접 키워드로 회사 고유 패턴(사번, 내부 고객 ID 등) 정의 |
| Allow list | 오탐 줄이려 무시할 패턴 지정 |
"AWS가 미리 아는 PII"는 관리형으로 바로 잡고, "우리 회사만의 민감 패턴"은 커스텀 식별자로 정의한다.
대표 Finding 예시
SensitiveData:S3Object/Personal— 객체에서 개인정보(주소·여권 등) 발견SensitiveData:S3Object/Financial— 신용카드·계좌번호 발견SensitiveData:S3Object/Credentials— AWS 키·비밀키 노출Policy:IAMUser/S3BucketPublic— 버킷이 퍼블릭Policy:IAMUser/S3BucketEncryptionDisabled— 버킷 암호화 미설정
각 Finding엔 심각도·위치(버킷/객체)·유형이 붙는다.
자동 대응 — EventBridge 연동
GuardDuty와 동일한 패턴. Macie Finding도 EventBridge 이벤트로 나가 자동 대응에 연결한다.
Macie Finding ─▶ EventBridge ─▶ 대응
공개 버킷에 PII 발견 → Lambda가 퍼블릭 액세스 차단 / 격리
민감정보 노출 → SNS로 보안·컴플라이언스팀 알림
집계·티켓 → Security Hub
다른 서비스와의 차이 (핵심 구분)
| 서비스 | 대상 | 찾는 것 | 질문 |
|---|---|---|---|
| Macie | S3 | 민감정보(PII)·버킷 노출 | "내 S3에 개인정보가 있고 노출됐나?" |
| GuardDuty | 계정·워크로드 로그 | 위협·악성 활동 | "지금 공격/침해가 일어나나?" |
| Inspector | EC2·컨테이너·Lambda | 취약점(CVE)·노출 | "워크로드에 알려진 취약점이 있나?" |
| Config | 리소스 구성 | 규정 준수 | "설정이 규칙을 지키나?" |
| Security Hub | 위 발견들 | 집계·표준화 | "전체 보안 상태 한눈에" |
한 축으로: Macie=S3 데이터 내용(민감정보), GuardDuty=위협 활동, Inspector=취약점, Config=구성, Security Hub=집계.
실무 활용 사례
사례 1. 규정 준수(PCI/GDPR/HIPAA)
- S3 전체를 대상으로 discovery job → 신용카드·PII가 있는 버킷 식별 → 암호화·접근 제한·격리로 준수 증빙.
사례 2. 데이터 유출 위험 조기 차단
- 퍼블릭 버킷에 민감정보 Finding → EventBridge → Lambda가 즉시 퍼블릭 액세스 차단 + 알림.
사례 3. 데이터 레이크·백업 위생 점검
- 로그/백업 버킷에 민감정보가 섞여 들어왔는지 주기적 스캔으로 감시.
사례 4. 조직 단위 운영
- Organizations 위임 관리자에서 전 계정 Macie 활성화 → Findings를 Security Hub로 집계.
Common Wrong Directions
| 오답 방향 | 왜 부족한가 |
|---|---|
| Macie로 EC2 취약점 스캔 | 그건 Inspector |
| Macie로 악성 활동·침해 탐지 | 그건 GuardDuty |
| Macie가 RDS/DynamoDB도 스캔 | Macie는 S3 대상(다른 저장소 아님) |
| 민감정보 탐지를 직접 정규식 파이프라인으로 구축 | 관리형/커스텀 식별자로 관리형 서비스 사용 |
| Macie가 데이터를 자동 삭제·차단한다고 봄 | 발견 전용 → 대응은 EventBridge+자동화 |
| 계정마다 수동 활성화 | Organizations 위임 관리자로 일괄 |
Exam Triggers
| 문제에서 이런 표현이 나오면 | 떠올릴 것 |
|---|---|
| "discover/classify sensitive data (PII) in S3" | Macie |
| "find credit card / SSN / passport in S3 buckets" | Macie |
| "detect publicly exposed or unencrypted S3 buckets with PII" | Macie |
| "PCI-DSS / GDPR / HIPAA data compliance for S3" | Macie |
| "detect malicious activity / compromised resources" | GuardDuty (Macie 아님) |
| "scan for software vulnerabilities/CVEs" | Inspector (Macie 아님) |
| "custom pattern for internal sensitive IDs" | Macie custom data identifier |
| "auto-remediate exposed sensitive data" | Macie + EventBridge + Lambda |
Memory Sentence
Macie는 S3 전용 데이터 보안 서비스로, 객체 내용을 ML·데이터 식별자로 스캔해 민감정보(PII·금융·자격증명)를 발견·분류하고 버킷의 공개·암호화 상태를 상시 평가한다. 발견 전용이라 대응은 EventBridge+Lambda로 자동화한다. S3 민감정보=Macie, 위협=GuardDuty, 취약점=Inspector, 구성=Config, 집계=Security Hub.
References
댓글
아직 댓글이 없습니다.