2018년 12월 30일 일요일

AWS Public Cloud에서 개인정보보호법 안전성 확보조치 구현이 가능할까?

요즘 Public Cloud가 말이 많다.  최근에는 보안을 중요하게 생각하는 금융권에서도 Public Cloud 도입을 허용하고자 하는 움직임도 있으며, 조만간 가이드라인이 나올 것이라고도 한다.  아직까지 국내 개인정보보호법 때문에 Public Cloud 도입을 망설이고 있다면 법을 준수하면서 Public Cloud 도입이 가능한지 Q&A 형태로 살펴보자.

우선 주요 내용은 아마존 AWS 서비스를 기반으로 작성되었으며 나중에 MS Azure나 구글 등도 학습하게 되면 따로 작성하겠다.


Q1. AWS는 해외 서비스라서 해외이전 동의가 필요하기 때문에 도입이 꺼려진다.

A1. 그러지 않아도 된다.  AWS 서비스를 가입하면 리전(Region)을 선택할 수 있도록 되어 있다.  이 리전이라는 녀석은 데이터의 이동 범위를 제한하는 것인데 다행이 Seoul 리전도 AWS가 제공하고 있기 때문에 데이터가 물리적으로는 한국에 있다.  한국에 데이터 센터 1개 이상이 Availability Zone을 구성하고 2개 이상의 AZ(Availability Zone)이 하나의 리전을 구성하게 되는데 이미 아마존은 국내에 2개 이상의 데이터센터가 구성되어 있어 Seoul 리전이 있다.  따라서 국내에 데이터가 존재하므로 개인정보의 해외이전이 발생하지 않는다.  다만 내부적으로 아키텍처를 설계할 때 DR 또는 백업을 위해 Multi-Region을 고려한다면 데이터가 국내가 아닌 다른 리전으로 전송될 수 있으므로 이 때는 해외이전과 관련된 준수사항/내용에 대해 반드시 법적 검토를 받아야 한다. (정보주체의 동의를 받거나, 위탁과 관련하여 고지 하는 등의 조치가 필요할 수 있음)

참고로 MS Azure도 국내 리전이 있으며 구글은 아직 없다.  (구글은 내년(2019년) 하반기 예정이라고 함)


Q2. 가상서버를 주로 이용하기 때문에 기술적인 보호대책을 적용하기 어렵다.

A2. 맞기도 하고 틀리기도 하다.  기존에 사용하고 있는 보안솔루션을 그대로 AWS에 탑재하기 어렵거나 불가능 할 수 있다.  하지만 각 보호대책을 AWS가 제공하는 다양한 보안 기술과 메커니즘으로 구현은 가능하다.  예를 들어 DB 암호화 솔루션을 현재 사용하는 경우, Plug-in 방식으로 적용이 되어 있다면 AWS에 서비스를 올릴 때 직접 EC2 인스턴스를 생성하여 DBMS를 설치, 사용하는 경우에는 적용 할 수 있지만 AWS의 DBMS 서비스 중 하나인 Amazon RDS를 이용 할 경우에는 적용이 불가능하다.  하지만 Amazon RDS는 TDE 방식의 암호화를 지원하므로 이때는 TDE 암호화를 적용하면 암호화는 해결 할 수 있다.

이렇듯 메커니즘만 다를 뿐 기술적 보호조치를 구현하는 것은 3rd Party 보안 솔루션을 활용하는 방안도 있기 때문에 불가능하지 않다.  아래 표는 개인정보보호법의 안전성 확보조치 기준과 정보통신망법의 기술적 보호조치 기준을 AWS에서 어떤 기능으로 구현할 수 있는지를 간단하게 표시하였다.  물론 AWS 환경에서는 물리적인 보호조치는 아마존이 책임지므로 우리가 해야 할 일은 없다.




영역 각각에 대해 구현 방안을 설명하는 것은 다음 기회로 미루고 일단은 이정도 범위에서 가능하다는 정도만 이해하면 될 것 같다.


Q3. AWS도 개인정보 수탁사가 되므로 위수탁 계약과 수탁사 관리를 해야하는가?

A3. 아직 모호하다.  아니 모호하다기 보다는 솔직히 어떻게 해야하는지 잘 모르겠다.  우선 내가 개인정보처리시스템을 AWS 올려서 서비스를 하고 있다면, 엄격하고 보수적으로 적용하면 AWS는 당연히 개인정보 취급을 위탁 받은 수탁사로 볼 수 있다.  IT 시스템을 운영하기 때문에...  그런데 또 한편으로는 AWS는 고객의 데이터에 접근 할 수 있는 권한이 없다고 한다.  그러면 과연 개인정보 처리를 위탁 받았다고 볼 수 있는것인가?라는 관점이 생긴다.

또한 AWS가 제공하는 서비스에 따라 위와 같이 위탁이 될 수도 있고 안될 수도 있다.  예를 들어 EC2 인스턴스에 DB를 직접 올려서 서비스를 하면 AWS는 데이터를 볼 수 없어 위탁으로 보기 애매하지만, Amazon RDS라는 DBMS 서비스를 이용하게 되면 AWS가 데이터를 볼 수 없다고 보기 힘들다.  따라서 개인정보 위탁으로 볼 수 밖에 없다. (하지만 이런 경우라도 "개인정보 처리"를 위탁했다고 보기는 어렵다고 해석하기도 한다.)

만약 보수적으로 봐서 위탁이 맞다고 한다면, 과연 AWS가 계약 시 위수탁 계약을 별도로 해줄 것인가?  또한 정기적으로 수탁사 관리감독을 위해 점검을 할 수 있을 것인가 하면 또 그것도 제한적이거나 불가능하다.  이런 경우 어떻게 해야 할까?

우선 한가지 방안은 AWS가 국내 ISMS 인증을 취득 했기 때문에 해당 인증을 활용하여 점검을 대신 할 수 있을 것 같다.  실제로 수탁사가 위탁사보다 더 큰 규모의 회사이거나 보안 수준이 상대적으로 더 높을 경우에는 정보보호 인증 여부를 확인하여 제공 받는 것도 수탁서 점검을 대신 할 수 있다.  (물론 case by case이기 때문에 반드시 관련 기관에 문의하도록 하자)
또한, 국내법 중 「클라우드컴퓨팅 발전 및 이용자 보호에 관한 법률」에 클라우드 서비스가 제공자가 지켜야 하는 보안 기준이 있다.  하지만 현재까지는 해당 기준은 권고 수준인 것으로 보인다.

결론을 내고 싶지만 법적인 영역이라 딱 부러지게 말하기 보다는 위에서 언급한 내용을 바탕으로 반드시 법적인 검토를 받아보는 것이 바람직하다.  정보보안이 모든 책임을 다 떠 안을 수는 없지 않은가?


이렇듯 아직까지 완벽하지는 않지만 대세는 점차 Public Cloud 쪽으로 기울어지고 있다.  법이 시장을 쫓아오고 있는 중이기 때문에 조만간 관련하여 다양한 법 개정이 있을 것으로 예상하고 있으며, 이를 주의깊게 살펴볼 예정이다.



2018년 12월 29일 토요일

AWS 자격증 - AWS Cloud Practitioner 취득 후기


어쩌다보니 요즘 퍼블릭 클라우드의 세계로 빨려들어가고 있다.  그래서 기왕에 공부하는거 한번 자격증도 취득해보자는 생각에 도전하게 되었는데 한글로 된 후기 정보가 생각보다는 많지 않아 작은 보탬이라도 되고자 글을 적기로 한다.

우선 나는 퍼블릭 클라우드에서 정보보안은 어떻게 해야 할까?라는 단순한 궁금증에서 시작했다.  그래서 퍼블릭 클라우드의 선두주자로 알려진 아마존(Amazon) AWS에서 먼저 출발해보기로 했다.  AWS Training 사이트에 가면 관련 자격증 정보가 나온다.  나의 최종 목표는 AWS Security - Specialty 자격증이었다.  그런데 2018년 10월 전까지만 해도 Security 자격증을 취득하려면 사전 자격으로 Cloud Practitioner 또는 그 이상의 다른 자격증이 있어야했다.  즉, Security 자격증을 따기 위해서는 사전에 다른 자격이 있어야 한다는 뜻이다.

그런데 그 중 가장 일반적으로 쉬워보이는 자격증이 AWS Cloud Practitioner 자격인데 순전히 Security를 취득하기 위해 Practitioner 자격증에 도전하게 되었다.


Cert-Roadmap-WEB
[출처: AWS Training https://aws.amazon.com/ko/certification/]


참고로 지금은 이러한 제약 조건이 없어졌다.  10월 말 쯤 AWS Training 사이트에 이러한 사전 제약을 없앤다는 공지가 떴다.  하지만 나는 그냥 그대로 시험을 보기로 했다.  그래도 AWS 서비스에 대한 기본적인 지식은 있어야 할 것 같아서 그랬는데 결과적으로 유효한 결정이었던 것 같다.  혹시 다른 자격을 준비하고 있다면 본격적으로 공부하기 전에 AWS의 다양한 서비스와 기본 사상을 공부하기 위해 아래 내용들은 반드시 공부를 할 것을 추천한다.  비록 Practitioner 자격증 취득은 아니더라도 다른 자격증을 공부하기 위한 기본 지식임에는 분명하다.


우선 AWS Cloud Practitioner 자격증은 AWS 서비스의 기본적인 이해를 알아보는 시험이다.  해당 사이트에서 제공하는 샘플 문제를 보고, 그 수준에 맞게 AWS 서비스 백서를 읽어보면서 공부를 하면 크게 어렵지 않다.  대부분 어려움을 겪는 사람들은 달달 외우려고 해서 어려움을 토로하는데 AWS 자격증 공부에도 요령이 필요하다.

우선 AWS가 엄청나게 다양한 서비스를 제공하는데 서비스 마다 명칭이 다 다르기 때문에 시작할 때 외워야 하는 것이 많다고 느끼게 된다.  이런 서비스 명칭들을 무작정 외우는데는 한계가 있을 수 밖에 없다.



위에서 보는 것 처럼 "분석"이라는 카테고리 하나에도 이렇게나 많은 서비스를 제공하고 있다.  Athena, CloudSearch, EMR, Kinesis, Redshift... 등등.  이런 서비스를 각각의 용도와 특징을 외우려고만 하면 무척 어렵다.  그래서 단순하게 외우기 보다는 아마존이 이러한 서비스의 이름을 지을 때 어떤 사상과 생각으로 지었는지를 고민하면서 공부하면 조금 더 쉽게 이해할 수 있다.

예를 들면 AWS 환경에서 모든 API 로그들을 기록하는 서비스를 CloudTrail 이라고 하는데 Trail이라는 단어의 뜻이 "흔적"을 의미한다.  AWS 환경에서 행해지는 모든 행위들은 흔적을 남기게 되는데 그 흔적들을 기록하는 서비스가 CloudTrail 인 것이다.  그리고 Route53 서비스는 AWS의 DNS(Domain Name Service)인데 DNS 쿼리를 위해 사용하는 port 번호가 53번이다.  이런식으로 아마존이 자신들의 서비스 명을 지을 때 서비스 명을 지은 사람들이 고민을 했을 법한 고민을 함께 하면서 그 이름과 연관시켜 해당 서비스의 기능과 특징을 함께 이해한다면 조금 더 쉽게 접근 할 수 있다.

그리고 마지막으로 해당 서비스들을 단위단위로 외우지 말고 엮어서 이해해야 한다.  단독으로 서비스가 되는 것은 드물며 특정 서비스의 output이 다른 서비스의 input이 되는 경우가 많다.

CloudTrail에서 기록되는 API 호출 기록들(log 들)은 CloudWatch Logs 라는 서비스에 취합되며 이러한 로그들은 CloudWatch metric(metric의 뜻이 측정기준임을 이해하자)을 통해 특정 임계치에 다다르면 CloudWatch Event를 통해 Event를 발생시킬 수 있다.  이런 이벤트는 Amazon SNS(Simple Notification Service)로 이메일이나 SMS 등으로 관리자에게 알람을 보낼 수 있다.

이런식으로 각각의 서비스의 기능을 다른 서비스의 기능과 엮어서 이해하면 잊어버리지 않고 이해할 수 있게 된다.

공부할 때 참고할 수 있는 자료는 아래를 참고하면 된다.




참고로 시험 범위는 아래와 같으며 자세한 내용은 위 "시험안내서"를 참고하면 된다.




도메인 1: 클라우드 개념
1.1 AWS 클라우드 및 가치 제안 정의
1.2 AWS 클라우드의 경제적 측면 파악
1.3 클라우드 아키텍처의 다양한 설계 원리 나열

도메인 2: 보안
2.1 AWS 책임 분담 모델 정의
2.2 AWS 클라우드의 보안 및 규정 준수 개념 정의
2.3 AWS 액세스 관리 기능 확인
2.4 보안 지원 리소스 파악

도메인 3: 기술
3.1 AWS 클라우드 내 배치 및 운영 방법 정의
3.2 AWS 글로벌 인프라 정의
3.3 핵심 AWS 서비스 파악
3.4 기술 지원 리소스 파악

도메인 4: 결제 및 요금
4.1 AWS의 다양한 요금 모델 비교 및 대조
4.2 AWS 결제 및 요금과 관련된 여러 가지 계정 구조 인식
4.3 결제 지원에 이용할 수 있는 리소스 파악


한가지 주의아닌 주의사항은 해당 자격증을 공부하다보면 나도 모르게 아마존 AWS 서비스의 옹오자가 될 수 있다.  와, 이런 것도 되네? 하면서 점점 빠져들게 될 수 있으니 최대한 객관성을 유지하면서 공부하면 좋을 것 같다.


다음에는 AWS Security Specialty 자격증을 취득한 후기를 작성해보겠다.