S3에서 PII를 관리하는 방법들에 대해 알아보자
안녕하세요 클래스메소드의 이수재입니다.
워크로드에서 필요에 따라 민감한 정보를 저장해야하는 경우가 있습니다.
AWS를 사용하는 경우 데이터 스토어로 S3를 사용하는 경우가 많고, 자연스럽게 S3에 민감한 정보를 저장하게 됩니다.
다만 정보를 그대로 저장하기에는 리스크가 크기 때문에 이를 관리 혹은 필터링 할 방법을 검토하게 됩니다.
이번 글에서는 S3에 민감한 정보인 PII를 저장할 때 관리하는 방법들과 구현 방법에 대해 간략하게 알아봅니다.
PII
PII(Personally Identifiable Information)는 개인을 식별할 수 있는 정보로 이름, 주민등록번호, 주소, 전화번호, 이메일, 신용카드 번호 등 개인과 직접 연결될 수 있는 데이터를 말합니다.
PII에는 주민등록번호, 신용카드 번호 등 개인에게 있어 고유한 정보인 직접 식별자와 성별, 우편번호와 같은 직접적으로 유추되지 않는 간접 식별자가 있습니다.
또한 주민등록번호와 같은 민감한 PII와 그렇지 않은 PII가 있습니다.
이러한 PII의 특성을 이해하고 어떤 PII 까지 관리를 할 것인지에 따라 필요한 리소스가 달라집니다.
더 상세한 내용은 아래 글을 참고해주세요.
보안 강화를 위해 PII는 사전 작업을 거쳐 S3에 저장되는 경우가 많습니다.
이어서 PII를 변환하여 S3에 저장하는 방법에 대하여 알아봅니다.
PII 변환하기
여러 방법들이 있겠지만 주로 사용하는 방법은 다음과 같습니다.
- Amazon Macie 이용하기
- Amazon Comporehend 이용하기
- AWS Glue DataBrew 이용하기
Amazon Macie
민감한 데이터를 대규모로 검색 및 보호 - Amazon Macie
Amazon Macie는 머신 러닝과 패턴 매칭을 사용하여 AWS에서 민감한 데이터를 검색, 모니터링 및 보호하는 완전 관리형 데이터 보안 및 개인정보 보호 서비스입니다.
PII, 금융 데이터 또는 자격 증명과 같은 민감한 데이터를 식별하고 이상 징후 또는 무단 액세스를 자동으로 감지합니다.
Macie는 민감한 데이터 유형의 패턴과 특성을 찾기 위해 S3 객체를 스캔합니다.
이러한 민감한 데이터 자체를 저장하지는 않지만, 데이터의 위치와 종류에 대한 정보는 저장됩니다.
또한 분석하는 각 S3 객체에 대한 분석 기록을 생성하며, 이는 데이터 프라이버시 및 보호 감사나 조사에 도움이 될 수 있습니다.
Macie 의 요금은 "버킷 인벤토리 및 모니터링"과 "민감한 데이터에 대한 자동 및 표적 검색을 위해 매월 데이터 검사"로 나뉘어져있습니다.
상세한 비용은 아래 페이지를 참고해주세요.
Amazon Comprehend
문서 내의 텍스트에서 유용한 인사이트를 도출하고 이해 - Amazon Comprehend
Amazon Confrehend는 AWS에서 자연어 처리(NLP) 서비스로 기계 학습을 사용하여 텍스트를 분석하며 이를 통해 정보를 얻을 수 있는 서비스입니다.
비정형 텍스트에서 엔티티(예: 이름, 장소), 주요 문구, 감정, 주제 및 언어를 추출합니다.
텍스트 분석 자동화, 고객 서비스 개선 또는 규정 준수에 많이 사용됩니다.
이러한 성능을 이용하여 PII를 감지하고 라벨링 하는 것도 가능합니다.
단, 25년 5월 기준 영어와 스페인어만 대상으로 하는 것이 가능합니다.
또한 다른 방법들은 S3에 PII가 처리된 데이터를 저장 하는 방식이지만, Comprehend의 경우에는 S3에는 원본 데이터를 저장하고 요청이 있을 때 Comprehend에서 PII를 탐지한 데이터를 반환 하는 방식으로 사용됩니다.
따라서 변환된 데이터의 저장이 필요하다면 Comprehend에서 반환된 데이터를 다시 S3에 저장하는 과정이 필요합니다.
기능별 대상 언어는 다음 문서를 참고해주세요.
AWS Glue DataBrew
모든 데이터를 대규모로 검색, 준비 및 통합 - AWS Glue
AWS Glue는 분석을 위한 데이터 준비 및 로드를 위한 완전히 관리되는 추출, 변환, 로드(ETL) 서비스입니다.
AWS에서 데이터를 자동으로 검색하고(예: S3, RDS), 메타데이터 카탈로그를 생성하며 ETL 스크립트를 생성하여 Redshift 또는 S3와 같은 대상으로 데이터를 변환하고 이동할 수 있습니다.
DataBrew는 Glue에서 제공하는 기능 중 하나이며, 코딩 없이 데이터를 정리, 변환 및 정규화할 수 있는 데이터 변환 기능입니다.
GUI 환경에서 조작하기 쉽기 때문에 위에 소개한 다른 선택지들에 비해 개발자가 아니더라도 조작하기가 쉽습니다.
비교
실시간 반응(이벤트 기반 처리)
Macie : 설정한 주기에 따라 S3의 객체 탐지
Comprehend : comprehend 자체 기능으로는 주기 등 설정 불가능. S3 Object Lambda 등을 이용하여 실시간 반응이 가능하도록 할 필요가 있음
DataBrew : 워크플로를 실행하여 PII 탐지가 실행됨. S3 오브젝트 이벤트를 통하여 이벤트 기반으로 워크플로를 실행할 수 있음
사용 대상
Macie : S3에 저장한 객체를 주기적으로 탐지하여 변환하여 저장
Comprehend : Comprehend가 요청하기 전까지 S3에 저장된 객체는 민감한 정보를 그대로 가지고 있음. 다만 요청에 따라 반환할 때 PII가 처리된 데이터를 반환
DataBrew : S3에 객체를 저장할 때 변환하여 저장
사용 난이도
주관적인 기준이지만 다음과 같다고 생각합니다.
Macie : 설정이 간단하며, 제공하는 템플릿(어떤 정보를 탐지할 것인지)가 있기 때문에 사용 용이
Comprehend : Comprehend 이외의 서비스에 대해서도 다소 지식이 필요하기 때문에 난이도 높음
DataBrew : ETL 스크립트에 대한 다소의 지식 및 워크플로 구성이 필요하기 때문에 다소 난이도 있음
정리
각 서비스의 특성, 난이도, 실시간 처리 등을 정리하자면 다음과 같습니다.
옵션 | 사용 대상 | 특성 | 실시간 처리 | 난이도 |
---|---|---|---|---|
Macie | S3에 저장된 객체를 탐지하여 결과에 따라 객체 삭제,마스킹 등 가능 | 주기에 따라 자동으로 탐지. 규정 템플릿 제공. | X(정해진 주기에 따라 실행 됨) | 1 (콘솔에서 설정이 가능하며, 미리 정의된 템플릿 제공. 필요에 따라 정규식 커스터마이징 가능. |
Comprehend(+Lambda) | 변환된 데이터 반환 | 유연하게 사용가능하지만 그만큼 복잡 | Lambda 와 연계하여 실시간 처리 가능 | 3 (기타 서비스에 대한 지식 필요) |
DataBrew | 데이터를 변환하여 S3에 객체 저장 | GUI 기반 및 워크플로 기반 | S3의 객체 이벤트를 통하여 워크플로 실행 | 2 (GUI 기반이라 비개발자도 설정 가능. 다만 ETL 에 대한 지식이 다소 필요) |
개인적인 생각으로는 S3에 저장되는 시간을 최소화 해야한다면 DataBrew를 검토해보겠지만 그게 아니라면 제공하는 기능이나 사용 편의성을 생각해서 Macie를 사용하는게 좋다고 생각됩니다.
구성 방법
참고가 될 글을 소개하는 것으로 대신하겠습니다.
Macie
Comprehend
DataBrew
마무리
PII를 저장할 때, 보안 강화를 위해서는 위에서 설명한 데이터 자체의 필터링 이외에도 IAM/S3 정책을 활용한 최소 권한 접근 제어, 객체의 암호화, 로그 관리 등 다양한 부분을 검토해보는 것이 좋다고 생각합니다.
긴 글 읽어주셔서 감사합니다.
오탈자 및 내용 피드백은 must01940 지메일로 보내주시면 감사합니다.