CertNote/ 출퇴근 학습 노트
로드맵
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
SCS-C03 · SpecialtySecurity - Specialty
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
  • Week 1
    • 1.데이터 엔지니어링이란
    • 2.배치 vs 스트리밍
    • 3.AWS 데이터 서비스 조감도
    • 4.데이터 포맷과 모델링
    • 5.Week 1 종합 복습
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
    • 1.접근 제어: IAM과 Lake Formation 권한
    • 2.암호화: KMS와 서비스별 암호화
    • 3.민감 데이터 보호: Macie와 마스킹
    • 4.데이터 거버넌스: 카탈로그·계보·공유·감사
    • 5.Week 9 종합: 보안·거버넌스 복습
  • Week 10
MLS-C01 · SpecialtyMachine Learning - Specialty
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← DEA-C01/Week 9/Day 5

기준: DEA-C01 시험 가이드·오류 제보

DEA-C01· AssociateWeek 9 · Day 5읽기 약 13분
핵심 정리
  • 데이터 요청 한 건은 전송(TLS) → IAM → Lake Formation → KMS → 필터·마스킹 → 감사 기록의 관문을 차례로 지난다. 거부됐다면 어느 관문인지부터 가린다.
  • IAM 과 Lake Formation 은 AND 관계다. 둘 다 통과해야 데이터에 닿고, 암호화된 데이터는 KMS 키 정책까지 맞아야 한다.
  • 암호화는 누가 키를 쥐는가로 구분한다(SSE-S3 / SSE-KMS / SSE-C / 클라이언트 측). 전송 중 암호화는 따로 강제한다.
  • Macie 는 탐지만 한다. 노출을 줄이는 것은 마스킹·토큰화·데이터 필터이고, 어디에서 가릴지(ETL·카탈로그·쿼리)를 정해야 한다.
  • 공유는 Data Exchange(건네줌)와 Clean Rooms(원본 비노출)를 가르고, 객체 수준 감사는 CloudTrail 데이터 이벤트를 켜야 남는다.

Day 5 - Week 9 종합: 보안·거버넌스 복습

요청 한 건이 지나는 관문

이번 주는 접근 제어, 암호화, 민감 데이터 보호, 거버넌스를 하루씩 봤다. 네 주제는 따로 노는 기능이 아니라, 분석가의 쿼리 한 건이 데이터에 닿기까지 차례로 지나는 관문이다.

분석가의 Athena 쿼리
   │
   ▼ ① 전송: TLS 인가?              (aws:SecureTransport, require_ssl)        Day 2
   ▼ ② IAM: 이 API 를 부를 수 있나?   (athena, glue, lakeformation:GetDataAccess) Day 1
   ▼ ③ Lake Formation: 이 테이블을 볼 수 있나?  (SELECT, LF-Tags)              Day 1
   ▼ ④ KMS: 복호화할 수 있나?         (키 정책, kms:Decrypt)                   Day 2
   ▼ ⑤ 무엇을 돌려주나?               (데이터 필터, 마스킹, 토큰)               Day 1·3
   ▼ ⑥ 기록: 누가 무엇을 읽었나?       (CloudTrail 데이터 이벤트)               Day 4
 결과
  • ①~④는 통과 여부를, ⑤는 보이는 범위를, ⑥은 사후 입증을 정한다. 문제의 요구가 셋 중 어디에 있는지 보면 보기가 줄어든다.
  • 관문은 서로를 대신하지 못한다. 암호화(④)는 권한 있는 사용자가 PII 를 보는 것을 막지 못하고, 권한(③)은 누가 봤는지를 남기지 못한다.

"어디서 막혔나" 판별표

관찰된 현상막힌 관문확인할 것
IAM 정책은 다 허용인데 테이블 조회가 권한 부족으로 실패③Lake Formation 의 SELECT·DESCRIBE, 데이터 필터 부여
Lake Formation 권한도 있는데 실패②lakeformation:GetDataAccess
권한을 좁혔는데 사용자가 전부 본다③이 꺼져 있음IAMAllowedPrincipals 의 Super, S3 직접 권한
메타데이터는 보이는데 읽는 순간 실패④키 정책의 kms:Decrypt, 고객 관리형 키인지
같은 계정은 되는데 다른 계정만 실패②·③·④ 중 한쪽 계정양쪽 계정의 정책, RAM 초대, 리소스 링크, 키 정책
HTTP 로 접근이 된다는 보안 지적①버킷 정책의 aws:SecureTransport 거부
분석가가 카드번호 원본을 본다⑤필터·마스킹 정책의 부착 대상과 우선순위
누가 읽었는지 기록이 없다⑥데이터 이벤트, Redshift 사용자 활동 로그
  • 교차 계정 문제는 세 겹이다. 신뢰 정책(누가 역할을 맡을 수 있나) + 권한 정책(그 역할이 무엇을 할 수 있나) + KMS 키 정책. 지문에서 둘이 갖춰졌다고 말하면 남은 하나가 답이다.

닮은 것끼리 구분하기

"민감 데이터를 못 보게" 하는 네 수단

수단작동 시점저장된 값사용자에게 보이는 것맞는 요구
ETL 토큰화·해싱(Glue)쓰기 전바뀜토큰·해시원본을 레이크에 두지 않겠다
Lake Formation 데이터 필터읽을 때그대로해당 컬럼·행이 없음역할별로 볼 수 있는 범위를 다르게(데이터 레이크)
Redshift 동적 데이터 마스킹쿼리 시점그대로가려진 값같은 테이블을 역할별로 다르게(웨어하우스)
Macie저장 후 조사그대로(탐지 결과만)어디에 있는지 모르겠다
  • Macie 는 이 표에서 성격이 다르다. 나머지 셋은 통제, Macie 는 발견이다. "보이지 않게 하라"는 요구에 Macie 를 고르면 틀린다.

S3 암호화: 키를 누가 쥐는가

방식키의 주인감사·통제대표 단서
SSE-S3S3없음기본값, 추가 설정 불필요
SSE-KMSKMS 키키 정책 + CloudTrail키 사용 감사, 교차 계정
DSSE-KMSKMS 키(이중)같음두 겹 암호화 규정
SSE-C고객이 요청마다 제공AWS 가 키를 보관 안 함키를 AWS 에 맡기지 않되 암호화는 S3 가
클라이언트 측고객AWS 는 암호문만AWS 가 평문을 절대 못 봄

공유: 상대가 무엇을 손에 넣는가

방식상대가 얻는 것원본 행 노출
Data Exchange데이터셋(파일 사본 또는 제자리 접근권)노출
Redshift datashare라이브 테이블 접근노출
Lake Formation 교차 계정 공유카탈로그 테이블(필터 범위)범위 안에서 노출
S3 버킷 정책 공유객체 전체노출
Clean Rooms합의된 분석의 결과비노출

감사 로그

질문로그
누가 정책·키·테이블을 바꿨나CloudTrail 관리 이벤트
누가 이 객체를 읽었나CloudTrail 데이터 이벤트
인증에 실패한 요청, 수명 주기가 지운 객체S3 서버 액세스 로그
Redshift 에서 누가 어떤 SQL 을 실행했나Redshift 감사 로그(사용자 활동 로그)
민감 데이터가 어디에 있나Macie 발견(감사 로그가 아니라 탐지 결과)

설정은 어디에 하나: 서비스별 한 장

서비스접근 제어저장 암호화전송 암호화감사
S3버킷 정책, IAM버킷 기본 암호화(SSE-S3·SSE-KMS), 버킷 키aws:SecureTransport데이터 이벤트, 서버 액세스 로그
Glue Data CatalogLake Formation 권한, LF-Tags카탈로그 암호화 설정TLSCloudTrail
Glue ETL잡 역할(IAM)보안 구성(S3·로그·북마크)TLSCloudWatch Logs, CloudTrail
AthenaIAM + Lake Formation워크그룹의 결과 암호화TLSCloudTrail, 쿼리 이력
RedshiftGRANT·역할, 동적 마스킹클러스터 암호화(기본 적용)require_ssl감사 로깅, CloudTrail
KinesisIAM스트림의 서버 측 암호화(KMS)TLSCloudTrail
  • 원본을 SSE-KMS 로 암호화해도 Athena 쿼리 결과와 Glue 잡의 임시·로그 데이터는 각자의 설정을 따른다. 민감 데이터가 결과 버킷이나 로그로 새는 경로가 여기다.

Week 9 숫자·기본값 한 장

영역항목값
IAM평가 순서명시적 Deny > 명시적 Allow > 묵시적 거부
IAM교차 계정양쪽 계정 모두 허용해야 통과
Lake Formation초기 상태IAMAllowedPrincipals 에 Super, IAM 만으로 통제
Lake Formation데이터 필터와 함께 주는 권한SELECT 만
Lake Formation교차 계정RAM 사용. 같은 조직은 즉시, 조직 밖은 초대 수락
KMS자동 교체고객 관리형은 선택(기본 주기 365일), AWS 관리형은 매년
KMS삭제 대기 기간7~30일, 기본 30일
S3기본 암호화2023년 1월 5일부터 모든 새 객체에 SSE-S3
S3SSE-C2026년 4월부터 새 버킷에서 기본 차단
S3 Bucket Key효과KMS 요청 비용 최대 99% 절감, DSSE-KMS 미지원
Redshift암호화기본 적용. 키를 비활성화하면 14일 뒤 삭제될 수 있다
Macie발견 보관90일
Macie맞춤 식별자정규식 512자, 키워드 50개, 최대 일치 거리 기본 50(1~300)
Redshift DDM우선순위 기본값0. 높은 쪽이 적용
Schema Registry권장 호환성BACKWARD
CloudTrail기본 기록관리 이벤트만. 데이터 이벤트는 직접 켠다
  • 최근 바뀐 값이 셋 있다. AWS 관리형 키의 교체 주기(3년 → 1년), SSE-C 의 기본 차단, Redshift 의 기본 암호화다. 시험 자료에는 옛 값으로 나올 수 있다.

통합 시나리오: 규제 대상 고객 데이터 플랫폼

요구사항: 결제 데이터를 데이터 레이크에 적재하되, PII 는 탐지·보호하고, 분석가에게는 가려진 데이터만, 파트너와는 원본 노출 없이 협업하고, 모든 접근을 감사하며, GDPR 삭제에 대응한다.

[결제 소스] --Glue ETL(KMS 암호화, 토큰화)--> s3://lake-clean/payments/ (Iceberg)
   --Macie 스캔--> [PII 발견] --EventBridge--> [Lambda: 접근 제한/알림]
   --Lake Formation(데이터 필터, LF-Tags)--> [분석가: PII 제외 뷰]
   --Clean Rooms--> [파트너: 합의된 집계만]
   모든 활동 --> CloudTrail(데이터 이벤트) --> 감사 계정 버킷
결정선택이 선택이어야 하는 이유
저장 암호화SSE-KMS(고객 관리형 키) + Bucket Key키 사용 감사와 통제가 필요하고, ETL 의 대량 읽기에서 KMS 비용을 줄여야 한다
전송버킷 정책으로 TLS 강제저장 암호화와 별개의 층이다
카드번호ETL 에서 토큰화조인은 유지하되 원본을 레이크에 두지 않는다
탐지Macie 자동 탐색 + 민감 버킷은 탐색 작업토큰화를 빠져나간 PII(자유 입력 필드)를 찾는다
접근 제어LF-Tags + 데이터 필터테이블이 늘어도 권한이 자동 적용되고, 지역 행만 보이게 한다
파트너 협업Clean Rooms원본 행을 서로 볼 수 없어야 한다
감사민감 버킷에 CloudTrail 데이터 이벤트객체 수준 접근을 입증한다
삭제Iceberg 행 수준 DELETE + 스냅샷 정리한 고객의 행만 지우고 과거 스냅샷에도 남기지 않는다
-- GDPR 삭제 (Iceberg on Athena): 논리 삭제 후 스냅샷까지 정리
DELETE FROM lake_clean.payments WHERE customer_id = 'GDPR-REQ-2026-042';
VACUUM lake_clean.payments;
{
  "Name": "analyst_payments_filter",
  "ColumnNames": ["txn_id", "region", "amount_token", "dt"],
  "RowFilter": { "FilterExpression": "region = 'ap-northeast-2'" }
}
  • Macie 가 이 버킷을 읽으려면 고객 관리형 키의 키 정책이 Macie 를 허용해야 한다. 암호화 결정(Day 2)이 탐지 결정(Day 3)의 전제 조건이 된다.
  • 토큰화했는데도 Macie 를 두는 이유는 설계가 놓친 경로 때문이다. 통제는 "있어야 할 곳"을 막고, 탐지는 "있으면 안 될 곳"을 찾는다.

운영에서 실제로 들어오는 요청 세 가지

요청처리 순서
"신규 분석가에게 매출 데이터를 보여 달라"역할에 lakeformation:GetDataAccess 확인 → 역할에 맞는 LF-Tag 표현식 부여(개별 테이블 GRANT 를 늘리지 않는다) → PII 가 필요 없으면 필터가 걸린 권한으로 → S3 직접 권한은 주지 않는다
"이 고객의 데이터를 전부 지워 달라"계보로 사본 위치 파악 → 각 Iceberg 테이블에서 DELETE → 스냅샷 만료·VACUUM → S3 이전 버전·raw 존·백업·웨어하우스 사본 처리 → 처리 기록 보관
"지난달 이 버킷을 누가 읽었는지 내라"데이터 이벤트가 그 기간에 켜져 있었는지 확인 → 추적이 쌓은 로그를 Athena 로 조회 → 역할 세션이면 AssumeRole 이벤트까지 거슬러 사람을 특정. 켜져 있지 않았다면 소급해 만들 방법은 없다

💡 관련 이론: 보안·거버넌스는 단일 통제가 아니라 다층 방어다. 암호화(기밀성) + 접근 제어(권한) + 탐지(가시성) + 감사(책임 추적)가 함께 작동해야 규제와 신뢰 요건을 충족한다. 어느 하나가 강하다고 다른 하나를 생략할 수 없다.

자주 틀리는 함정

  • Lake Formation 을 켰다고 통제가 걸리는 것은 아니다. IAMAllowedPrincipals 가 남아 있으면 IAM 만으로 읽힌다.
  • Lake Formation 은 S3 직접 접근을 막지 않는다. 필터를 걸어도 사용자에게 s3:GetObject 가 있으면 원본 파일이 열린다.
  • KMS 권한은 IAM 정책만으로 끝나지 않는다. 키 정책이 IAM 위임을 허용하거나 직접 허용해야 한다.
  • 키를 교체해도 기존 데이터는 다시 암호화되지 않는다. 기본 암호화를 바꿔도 기존 객체는 그대로다.
  • 버킷 키는 키 통제를 포기하는 것이 아니다. 다만 KMS 이벤트에는 객체가 아니라 버킷 ARN 이 찍힌다.
  • Macie 는 가리지도 지우지도 않는다. S3 밖(Redshift 테이블)도 보지 않는다.
  • DELETE 는 물리 삭제가 아니다. 스냅샷을 만료시키기 전에는 시간 여행으로 읽힌다.
  • datashare·Data Exchange 는 "원본 비노출"이 아니다. 복사를 안 할 뿐 상대는 행을 읽는다.
  • 감사 로깅을 켜도 쿼리 문이 안 남을 수 있다. Redshift 는 enable_user_activity_logging 이 따로다.

지문 단서 → 정답 판별표

지문 단서정답
"카드번호는 토큰으로, 자기 지역 행만, 새 테이블에 자동 적용"LF-Tags + 데이터 필터 + ETL 토큰화
"어떤 역할이 특정 객체를 읽었는지 입증"CloudTrail 데이터 이벤트
"파트너와는 원본 비노출, 사내 분석가에게는 PII 제외"Clean Rooms + Lake Formation 데이터 필터
"KMS 스로틀·비용 급증 + 평문 HTTP 차단"S3 Bucket Key + aws:SecureTransport 거부
"하나의 통제로 충분한가"아니다. 암호화·접근 제어·탐지·감사가 함께
"IAM 은 허용인데 조회 실패"Lake Formation 권한
"다른 계정이 암호화된 테이블을 못 읽음"KMS 키 정책(고객 관리형 키)
"AWS 도 평문을 볼 수 없어야"클라이언트 측 암호화

다음 주는 마지막 주다. 도메인 1·2(수집·변환과 스토어 관리)를 통합 복습하는 것으로 시작한다.

📖 용어

  • 다층 방어 : 하나의 통제가 뚫려도 다음 통제가 막도록 여러 겹으로 보호하는 설계.
  • 관문(control point) : 요청이 통과 여부를 판정받는 지점. 전송, IAM, Lake Formation, KMS 가 각각 하나다.
  • 제자리 접근 : 데이터를 복사해 받지 않고 제공자의 저장소를 직접 읽는 공유 방식.
  • 원본 비노출 분석 : 상대의 행 데이터를 보지 못한 채 합의된 집계 결과만 얻는 협업 방식.
  • 논리 삭제 / 물리 삭제 : 삭제됐다고 표시만 하는 것과 저장소에서 실제로 없애는 것. Iceberg 의 DELETE 는 전자다.
  • 감사 계정 : 운영 계정과 분리해 로그를 모아 두는 계정. 운영자가 자기 기록을 고치지 못하게 한다.
  • 책임 추적성 : 어떤 행위를 누가 했는지 사후에 입증할 수 있는 성질.
  • 잊힐 권리 : 개인이 자신의 데이터 삭제를 요구할 수 있는 권리. GDPR 의 삭제 요청이 대표적이다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

결제 데이터 플랫폼에서 분석가에게 카드번호는 토큰으로, 자기 지역 행만 노출하고, 새 테이블이 추가돼도 권한이 자동 적용되게 하려 한다. 가장 적절한 조합은?

문제 2

보안팀이 "어떤 IAM 역할이 지난달 결제 버킷의 특정 객체를 읽었는지"를 입증해야 한다. 필요한 설정은?

문제 3

외부 파트너와 캠페인 효과를 공동 분석하되 양사 고객 원본은 노출하지 않아야 한다. 동시에 사내 분석가에게는 PII를 제외한 데이터를 제공한다. 올바른 서비스 조합은?

문제 4

SSE-KMS로 암호화된 결제 버킷에서 대량 객체를 읽는 ETL이 KMS 스로틀링과 비용 급증을 겪는다. 동시에 평문 HTTP 접근도 막아야 한다. 가장 적절한 조치 조합은?

문제 5

데이터 보안·거버넌스의 "다층 방어"를 가장 정확히 설명한 것은?

이전데이터 거버넌스: 카탈로그·계보·공유·감사Week 9 · Day 4다음 도메인 1·2 통합 복습: 수집·변환 + 스토어 관리Week 10 · Day 1

참고 공식 자료

  • DEA-C01 공식 시험 안내(새 탭에서 열림)
  • Amazon S3 공식 문서(새 탭에서 열림)
  • AWS KMS 공식 문서(새 탭에서 열림)
  • AWS Lake Formation 공식 문서(새 탭에서 열림)
  • AWS IAM 공식 문서(새 탭에서 열림)
  • Amazon Macie 공식 문서(새 탭에서 열림)

이 페이지

  • 요청 한 건이 지나는 관문
  • 어디서 막혔나" 판별표
  • 닮은 것끼리 구분하기
  • 설정은 어디에 하나: 서비스별 한 장
  • Week 9 숫자·기본값 한 장
  • 통합 시나리오: 규제 대상 고객 데이터 플랫폼
  • 운영에서 실제로 들어오는 요청 세 가지
  • 자주 틀리는 함정
  • 지문 단서 → 정답 판별표
  • 용어
  • 연습 문제