AI Platform Notebooks의 기밀 데이터를 보호하는 데 도움이 되는 새로운 청사진

Matthieu Mayran
Cloud Solutions Architect, Google Cloud
Suds Narasimhan
Product Manager, Google Cloud
* 본 아티클의 원문은 2021년 5월 4일 Google Cloud 블로그(영문)에 게재되었습니다.
업계에서 가장 신뢰할 수 있는 클라우드가 되기 위해 Google Cloud에서 기울이는 노력의 중심에는 공통된 운명에 대한 신념이 있습니다. 이러한 신념을 바탕으로 적극적인 조치를 취해 Google의 플랫폼에서 고객의 보안을 강화하고자 합니다. Google Cloud는 고객이 보안을 더욱 간편하게 구현할 수 있도록 전문가의 의견이 담긴 안내서를 보안 청사진 형태로 제공합니다. 최근에는 고객이 Google Cloud를 시작할 때부터 보안 기능을 탑재할 수 있도록 업데이트된 Google Cloud 보안 기반 가이드와 배포 가능한 청사진을 발표했습니다. 오늘 Google Cloud는 고객이 기밀 데이터가 포함된 AI Platform Notebooks를 보호하는 데이터 거버넌스와 보안 정책을 간편하게 적용할 수 있도록 도와주는 AI Platform Notebooks의 기밀 데이터 보호 청사진 가이드와 배포 가능한 청사진을 청사진 포트폴리오에 추가합니다.
AI에서 보안과 개인 정보 보호는 특히 중요합니다. AI 및 ML 프로젝트의 핵심에 기밀 데이터가 있는 경우가 많기 때문입니다. 이번 블로그 게시물에서는 모든 관련 보안 레이어에서 다음과 같은 고수준의 노트북 흐름을 보호하는 방법을 집중적으로 소개합니다.


AI Platform Notebooks는 기업에 안전한 통합 JupyterLab 환경을 제공합니다. 기업의 데이터 과학자들은 AI Platform Notebooks를 사용하여 실험하고, 코드를 개발하고, 모델을 배포합니다. 몇 번만 클릭하면 TensorFlow Enterprise, PyTorch, RAPIDS 같은 인기 딥 러닝 프레임워크와 함께 메모장을 간편하게 시작할 수 있습니다. 현재 AI Platform Notebooks는 Deep Learning Virtual Machines 또는 Deep Learning Containers에서 실행할 수 있습니다.
특히 금융 서비스, 의료, 생명과학처럼 규제가 엄격한 업계에 속한 기업 고객은 JupyterLab Notebooks를 안전한 환경에서 실행하고 노트북과 데이터에 대한 액세스 제어를 원할 수 있습니다. AI Platform Notebooks는 처음부터 이러한 고객을 염두에 두고 빌드되어 보안과 액세스 제어를 서비스의 핵심 요소로 간주합니다. 최근 Google Cloud에서는 VPC 서비스 제어(VPC-SC), 고객 관리 암호화 키(CMEK), 기타 AI Platform Notebooks용 기능을 포함한 여러 보안 기능의 정식 버전을 발표했습니다. 하지만 보안을 구현하는 데에는 기능뿐 아니라 관행과 프로세스도 중요합니다. 데이터와 Notebooks 환경을 보호하는 데 도움을 주는 단계별 안내 역할을 하는 청사진을 살펴보겠습니다.
AI Platform Notebooks는 VPC-SC, 공유 VPC, 비공개 IP 관리를 통해 널리 사용되는 Google Cloud Platform 기업 보안 아키텍처를 지원합니다. 보안 VM을 AI Platform Notebooks용 Compute 인스턴스로 실행하고 CMEK로 디스크의 데이터를 암호화할 수 있습니다. AI Platform Notebooks에 사전 정의된 두 가지 사용자 액세스 모델(단일 사용자 또는 서비스 계정 사용) 가운데 하나를 선택할 수 있습니다. 또한 Cloud Identity and Access Management(IAM) 구성에 따라 액세스를 맞춤설정할 수도 있습니다. AI Platform Notebooks의 컨텍스트에서 이러한 보안 기능을 자세히 알아보겠습니다.
Compute Engine 보안
보안 VM을 갖춘 AI Platform Notebooks는 루트킷과 부트킷으로부터 보호하는 데 도움이 되는 다양한 보안 제어를 지원합니다. Notebooks API와 DLVM Debian 10 이미지에서 사용할 수 있는 이 기능은 원격 공격, 권한 에스컬레이션, 악의적인 내부 사용자 같은 위협으로부터 기업 워크로드를 보호하는 데 유용합니다. 이 기능은 안전하고 신중한 부팅, Virtual Trusted Platform Module(vTPM), UEFI 펌웨어, 무결성 모니터링과 같은 고급 플랫폼 보안 기능을 활용합니다. 보안 VM 노트북 인스턴스에서는 Compute Engine이 기본적으로 Virtual Trusted Platform Module(vTPM)과 무결성 모니터링 옵션을 사용합니다. 이 기능과 더불어 Notebooks API에서 제공하는 업그레이드 엔드포인트를 사용하여 수동이나 자동 업그레이드를 통해 자동으로 운영체제를 최신 DLVM 이미지로 업데이트할 수 있습니다.
데이터 암호화
AI Platform Notebooks 인스턴스에 CMEK를 사용 설정하면 Google이 관리하는 키가 아니라 사용자가 지정하는 키가 VM의 부팅 디스크 및 데이터 디스크에 있는 데이터를 암호화하는 데 사용됩니다. 일반적으로 CMEK는 데이터를 암호화하는 데 사용되는 키를 완전히 제어해야 하는 경우에 가장 유용합니다. CMEK를 사용하면 Cloud KMS 내에서 키를 관리할 수 있습니다. 예를 들어 키를 순환 또는 사용 중지하거나 Cloud KMS API를 사용하여 순환 일정을 설정할 수 있습니다.
데이터 무단 반출 위험 완화
VPC 서비스 제어(VPC-SC)는 Cloud Storage와 BigQuery 같은 Google Cloud 서비스에서 데이터 무단 반출 위험을 완화하는 기능을 향상합니다.
AI Platform Notebooks는 VPC-SC를 지원함으로써 서비스 작업을 사용하여 경계 외부에 있는 리소스에서 데이터를 읽거나 리소스에 데이터를 복사하는 것을 방지합니다. 예를 들어 'gsutil cp' 명령어를 사용하여 퍼블릭 Cloud Storage 버킷으로 복사하거나 'bq mk' 명령어를 사용하여 영구 외부 BigQuery 테이블로 복사하지 못하도록 합니다.
액세스 제어 및 감사 로그
AI Platform Notebooks에는 특정 ID and Access Management(IAM) 역할 집합이 있습니다. 사전 정의된 각 역할에는 권한 집합이 포함되어 있습니다. 프로젝트에 새 구성원을 추가할 때 IAM 정책을 사용하여 해당 구성원에게 하나 이상의 IAM 역할을 부여할 수 있습니다. 각 IAM 역할에는 구성원에게 특정 리소스에 대한 액세스 권한을 부여하는 권한이 포함됩니다. AI Platform Notebooks IAM 권한이 노트북 인스턴스를 관리하는 데 사용되므로 Notebooks API를 통해 AI Platform Notebooks 인스턴스를 만들고, 삭제하고, 수정할 수 있습니다. (JupyterLab 액세스를 구성하려면 문제 해결 리소스를 참조하세요.)
AI Platform Notebooks는 리소스의 구성 또는 메타데이터를 수정하는 작업을 기록하는 관리 활동 감사 로그를 작성합니다.
이러한 보안 기능을 염두에 두고 AI Platform Notebooks의 특히 유용한 사용 사례를 몇 가지 알아보겠습니다.
1) 고객이 데이터 및 메모장 인스턴스에 적용된 IT 인프라에 적용한 것과 동일한 보안 조치와 제어를 원하는 경우
2) 고객이 데이터 과학팀에서 데이터에 액세스할 때 간편하게 적용할 수 있는 일관된 보안 정책을 원하는 경우
3) 고객이 민감한 정보에 대한 액세스 권한을 특정 개인이나 팀으로 제한하고 해당 데이터에 대한 광범위한 액세스를 방지하려는 경우
AI Platform Notebooks 보안 권장사항
Google Cloud에서는 네트워크, 엔드포인트, 애플리케이션, 데이터, 사용자 액세스를 포함하여 여러 레이어에서 보안 우려를 처리하는 기능과 제품을 제공합니다. 조직마다 상황이 다르지만 메모장 배포를 비롯하여 Cloud 환경 보안에 관해 많은 고객이 공통적인 요구사항을 가지고 있습니다.
새로운 AI Platform Notebooks의 기밀 데이터 보호 청사진 가이드는 다음과 같은 이점을 제공하여 AI Platform Notebooks를 사용할 때 보안 제어를 설정하고 데이터 무단 반출 위험을 완화하도록 도와줍니다.
고객의 공통적인 의견을 바탕으로 권장사항을 실행하도록 돕습니다.
Terraform으로 선언적 구성을 사용하여 배포 시간을 최소화합니다.
Google Cloud 보안 기반 청사진을 활용하여 재현성을 가능하게 합니다.
청사진은 다음과 같은 아키텍처를 배포합니다.


위 다이어그램은 보안을 구현하는 아키텍처를 다음 접근법으로 보여줍니다.
가능한 한 신속하게 일반적인 컨텍스트를 중심으로 리소스를 수집합니다.
승인 정책을 설정할 때 최소 권한 원칙을 적용합니다.
필요한 커뮤니케이션만 허용하는 네트워크 경계를 만듭니다.
데이터 및 소프트웨어 수준에서 민감한 정보를 보호합니다.
1. 가능한 한 신속하게 일반적인 컨텍스트를 중심으로 리소스를 수집합니다
Google Cloud를 사용하면 맞춤설정할 수 있는 리소스 계층 구조를 사용하는 공통 주제를 공유하는 리소스를 수집할 수 있습니다. Google Cloud 보안 기반 청사진은 기본 조직의 계층 구조를 설정합니다. 청사진은 폴더와 AI Platform Notebooks를 사용하는 동안 민감한 프로덕션 데이터를 취급하는 것과 관련된 폴더와 프로젝트를 추가합니다.
'production' 폴더 아래의 'trusted' 폴더에는 논리 애플리케이션에 따라 구성된 3개의 프로젝트가 포함됩니다.
- 'trusted-kms'는 데이터를 보호하는 키와 보안 비밀 같은 리소스를 수집합니다.
- 'trusted-data'는 민감한 정보를 수집합니다.
- 'trusted-analytics'는 데이터에 액세스하는 메모장 같은 리소스를 수집합니다.
공통된 컨텍스트를 중심으로 리소스를 그룹화하면 고수준의 리소스 관리가 가능하고 리소스 수준에서 규칙을 설정하는 것과 비교해 다음과 같은 장점이 있습니다.
보안 침해 위험을 줄이는 데 유용합니다. 원하는 항목에 보안 규칙을 적용하고 데이터 계층 구조 전반의 정책 상속을 통해 보안 규칙을 하위 수준으로 전파할 수 있습니다.
관리자가 리소스 간 브리지를 적극적으로 연결하도록 합니다. 기본적으로 프로젝트는 리소스의 샌드박스 환경입니다.
향후 조직 변경을 촉진합니다. 높은 수준에 규칙을 설정하면 리소스 그룹을 긴밀하게 모으는 데 도움이 됩니다.
청사진은 보안에 대해 최소 권한 접근법을 촉진하기 위해 다음을 수행합니다.
- 신뢰할 수 있는 폴더 수준에서 구체적인 정책을 설정합니다.
- 프로젝트 수준에서ID 및 승인 역할을 만듭니다.
- 기존 공유 VPC 환경을 다시 사용하고 여러 프로젝트 수준에서 규칙을 추가합니다.
2. 필요한 커뮤니케이션만 허용하는 네트워크 경계를 만듭니다.
Google Cloud에서는 VPC를 제공하여 리소스 네트워크를 정의합니다. 이전 섹션에서는 프로젝트를 통해 기능을 분리하는 것을 설명했습니다. VPC는 프로젝트에 속하기 때문에 기본적으로 VPC의 리소스는 다른 VPC의 리소스와 통신할 수 없습니다.
이제 관리자는 네트워크 통신을 허용하거나 차단해야 합니다.
인터넷 사용: Google의 인스턴스에 내부 및 외부 IP 주소가 있을 수 있습니다. 청사진은 신뢰할 수 있는 폴더 수준에서 외부 IP 주소의 사용을 금지하는 기본 정책을 설정합니다.
Google API 사용: 외부 IP 주소가 없으면 인스턴스는 Cloud Storage 및 BigQuery의 퍼블릭 엔드포인트에 액세스할 수 없습니다. 청사진은 VPC 수준에서 Google API로 비공개 연결을 설정하여 메모장과 해당 서비스의 통신을 허용합니다.
경계 내: 노트북이 액세스할 수 있는 BigQuery나 Cloud Storage 같은 환경을 제한합니다. 청사진은 VPC 서비스 제어를 설정하여 신뢰할 수 있는 경계를 만듭니다. 이 경계 내에서는 특정 프로젝트의 리소스만 사용자/기기 클라이언트에 대한 액세스 정책에 따라 특정 서비스에 액세스할 수 있습니다.
리소스 간: 청사진은 기존 공유 VPC를 사용하는 노트북을 만듭니다. 공유 VPC에는 인스턴스 간 통신에 사용할 수 있는 프로토콜을 제한하는 제한적 방화벽 규칙이 있어야 합니다.
청사진은 Google Cloud의 네트워크 기능을 사용하여 다음과 같이 최소 필수 네트워크 경로를 설정합니다.
- 사용자가 허용 목록에 등록된 기기를 통해 Google Cloud Endpoints에 액세스할 수 있도록 합니다.
- SSH 터널 생성을 허용하여 사용자가 메모장 인스턴스에 액세스할 수 있도록 합니다.
- 승인된 경계 내의 비공개 연결을 통해 인스턴스를 Google 서비스에 연결합니다.
3. 승인 정책을 설정할 때 최소 권한 원칙을 적용합니다.
Google Cloud에서는 간편한 플랫폼 온보딩을 위해 기본 Cloud IAM 설정을 제공합니다. 프로덕션 환경에서는 이러한 기본 리소스를 무시하는 것이 좋습니다. Cloud IAM을 사용하여 고객 요구사항에 따라 커스텀 ID와 승인 규칙을 만듭니다.
Google Cloud에서는 업무 분리를 설정하면서 최소 권한 원칙을 구현하는 기능을 제공합니다.
커스텀 역할은 최소 권한 집합을 그룹화하여 액세스를 제한하는 방법을 제공합니다. 이를 통해 역할은 ID가 지정된 작업만 수행하도록 만들 수 있습니다.
서비스 계정은 인스턴스 ID를 나타낼 수 있으며, 신뢰할 수 있는 사용자를 대신할 수 있습니다. 이를 통해 일관된 동작이 가능하며 컴퓨터 리소스 외부에서 사용자 작업이 제한됩니다.
사용자 캐릭터에 기반한 논리 ID 그룹은 단독 ID와 잊혀졌을 가능성이 있는 ID의 수를 제한하여 관리를 간소화합니다.
Cloud IAM 정책은 역할과 ID를 연결합니다. 이에 따라 사용자는 승인되지 않은 작업의 위험을 완화하면서 업무를 수행할 수 있습니다.
청사진 활용의 예는 다음과 같습니다.
- 신뢰할 수 있는 분석 프로젝트에서 작업을 실행하고 메모장 인스턴스용 ID로 작동할 수 있는 역할이 충분한 서비스 계정을 만듭니다.
- 미리 만든 신뢰할 수 있는 과학자 집단에 역할을 할당하고 메모장을 사용하여 데이터와 상호작용할 수 있게 합니다.
- BigQuery의 민감한 정보를 볼 수는 있지만 데이터를 수정하거나 내보낼 수 없는 권한을 가진 커스텀 역할을 신뢰할 수 있는 데이터 프로젝트에 만듭니다.
- 커스텀 역할을 관련 사용자 그룹 및 서비스 계정과 결합하여 신뢰할 수 있는 데이터 프로젝트에서 데이터와 상호작용할 수 있게 합니다.
청사진은 Terraform을 통해 다음과 같은 흐름을 만듭니다.
trusted_scientists 변수의 사용자를 미리 만든 신뢰할 수 있는 데이터 과학자 Google Groups에추가합니다.
신뢰할 수 있는 데이터 과학자 그룹에 ID 정책을 설정하여 서비스 계정 sa_p_notebook_compute를 사용할 수 있게 합니다.
신뢰할 수 있는 사용자별로 개별 메모장 인스턴스를 만들고 sa_p_notebook_compute 서비스 계정을 인스턴스용 ID로 활용합니다.
이러한 설정으로 사용자는 신뢰할 수 있는 분석 프로젝트의 인스턴스용 ID로 작동하는 서비스 계정을 통해 신뢰할 수 있는 데이터 프로젝트의 기밀 데이터에 액세스할 수 있습니다.
참고: 신뢰할 수 있는 모든 사용자는 모든 기밀 데이터에 액세스할 수 있습니다. 권한을 좁게 설정하는 것은 이 청사진의 범위에서 벗어납니다. 좁은 권한은 서비스 계정을 여러 개 만들고, 데이터 액세스를 필수 수준(예: 특정 열)에 제한한 후, 각 서비스 계정을 관련 ID 그룹에 할당하여 설정할 수 있습니다.
4. 데이터 수준 및 소프트웨어 수준에서 민감한 정보를 보호합니다
Google Cloud는 저장 데이터를 보호하는 기본 기능과 더불어 메모장을 만드는 추가 보안 기능을 제공합니다.
청사진은 키를 사용하여 저장 데이터를 암호화하고 다음을 수행하는 방법을 보여줍니다.
●자체 프로젝트 내 가용성이 높은 고객 관리자 키를 생성합니다.
●선택한 ID에 대한 키 액세스를 제한합니다.
●키를 사용하여 관련 경계 내 다른 프로젝트의 BigQuery, Cloud Storage, AI Platform Notebooks 데이터를 보호합니다.
자세한 내용은 청사진 가이드의 키 관리 섹션을 참조하세요.
AI Platform Notebooks는 Compute Engine 인스턴스의 Jupyter Notebook 설정을 활용합니다. 청사진은 메모장을 만들 때 AI Platform Notebooks 맞춤설정 기능을 사용하여 다음을 수행합니다.
- 'sudo' 방지 같은 추가 보안 매개변수를 설정합니다.
- 배포 스크립트를 호출할 때 외부 리소스에 대한 액세스를 제한합니다.
- Jupyter 설정을 수정하여 Jupyterlab UI에서 파일을 다운로드하는 위험을 완화합니다.
자세한 내용은 청사진 가이드의 AI Platform Notebooks 보안 제어 섹션을 참조하세요.
데이터 과학자의 역량을 강화하면서 기밀 데이터를 보호하는 방법에 대해 자세히 알아보려면 AI Platform Notebooks의 기밀 데이터 보호를 참조하세요. Google Cloud 보안 권장사항 센터에서 제공하는 계속 확장되는 청사진 포트폴리오와 더불어 이 청사진이 처음부터 Google Cloud 배포에 보안 기능을 탑재하고 Google과 함께 보안을 강화하는 사용자에게 도움이 되기를 바랍니다.