폐쇄 환경에서 Amazon Sagemaker노트북 인스턴스를 이용하는 경우의 데이터 보호에 관한 Tips

MZC_Global
Cloud Villains
Published in
4 min readAug 9, 2023

Amazon SageMaker이용 시, 기계학습에 사용하려는 데이터가 개인 정보나 기밀 정보일 가능성이 있기 때문에 AWS 환경 내에 가둔 후 운용 하고 싶은 경우도 있을 거라 생각합니다.

본 게시글에서는 Amazon SageMaker 노트북 인스턴스 이용을 전제로 발생할 수 있는 문제와 해결책에 대해 기재 해 보겠습니다.

대상자

  • 기계학습을 안전한 환경에서 진행 하고싶은 분
  • AWS 이용을 고려중인 분

개요

  1. 가정 해 본 환경과 문제점
  2. 해결책

1. 가정 해 본 환경과 문제점

  • 인터넷 액세스를 제한한 환경에서 기계 학습을 진행 하고 싶다.
  • Amazon SageMaker 노트북 인스턴스 이용을 가정한다. 특정 VPC의 프라이빗 서브넷에 붙이면서 (NAT Gateway를 통한)인터넷으로 직접 액세스를 제한한다.
  • 개인 정보는 S3버킷에 배치하여 VPC엔드포인트 경유로 SageMaker 노트북 인스턴스에서 이용한다.

위와 같이 기계학습에 이용할 데이터가 외부에 유출되지 않을 환경을 가정 하였지만, 한 가지 문제점이 있었습니다.

Download 버튼으로 Jupyter상에서 이용하고 있는 데이터를 다운로드 가능하다는 점 입니다. 이로 인해 AWS 내의 파일을 로컬 PC로 다운로드 할 수 있었습니다.

또 다운로드 이력은 기본 설정으로는 로그로 확인이 불가하여 ‘언제, 누가 파일을 외부에 가지고 갔는지’에 대해 알 수 없는 상황 이었습니다.

상기 2가지를 어떻게 해결할지에 대해 다음 장에서 기재 해 보겠습니다.

2. 해결책

Amazon WorkSpaces를 이용한다

로컬 PC가 직접 SageMaker와 주고 받는 건 피하고 싶어, 한 가지 해결책으로 생각한 것이 Amazon WorkSpaces를 이용하여 폐쇄 환경(혹은 폐쇄망)을 이용하는 것 이었습니다.

먼저 Amazon WorkSpaces에 로그인을 하고, WorkSpaces에서 서명된 URL로 SageMaker 노트북 인스턴스(Jupyter 화면)에 액세스 합니다.

  1. Amazon WorkSpaces에는 클라이언트 소프트로 로그인을 진행 하면 폐쇄된 환경에서 조작 가능합니다.
  2. SageMaker용 VPC엔드포인트를 별도 준비 하는 것으로 WorkSpaces에서 SageMaker 노트북 인스턴스에 로그인이나 API실행이 가능합니다.

https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-presigned-notebook-instance-url.html

예를 들어, AWS CLI 인스톨이 완료된 WorkSpaces를 커스텀으로 준비하여 WorkSpaces내의 CUI (커스텀 프롬프트 등)로 서명된 URL발행 커맨드를 실행 합니다. WorkSpaces내 Web브라우저에서 SageMaker 노트북 인스턴스에 액세스가 가능합니다.

이에 따라 Jupyter서버 화면에서 Download버튼을 눌렀을 때에 데이터는 WorkSpaces에 다운로드 되기 때문에 AWS 환경 밖에서 직접 파일을 다운로드 하는 것은 불가합니다.

CloudWatch Logs에 다운로드 로그를 남긴다

라이프 사이클 설정을 이용하여 SageMaker 노트북 인스턴스가 기동 할 때마다 하기 처리를 실행 하도록 합니다.

#!/bin/bash

set -e
echo “c.JupyterApp.log_level = 10” >> /home/ec2-user/.jupyter/jupyter_notebook_config.py
systemctl restart jupyter-server

결과적으로 ‘Download’를 실행 하면 CloudWatch Logs에 로그가 남게 됩니다.

위와 같은 대응으로 AWS 외부에 데이터 유출을 막고 다운로드의 증적을 남길 수 있게 됩니다.

이상으로 간단한 Tip이지만 참고가 되셨으면 합니다.

읽어 주셔서 감사드립니다 !

원문게시글 : https://zenn.dev/megazone_japan/articles/3b4a5291f4ec2c

메가존 일본 법인 블로그에 업로드 중인 게시글로 작성자 아가(阿河)님의 동의를 얻어 번역한 게시글 입니다.

--

--

MZC_Global
Cloud Villains

A blog post will be posted from the global branch of MegazoneCloud