Amazon DEA-C01: 데이터 보안, 거버넌스 및 규정 준수 — 학습 가이드
다음의 일부입니다: Amazon Data Engineer Associate DEA-C01 — 학습 가이드. 검증된 답안으로 연습하기: Amazon 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.
이 도메인은 분석을 활성화하면서 데이터를 보호하고, 감사 가능하며, 규정을 준수하도록 유지하는 제어, 서비스 및 운영 패턴을 다룹니다. 데이터 엔지니어는 분석 워크플로가 PII를 노출하거나 서비스 통합을 깨뜨리지 않고 실행되도록 암호화, 액세스 제어, 검색 및 마스킹을 설계해야 합니다. 아래 섹션에서는 S3/Redshift 암호화, KMS, IAM 및 리소스 정책, Lake Formation의 세분화된 액세스, Macie 검색, VPC 엔드포인트와 같은 네트워크 제어 등 구체적인 AWS 서비스 및 구성과 파이프라인 설계 시 사용할 결정 기준에 중점을 둡니다.
데이터 서비스를 위한 저장 데이터 및 전송 중 데이터 암호화
모든 AWS 서비스 엔드포인트 및 클라이언트 SDK에 대해 TLS를 사용하여 전송 중인 데이터를 암호화합니다. 서비스 엔드포인트, ALB, API Gateway를 사용하고 S3 버킷 정책에서 HTTPS를 요구하여 이를 강제합니다. S3의 저장 데이터 암호화를 위해 SSE-S3, SSE-KMS, SSE-C 또는 클라이언트 측 암호화 중에서 선택하며, 각각 다음과 같은 장단점과 CLI/콘솔 패턴을 가집니다:
- SSE-S3 (AWS에서 관리하는 AES-256): 가장 간단합니다.
undefined
명령어로 버킷에 기본 암호화를 활성화합니다.
- SSE-KMS (AWS KMS 키): 키 교체, IAM 및 KMS 키 정책, CloudTrail을 통한 감사를 지원합니다. SSE-KMS로 버킷 기본값을 설정하고 –sse-kms-key-id를 지정합니다. 서비스와 보안 주체에게 IAM 권한과 KMS 키 정책 액세스 권한을 모두 부여해야 합니다(아래 KMS 키 정책 참고 참조).
- SSE-C (고객 제공 키): 고객이 각 요청에 키를 제공합니다. KMS를 사용하지 않으며, 키 전송 및 키 손상 처리에 대한 운영 복잡성이 있습니다.
- 클라이언트 측 암호화: AWS Encryption SDK 또는 클라이언트 라이브러리를 사용하여 업로드 전에 봉투 암호화(envelope encryption) 방식으로 암호화합니다. 키는 클라이언트 또는 사용자 지정 KMS 사용을 통해 관리됩니다. 평문 키 원본에 대한 완전한 제어를 유지해야 할 때 사용합니다.
결정 기준:
- 운영 오버헤드가 낮고 고객 관리형 키가 필요 없는 경우 SSE-S3를 사용합니다.
- 감사 가능성, 키 교체가 필요하거나 여러 계정 또는 서비스 간에 암호화된 스냅샷을 공유할 때 SSE-KMS를 사용합니다.
- AWS가 평문 또는 키 원본에 절대 접근할 수 없도록 보장해야 할 때 SSE-C 또는 클라이언트 측 암호화를 사용합니다.
Redshift 암호화: 클러스터 생성 시 –encrypted 및 –kms-key-id를 지정하거나 콘솔을 통해 암호화를 활성화합니다. 암호화되지 않은 클러스터에는 암호화를 바로 활성화할 수 없습니다. 기존 클러스터 스냅샷을 암호화하고 암호화된 클러스터로 복원하려면, –kms-key-id와 함께
undefined
또는 RestoreFromClusterSnapshot 워크플로를 사용합니다. KMS 키 정책은 Redshift가 키를 사용할 수 있도록 명시적으로 허용해야 합니다(kms:Encrypt, kms:Decrypt, kms:GenerateDataKey).
모든 KMS 기반 서비스의 경우, 전송 중 TLS를 보장하고 로그 및 스냅샷에서 평문 노출을 제한해야 합니다.
데이터 액세스를 위한 IAM 정책 및 리소스 기반 정책
IAM 자격 증명 정책과 리소스 기반 정책(S3 버킷 정책, KMS 키 정책, VPC 엔드포인트 정책)이 함께 액세스 권한을 결정합니다. 구체적인 접근 방식은 다음과 같습니다:
- 컴퓨팅/서비스 보안 주체(EMR, Glue, Redshift, Lambda)에 IAM 역할을 사용하고, 필요한 S3, Glue, Redshift 및 KMS 작업을 허용하는 최소 권한 정책을 연결합니다.
- 리소스 기반 정책을 사용하여 특정 보안 주체나 VPC 엔드포인트가 S3 버킷이나 API에 액세스하는 것을 제한합니다. Deny는 Allow를 재정의하므로 명시적인 Deny 문은 신중하게 적용해야 합니다.
- VPC로 제한된 액세스를 위해 S3용 게이트웨이 VPC 엔드포인트와 Glue, KMS, Secrets Manager용 인터페이스 엔드포인트를 생성하고 엔드포인트 정책으로 액세스를 제어합니다.
CLI/콘솔 패턴:
- 게이트웨이 엔드포인트 생성:
undefined
- Glue용 인터페이스 엔드포인트 생성:
undefined
결정 기준:
- 교차 계정 제약 조건을 적용하거나 트래픽이 특정 VPC 엔드포인트에서 시작되도록 요구할 때 리소스 정책을 사용합니다.
- 자격 증명 중심의 권한 부여에는 IAM을 사용하고, 서비스가 키를 사용하도록 승인하기 위해서는 KMS 키 정책을 사용합니다. IAM만으로는 KMS 사용을 허용하기에 충분하지 않습니다.
Lake Formation의 세분화된 권한
Lake Formation은 Glue Data Catalog를 기반으로 데이터 레이크 액세스 제어를 중앙 집중화하고, Athena 및 Glue 작업에 대한 열 수준 및 행 수준 보안을 제공합니다. 주요 패턴:
- S3 위치를 Lake Formation에 데이터 레이크 위치로 등록하고, 해당 위치를 읽고 쓰는 역할에 DATA_LOCATION_ACCESS 권한을 부여합니다.
- Lake Formation 콘솔 또는
undefined
명령어를 통해 테이블 수준 및 열 수준 권한을 부여합니다. 열 수준 권한 부여는 열 목록 파라미터를 사용하며 Data Catalog를 사용하는 Athena 및 Glue 쿼리에 영향을 줍니다.
- 행 수준 보안을 위해 테이블에 LF-tags 또는 행 필터를 정의하고, Athena가 반환하는 데이터에 조건자(predicate)를 적용하는 정책을 연결합니다. 행 수준 필터는 쿼리 계획 단계에서 Lake Formation 서비스에 의해 평가됩니다.
운영 세부 정보:
- Lake Formation 권한과 IAM 권한이 모두 평가되며, 가장 제한적인 결과가 적용됩니다. 작업에 IAM 역할의 S3 액세스 권한과 Lake Formation 권한이 모두 있는지 확인해야 합니다.
- Athena를 사용할 때는 작업 그룹이 Glue Data Catalog를 사용하도록 설정하고, 쿼리 결과가 저장되는 S3 위치에 적절한 LF 액세스 권한을 구성해야 합니다.
결정 기준:
- 다운스트림 분석가에게 민감한 열을 숨겨야 할 때 Lake Formation의 열 수준 제어를 사용합니다.
- 보안 주체별로 가시성을 제한하기 위해 행 조건자를 사용해야 하는 멀티테넌트 데이터 세트의 경우 행 수준 정책을 사용합니다.
- 광범위한(coarse-grained) 적용(버킷/객체 수준)에는 IAM 및 S3 버킷 정책을 계속 사용하고, 카탈로그 기반의 세분화된 적용에는 Lake Formation을 사용합니다.
데이터 마스킹, 토큰화 및 PII 처리
Amazon Macie를 사용하여 S3 버킷을 스캔하고 관리형 데이터 식별자로 분류 작업을 실행하여 PII를 탐지합니다. Macie는 PII에 대한 자동화된 탐지 및 알림을 제공하며, 탐지 결과는 Security Hub 또는 CloudWatch Events로 라우팅하여 다운스트림 워크플로우를 처리할 수 있습니다. 콘솔 또는 aws macie2 create-classification-job을 통해 Macie 작업을 구성하고, S3 버킷 범위를 선택한 후 관리형 식별자를 선택합니다.
마스킹 및 토큰화:
- 수집 중에 결정적 또는 형식 보존 마스킹/토큰화를 적용하려면 AWS Glue 변환(Glue ETL PySpark) 또는 AWS Lambda를 사용합니다. 일관된 처리를 위해 AWS Glue Studio 작업 북마크 및 작업 파라미터를 고려하십시오.
- 토큰을 되돌릴 수 있어야 하는 토큰화의 경우, KMS 기반 HSM 또는 서드파티 토큰화 서비스를 사용합니다. 토큰 맵은 KMS로 암호화된 보안 DynamoDB 테이블에 저장하고 승인된 서비스에만 액세스를 제한합니다.
- 되돌릴 수 없는 마스킹의 경우, Secrets Manager의 보안 솔트(salt)를 사용하여 단방향 해싱(솔트 첨가)을 적용하고, 조인(join)이 깨지지 않도록 솔트를 신중하게 교체합니다.
네트워킹 및 프라이빗 트래픽:
- S3 게이트웨이 엔드포인트와 Glue 및 Secrets Manager용 인터페이스 엔드포인트를 사용하여 데이터 트래픽을 AWS 네트워크 내에 유지하고 공용 인터넷 노출을 방지합니다. VPC 엔드포인트 정책과 S3 버킷 정책을 결합하여 엔드포인트 보안 주체(principal)로부터의 트래픽으로 액세스를 제한합니다.
일반적인 함정과 결정 기준
- 기존의 암호화되지 않은 클러스터에서는 Redshift 암호화를 활성화할 수 없습니다. 암호화된 클러스터를 생성하려면 스냅샷에서
--kms-key-id를 사용하여 새 클러스터로 복원해야 합니다. - KMS 키 정책은 AWS 데이터 서비스 보안 주체(예:
glue.amazonaws.com,redshift.amazonaws.com)에게GenerateDataKey/Decrypt권한을 명시적으로 부여해야 합니다. IAM 역할 권한만으로는 충분하지 않습니다. - Lake Formation과 IAM 권한은 모두 평가됩니다. 둘 중 하나라도 액세스를 거부하거나 필요한 권한이 없으면 액세스가 차단됩니다. IAM 역할의 S3 액세스 권한과 Lake Formation의 테이블/열 권한을 모두 부여해야 합니다.
- 명시적인 Deny가 포함된 S3 버킷 정책은 IAM의 Allow를 재정의합니다. 서비스 역할이나 교차 계정 액세스를 의도치 않게 차단하는 Deny 문이 있는지 버킷 정책을 감사합니다.
- VPC 엔드포인트 정책 또는 엔드포인트의 잘못된 구성은 서비스 트래픽을 조용히 차단할 수 있습니다. 게이트웨이 엔드포인트의 경우 엔드포인트 보안 주체 및 라우팅 테이블 연결을 확인하고, 인터페이스 엔드포인트의 경우 보안 그룹을 확인하십시오.
- Macie는 S3에 대한 읽기 액세스 권한과 적절한 버킷 정책이 필요합니다. Macie의 서비스 보안 주체가 허용되었는지 확인하거나 필요한 권한을 가진 역할에서 스캔을 실행하십시오.
실용적인 문제: 사용 사례 시나리오
Acme Health Analytics는 환자 CSV를 S3 데이터 레이크에 저장하며, 분석가에게는 비식별화된 필드에 대한 액세스를 제공하면서 집계 쿼리를 실행할 수 있는 기능은 유지해야 합니다. 트래픽은 절대 공용 인터넷을 통과해서는 안 됩니다.
- Lake Formation에 S3 데이터 레이크 위치를 등록하고 전용 데이터 레이크 관리자 역할을 생성합니다.
- SSE-KMS로 버킷 기본 암호화를 구성하고, Glue, Athena, Redshift 서비스 보안 주체 및 분석가 IAM 역할에 대한 액세스를 명시적으로 부여하는 키 정책을 가진 KMS 키를 생성합니다.
- Lake Formation을 사용하여 분석가에게 테이블 수준 SELECT 권한을 부여하되, PII 열에 대해서는 열 수준 거부를 적용하고, 다중 테넌트 분리가 필요한 경우 행 수준 필터를 생성합니다.
- Macie 분류 작업을 실행하여 버킷에 남아 있는 PII를 발견하고 Glue ETL 작업에서 마스킹/토큰화하여 수정합니다. 되돌릴 수 있는 토큰에는 클라이언트 측 또는 토큰화 패턴을 사용하고, 되돌릴 수 없는 마스킹에는 해시를 사용합니다.
- S3 게이트웨이 VPC 엔드포인트와 Glue 및 Secrets Manager용 인터페이스 엔드포인트를 생성합니다. 엔드포인트 정책을 적용하여 VPC 트래픽으로 액세스를 제한하고, 엔드포인트 보안 주체만 허용하도록 S3 버킷 정책을 조정합니다.
AWS 모범 사례 근거: KMS 기반 암호화, Lake Formation의 세분화된 카탈로그 제어, 프라이빗 VPC 엔드포인트를 결합하여 심층 방어(defense-in-depth)를 적용합니다. 암호화는 저장된 데이터를 보호하고, Lake Formation은 어떤 열/행이 보이는지 제어하며, VPC 엔드포인트는 공용 네트워크 노출을 방지하는 동시에 KMS 정책은 서비스가 실제로 데이터를 해독할 수 있도록 보장합니다.
← 데이터 쿼리 및 분석 · 모든 도메인 · 데이터 파이프라인 모니터링 및 문제 해결 →
이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
시험 합격하기 →