Vertex AI Workbench 사용자 관리 노트북의 기밀 데이터 보호

Last reviewed 2021-04-29 UTC

이 문서에서는 Vertex AI Workbench 사용자 관리 노트북에서 기밀 데이터를 보호하는 데 사용할 수 있는 보안 및 제어 레이어를 제안합니다. 이는 다음 요소로 구성된 청사진 솔루션의 일부입니다.

이 문서에서 기밀 데이터는 기업 내 사용자가 액세스하기 위해 더 높은 수준의 권한이 필요한 민감한 정보를 의미합니다. 이 문서는 사용자 관리 노트북을 관리하는 팀을 대상으로 작성되었습니다.

이 문서에서는 클라우드 인프라 배포를 보호하기 위해 기본적인 보안 제어 세트를 이미 구성했다고 가정합니다. 청사진을 사용하면 이러한 기존 보안 제어에 추가 제어를 계층화하여 사용자 관리 노트북에서 기밀 정보를 보호할 수 있습니다. Google Cloud 배포로 보안을 구축하기 위한 권장사항에 대한 자세한 내용은 Google Cloud 엔터프라이즈 기반 청사진을 참조하세요.

소개

기밀 데이터로 사용자 관리 노트북을 보호하기 위해 데이터 거버넌스 및 보안 정책을 적용하려면 다음 목표 간에 균형을 유지해야 합니다.

  • 기업 전체에 적용하는 것과 동일한 데이터 거버넌스 및 보안 관행과 제어를 사용하여 노트북 인스턴스에서 사용되는 데이터를 보호
  • 기업의 데이터 과학자가 유용한 정보를 제공하는 데 필요한 데이터에 액세스할 수 있도록 지원

기업의 데이터 과학자에게 사용자 관리 노트북의 데이터에 대한 액세스 권한을 부여하기 전에 다음을 이해해야 합니다.

  • 환경을 통해 데이터가 전송되는 방식
  • 데이터에 액세스하는 사용자

이해하는 데 도움이 되도록 다음을 고려하세요.

  • Google Cloud 리소스 계층 구조를 배포하여 데이터를 격리하는 방법
  • BigQuery의 데이터를 사용할 수 있도록 승인된 IAM 그룹
  • 데이터 거버넌스 정책이 환경에 미치는 영향

청사진과 연결된 GitHub 저장소의 Terraform 스크립트는 이 문서에 설명된 보안 제어를 구현합니다. 또한 저장소에는 데이터 거버넌스 관행을 설명하는 샘플 데이터도 포함됩니다. Google Cloud의 데이터 거버넌스에 대한 자세한 내용은 데이터 거버넌스란?을 참조하세요.

아키텍처

다음 아키텍처 다이어그램은 사용자 관리 노트북 및 암호화 키와 같은 프로젝트 계층 구조 및 리소스를 보여줍니다.

청사진의 아키텍처

이 아키텍처의 경계를 높은 트러스트 경계라고 합니다. Virtual Private Cloud(VPC)에서 사용되는 기밀 데이터를 보호하는 데 도움이 됩니다. 데이터 과학자는 높은 트러스트 경계를 통해 데이터에 액세스해야 합니다. 자세한 내용은 VPC 서비스 제어를 참조하세요.

높은 트러스터 경계에는 기밀 데이터와 상호작용하는 모든 클라우드 리소스가 포함되어 있어 데이터 거버넌스 제어를 관리하는 데 도움이 됩니다. 사용자 관리 노트북, BigQuery, Cloud Storage와 같은 서비스는 경계 내에서 트러스트 수준이 같습니다.

이 아키텍처는 또한 다음과 같은 작업에 도움이 되는 보안 제어를 만듭니다.

  • 기업에서 데이터 과학자가 사용하는 기기로의 데이터 무단 반출 위험을 완화합니다.
  • 노트북 인스턴스를 외부 네트워크 트래픽으로부터 보호합니다.
  • 노트북 인스턴스를 호스팅하는 VM에 대한 액세스를 제한합니다.

조직 구조

Resource Manager를 사용하면 프로젝트, 폴더, 조직별로 리소스를 논리적으로 그룹화할 수 있습니다. 다음 다이어그램은 프로덕션 또는 개발과 같은 다른 환경을 나타내는 폴더가 있는 리소스 계층 구조를 보여줍니다.

프로덕션 폴더와 개발자 폴더가 있는 리소스 계층 구조

프로덕션 폴더에서 신뢰할 수 있는 환경을 나타내는 새 폴더를 만듭니다.

만든 신뢰할 수 있는 폴더에 조직 정책을 추가합니다. 다음 섹션에서는 폴더, 하위 폴더, 프로젝트 내에서 정보를 구성하는 방법을 설명합니다.

신뢰할 수 있는 폴더

청사진은 사용자 관리 노트북의 프로덕션 폴더 내에 새 하위 폴더와 노트북 인스턴스가 BigQuery에서 사용하는 데이터를 도입하여 데이터를 격리하는 데 도움이 됩니다. 다음 표에서는 조직 내 폴더의 관계를 설명하고 이 청사진에서 사용하는 폴더를 나열합니다.

폴더 설명
production 테스트를 거쳐 사용할 준비가 된 클라우드 리소스가 있는 프로젝트를 포함합니다.
trusted 기밀 데이터가 있는 노트북 인스턴스의 프로젝트 및 리소스를 포함합니다. 이 폴더는 production 폴더의 하위 폴더입니다.

조직 내 프로젝트

청사진은 프로젝트를 사용하여 환경의 일부를 격리하는 데 도움이 됩니다. 이러한 프로젝트에는 프로젝트 소유자가 없으므로 적절한 IAM 그룹에 대해 명시적인 IAM 정책 binding을 만들어야 합니다.

다음 표에서는 조직 내에 필요한 프로젝트를 만드는 위치를 설명합니다.

프로젝트 상위 폴더 설명
trusted-kms trusted 데이터를 보호하는 암호화 키를 관리하는 서비스가 포함됩니다(예: Cloud HSM). 이 프로젝트는 높은 트러스트 경계에 있습니다.
trusted-data trusted 기밀 데이터를 처리하는 서비스가 포함됩니다(예: BigQuery). 이 프로젝트는 높은 트러스트 경계에 있습니다.
trusted-analytics trusted 데이터 과학자가 사용하는 사용자 관리 노트북이 포함됩니다. 이 프로젝트는 높은 트러스트 경계에 있습니다.

적용하는 보안 제어 이해

이 섹션에서는 노트북 인스턴스를 보호하는 데 도움이 되는 Google Cloud 내의 보안 제어를 설명합니다. 이 문서에서 설명하는 방식은 민감한 정보를 보호하기 위해 여러 제어 레이어를 사용합니다. 기업에서 필요에 따라 이러한 제어 레이어를 조정하는 것이 좋습니다.

조직 정책 설정

조직 정책 서비스는 Google Cloud 조직 내에서 지원되는 리소스에 대한 제한사항을 구성하는 데 사용됩니다. 다음 표에 설명된 대로 trusted 폴더에 적용되는 제약조건을 구성합니다. 정책 제약조건에 대한 자세한 내용은 조직 정책 제약조건을 참조하세요.

정책 제약조건 설명 권장 값
gcp.resourceLocations (목록) 리소스가 특정 리전에 배포되는 방법에 대한 제약조건을 정의합니다. 추가 값의 경우 <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="p0QLUJkJWl022ZPF8XOpExbgk/lxGfezRLhprMa5doZN+cJCz6j1rNnG0f6zRCY5lNvENQyutzDSQoNKf6mWtw1wA7mc7xehzQW0s0VnKKA=" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">유효한 리전 그룹</a{:>을 참조하세요 ["in:us-locations", "in:eu-locations"]
iam.disableServiceAccountCreation (부울) 값이 true이면 서비스 <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="CDx+y1R+QGNLsOA+E2D9d9ou+FEz00PeI85jCLdEq5b4Kv4CQ6p1vl0x3rS9735/" track-metadata-position="body" track-name="internalLink" track-type="solution" }=""> 계정</a{:> 생성을 방지합니다. true
iam.disableServiceAccountKeyCreation (부울) 값이 true이면 <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="WFRYDQtmB/86VDs7PZa96dou+FEz00PeI85jCLdEq5bHy+ezA0ewJmDnHN78IEaq/uqVRhG/IldRkC2L0Y9bBQ==" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">서비스 계정 키</a{:> 생성을 방지합니다. true
iam.automaticIamGrantsForDefaultServiceAccounts (부울) 값이 true이면 계정을 만들 때 프로젝트의 IAM 역할에 기본 서비스 계정이 부여되지 않도록 합니다. true
compute.requireOsLogin (부울) 값이 true이면 OS 로그인을 사용 설정합니다. 자세한 내용은 <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="Mh2WvN3PzmbL/6M7AMJ+U8xdrud5wj8XJuhclBrl/6o=" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">OS 로그인</a{:>을 참조하세요. true
constraints/compute.restrictProtocolForwardingCreationForTypes (목록) 새 전달 규칙을 내부 전용으로 제한합니다. ["is:INTERNAL"]
compute.restrictSharedVpcSubnetworks (목록) 운영 가능 리소스가 사용할 수 있는 공유 VPC 서브네트워크의 집합을 정의합니다. 공유 VPC 서브넷이 있는 프로젝트의 이름을 입력하세요.

VPC_SUBNET 서브넷을 사용자 관리 노트북에서 사용할 비공개 서브넷의 리소스 ID로 바꿉니다.
["under:projects/VPC_SUBNET"]
compute.vmExternalIpAccess (목록) 외부 IP 주소를 사용할 수 있는 권한이 있는 Compute Engine VM 인스턴스의 집합을 정의합니다. deny all=true
compute.skipDefaultNetworkCreation (부울) 값이 true인 경우 Google Cloud 리소스를 만드는 동안 Google Cloud가 기본 네트워크 및 관련 리소스 만들기를 건너뜁니다. true
compute.disableSerialPortAccess (부울) 값이 true이면 Compute Engine VM에 대한 직렬 포트 액세스를 차단합니다. true
compute.disableSerialPortLogging (부울) 값이 true이면 Compute Engine VM에서 Cloud Logging으로의 직렬 포트 로깅을 차단합니다. true

추가 정책 제어에 대한 자세한 내용은 Google Cloud 엔터프라이즈 기반 청사진을 참조하세요.

인증 및 승인

청사진을 사용하면 사용자 관리 노트북에 적용할 수 있는 IAM 제어 및 액세스 패턴을 설정할 수 있습니다. 청사진은 다음 방법으로 액세스 패턴을 정의하는 데 도움이 됩니다.

  • 높은 트러스트 데이터 과학자 그룹을 사용합니다. 개별 ID에는 데이터에 액세스할 수 있는 권한이 없습니다.
  • restrictedDataViewer라는 커스텀 IAM 역할을 정의합니다.
  • 최소 권한 원칙을 사용하여 데이터 액세스를 제한합니다.

사용자 및 그룹

높은 트러스트 경계에는 다음과 같은 두 가지 캐릭터가 있습니다.

  • 데이터 소유자: BigQuery 내에서 데이터 분류를 담당합니다.
  • 신뢰할 수 있는 데이터 과학자: 기밀 데이터를 처리할 수 있습니다.

이 캐릭터를 그룹에 연결합니다. 개별 ID에 역할을 부여하는 대신 캐릭터와 일치하는 ID를 그룹에 추가합니다.

청사진은 단일 데이터 과학자 ID만 노트북 인스턴스에 액세스할 수 있도록 데이터 과학자와 노트북 인스턴스 간의 일대일 매핑을 정의하여 최소 권한을 적용하는 데 도움이 됩니다. 개별 데이터 과학자에게 노트북 인스턴스에 대한 편집자 권한이 부여되지 않습니다.

표에는 다음 정보가 표시됩니다.

  • 그룹에 할당하는 사용자입니다.
  • 프로젝트 수준에서 그룹에 할당하는 IAM 역할입니다.
그룹 설명 역할 프로젝트
data-owner@example.com 구성원은 BigQuery 내에서 데이터 분류 및 관리를 담당합니다. <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="qZGUxiLwMwSqAayYOaEAYsqqqBP4p/061BE24HsZBYzqnuNSkSxnVKwqYjVml1pv" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">roles/bigquery.dataOwner</a{:> trusted-data
trusted-data-scientist@example.com 구성원은 신뢰할 수 있는 폴더 내에 있는 데이터에 액세스할 수 있습니다. roles/restrictedDataViewer(커스텀) trusted-data

사용자 관리 서비스 계정

Compute Engine 기본 서비스 계정 대신 사용자 관리 노트북에서 사용할 사용자 관리 서비스 계정을 만듭니다. 다음 표에서는 노트북 인스턴스의 서비스 계정 역할을 정의합니다.

서비스 계정 설명 역할 프로젝트
sa-p-notebook-compute@trusted-analytics.iam.gserviceaccount.com Vertex AI에서 노트북 인스턴스를 프로비저닝하는 데 사용하는 서비스 계정입니다.
  • roles/restrictedDataViewer(커스텀)
  • <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="qZGUxiLwMwSqAayYOaEAYsqqqBP4p/061BE24HsZBYzqnuNSkSxnVKwqYjVml1pv" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">roles/bigquery.jobUser</a{:>
  • <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="F09OE/SDdsh4rSUv6kg1NJzBt276nqedo2zyLe4cxCi9OImFy9Pn6CEbIlOwglwwkXtNx3LSV4gEFf1hFSv84Q==" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">roles/cloudkms.cryptoKeyEncrypterDecrypter</a{:>
  • roles/compute.instanceAdmin
  • roles/notebooks.viewer
trusted-analytics

또한 청사진을 사용하면 지정된 고객 관리 암호화 키(CMEK)에 대한 Google 관리 서비스 계정 액세스 권한을 제공하여 사용자 관리 노트북을 나타내는 Google 관리 서비스 계정을 구성할 수 있습니다. 이렇게 리소스별로 부여하여 사용자 관리 노트북에서 사용하는 키에 최소 권한을 적용합니다.

프로젝트에 프로젝트 소유자가 정의되어 있지 않으므로 데이터 과학자는 키를 관리할 수 없습니다.

맞춤 역할

청사진에서 내보내기 권한을 삭제하여 roles/restrictedDataViewer 커스텀 역할을 만듭니다. 커스텀 역할은 사용자가 BigQuery 테이블에서 데이터를 읽을 수 있는 사전 정의된 BigQuery dataViewer 역할을 기반으로 합니다. 이 역할을 trusted-data-scientists@example.com 그룹에 할당합니다. 다음 표에서는 roles/restrictedDataViewer 역할에서 사용하는 권한을 보여줍니다.

커스텀 역할 이름 설명 권한
roles/restrictedDataViewer 높은 트러스트 경계 내의 노트북 인스턴스를 사용하여 BigQuery의 민감한 정보를 볼 수 있게 합니다.

내보내기 권한(예: bigquery.models.export) 없이 roles/bigquery.dataViewer <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="qZGUxiLwMwSqAayYOaEAYsqqqBP4p/061BE24HsZBYzqnuNSkSxnVKwqYjVml1pv" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">역할
</a{:>을 기반으로 합니다.
bigquery.datasets.get
bigquery.datasets.getIamPolicy
bigquery.models.getData
bigquery.models.getMetadata
bigquery.models.list
bigquery.routines.get
bigquery.routines.list
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.getIamPolicy
bigquery.tables.list
resourcemanager.projects.get
resourcemanager.projects.list

최소 권한

청사진을 사용하면 최소 권한 수준이 있는 역할을 부여할 수 있습니다. 예를 들어 서비스 계정과의 공유 매핑이 아닌 단일 데이터 과학자 ID와 노트북 인스턴스 간에 일대일 매핑을 구성해야 합니다. 권한을 제한하면 데이터 과학자가 노트북 인스턴스를 호스팅하는 인스턴스에 직접 로그인하는 것을 방지할 수 있습니다.

액세스 권한 관리

trusted-data-scientists@example.com이라는 높은 트러스트 데이터 과학자 그룹의 사용자는 액세스 권한이 있습니다. 이 액세스 수준은 이러한 사용자에게 기밀 데이터에 액세스할 수 있는 ID가 있음을 의미합니다. ID팀과 협력하여 이러한 데이터 과학자 ID에 2SV가 사용 설정된 하드웨어 보안 키를 제공합니다.

네트워킹

Google Cloud 엔터프라이즈 기반 네트워크 스크립트에서 정의된 것과 같이 노트북에 공유 VPC 환경을 지정합니다.

노트북 인스턴스의 네트워크에는 다음과 같은 속성이 있습니다.

  • 외부 IP 주소가 없는 제한된 비공개 네트워크를 사용하는 공유 VPC
  • 제한적인 방화벽 규칙
  • 사용자 관리 노트북이 상호작용하는 모든 서비스와 프로젝트를 포함하는 VPC 서비스 제어 경계
  • Access Context Manager 정책

제한된 공유 VPC

지정한 공유 VPC를 사용하도록 사용자 관리 노트북을 구성합니다. OS 로그인이 필요하므로 공유 VPC는 노트북 인스턴스에 대한 액세스를 최소화합니다. IAP(Identity-Aware Proxy)를 사용하여 데이터 과학자에게 명시적인 액세스를 구성할 수 있습니다.

또한 restricted.googleapis.com 도메인을 사용하여 공유 VPC에서 Google API 및 서비스로 비공개 연결을 구성합니다. 이 구성을 사용하면 환경의 서비스가 VPC 서비스 제어를 지원할 수 있습니다.

제한된 공유 VPC를 설정하는 방법 예시는 보안 기반 청사진 네트워크 구성 Terraform 스크립트를 참조하세요.

VPC 서비스 제어 경계

청사진을 사용하면 VPC 서비스 제어를 사용하여 신뢰할 수 있는 환경에서 높은 트러스트 경계를 설정할 수 있습니다.

서비스 경계는 데이터 무단 반출 위험을 완화하여 프로젝트의 Google Cloud 서비스를 보호하는 데 사용할 수 있는 조직 수준의 제어입니다.

다음 표에서는 VPC 서비스 제어 경계를 구성하는 방법을 설명합니다.

속성 고려사항
projects 키를 포함하여 사용자 관리 노트북을 사용하는 데이터 과학자가 액세스하는 모든 프로젝트를 포함합니다. ["trusted-kms"
"trusted-data"
"trusted-analytics"]
services 필요에 따라 서비스를 더 추가합니다. ["compute.googleapis.com",
"storage.googleapis.com",
"notebooks.googleapis.com",
"bigquery.googleapis.com",
"datacatalog.googleapis.com",
"dataflow.googleapis.com",
"dlp.googleapis.com",
"cloudkms.googleapis.com",
"secretmanager.googleapis.com",
"cloudasset.googleapis.com",
"cloudfunctions.googleapis.com",
"pubsub.googleapis.com",
"monitoring.googleapis.com",
"logging.googleapis.com"]
access_level 보안 요구사항에 맞는 <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="lusaVihyw0i6CzgawuRRYyk10Dou6dGBPtPXPAqkVYhqg3ciWN7dEYftf8SKI5K5" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">Access Context Manager 정책을 추가하고 보다 자세한 <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="ZRmADm/vo/JQ2+/D/vUUr0WE0NcjMCq0U/gbksCiqgf1jsdW/MbrYpK1/gdk16L117PUzYIUuMKSr0A78yDcsQ==" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">엔드포인트 확인 정책을 추가합니다.</a{:></a{:> ACCESS_POLICIES
자세한 내용은 <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="RD1gsl2tw43oA/PJKkk1nXjCRwUobSSsbtnFJlSTCBLjoLksm7evman24//KLCurKSqCdTDqIF3jaY3PSD/AkaFbN8pCOwuaC/vIQ9/k+Vf+HXbWtslLzKBVhXD8qB/Z" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">Access Context Manager를 참조하세요
</a{:>

Access Context Manager

청사진은 VPC 서비스 제어 경계를 사용하여 Access Context Manager를 구성하는 데 유용합니다. Access Context Manager를 사용하면 프로젝트 및 리소스에 세분화된 속성 기반 액세스 제어를 정의할 수 있습니다. 엔드포인트 확인을 사용하고 데이터에 액세스하기 위한 기업 거버넌스 요구사항에 맞게 정책을 구성합니다. 관리자와 협력하여 기업의 데이터 과학자를 위한 액세스 정책을 만듭니다.

다음 표에 표시된 값을 액세스 정책에 사용하는 것이 좋습니다.

조건 고려사항
ip_subnetworks 기업에서 신뢰하는 IP 범위를 사용하세요. (목록) 경계 내의 리소스에 액세스가 허용된 CIDR 범위입니다.
members 경계에 액세스할 수 있는 높은 권한이 있는 사용자를 추가합니다. (목록) 프로비저닝을 위한 데이터 과학자 및 Terraform 서비스 계정의 권한이 있는 ID입니다.
device_policy.require_screen_lock 기기에 화면 잠금이 사용 설정되어 있어야 합니다. true
device_policy.require_corp_owned 회사 기기에서만 사용자 관리 노트북에 액세스하도록 허용합니다. true
device_policy.allowed_encryption_statuses 데이터 과학자가 저장 데이터를 암호화하는 기기만 사용하도록 허용합니다. (목록) ENCRYPTED
regions 데이터 과학자가 노트북 인스턴스에 액세스할 수 있는 리전화를 유지합니다.

데이터 과학자가 작업할 것으로 예상되는 최소 리전 집합으로 제한합니다.
<a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="8N5kFK1nMdX9Lm9PBXn1Gik10Dou6dGBPtPXPAqkVYhCA27lJ8v3AtKljasH4ygRJI82FsX3O5bO4YFtCsDjBg==" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">유효한 리전 코드
(list) </a{:>

BigQuery 최소 권한

청사진은 데이터 과학자가 사용하는 BigQuery의 데이터 세트에 대한 액세스를 구성하는 방법을 보여줍니다. 설정한 구성에서 데이터 과학자는 노트북 인스턴스가 있어야 BigQuery의 데이터 세트에 액세스할 수 있습니다.

또한 구성을 설정하면 다음과 같은 방법으로 BigQuery의 데이터 세트에 보안 레이어를 추가할 수 있습니다.

  • 노트북 인스턴스의 서비스 계정에 액세스 권한을 부여합니다. 데이터 과학자가 BigQuery의 데이터 세트에 직접 액세스하려면 노트북 인스턴스가 있어야 합니다.
  • 데이터 과학자가 기업의 데이터 거버넌스 요구사항을 충족하지 않는 데이터 사본을 만들 위험을 완화할 수 있습니다. BigQuery와 직접 상호작용해야 하는 데이터 과학자는 trusted-data-scientists@example.com 그룹에 추가되어야 합니다.

또는 데이터 과학자가 BigQuery에 제한적으로 액세스할 수 있도록 하려면 열 수준 보안과 같은 세분화된 액세스 제어를 사용할 수 있습니다. 데이터 소유자는 거버넌스팀과 협력하여 적절한 분류를 만들어야 합니다. 그런 다음 데이터 소유자는 데이터 세트 검사에 민감한 정보 보호를 사용하여 분류와 일치하도록 데이터 세트를 분류하고 태그를 지정할 수 있습니다.

키 관리

데이터 보호를 위해 사용자 관리 노트북에서는 암호화 키를 사용합니다. 키는 FIPS 140-2 level 3 Cloud HSM으로 지원됩니다. 환경에서 만드는 키는 다음과 같은 방법으로 데이터를 보호하는 데 도움이 됩니다.

  • CMEK는 높은 트러스트 범위 내에 있는 모든 서비스에 사용 설정됩니다.
  • 키 가용성은 리전별로 구성할 수 있습니다.
  • 키 순환을 구성할 수 있습니다.
  • 키 액세스는 제한됩니다.

CMEK

청사진을 사용하면 관리하는 키를 사용하여 모든 데이터에 암호화 경계를 만드는 CMEK를 사용할 수 있습니다. 이 환경은 높은 트러스트 범위 내에 있는 모든 서비스에 동일한 CMEK 키를 사용합니다. CMEK 사용의 또 다른 이점은 노트북 인스턴스가 더 이상 필요하지 않을 때 노트북 인스턴스를 보호하는 데 사용한 키를 폐기할 수 있다는 것입니다.

키 가용성 및 순환

멀티 리전 키링을 만들어 높은 가용성을 달성하여 키 가용성을 높일 수 있습니다.

이 청사진에서는 자동 순환 값으로 키를 만듭니다. 순환 값을 설정하려면 기업에서 설정한 보안 정책을 따르세요. 보안 정책에 맞게 기본값을 변경하거나 필요에 따라 키를 더 자주 순환할 수 있습니다.

다음 표에서는 키에 구성한 속성을 설명합니다.

속성 고려사항
rotation 기업의 규정 준수 순환 정책에서 설정한 값과 일치해야 합니다. 45일
location <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="Z98fpOVAlHdfgDS3sMyCXJRrt04oQqGzq1Aef2125xKSjPY+/eF9aEsSeoGJf8A6" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">멀티 리전 위치를 사용하는 키링을 사용하여 가용성을 더 높입니다.</a{:> 사용자 관리 노트북 영역 구성에 따라 자동으로 선택됩니다.
protection level 기업에서 지정한 보호 수준을 사용합니다. HSM

키 액세스

청사진을 사용하면 데이터 리소스와 별도의 폴더에 있는 Cloud HSM 모듈에 키를 배치하여 키를 보호할 수 있습니다. 다음과 같은 이유로 이 방식을 사용합니다.

  • 모든 리소스에서 키를 사용하려면 암호화 키가 필요합니다.
  • 키 관리팀은 데이터 소유자와 별도로 관리됩니다.
  • 추가적인 키 제어 및 모니터링이 필요합니다. 별도의 폴더를 사용하면 데이터와 별도로 키의 정책을 관리할 수 있습니다.

사용자 관리 노트북 보안 제어

이 섹션에 설명된 제어 기능은 사용자 관리 노트북에 사용되는 데이터를 보호합니다. 청사진을 사용하면 다음과 같이 사용자 관리 노트북 보안 제어를 구성할 수 있습니다.

  • 데이터 무단 반출 위험 완화
  • 권한 에스컬레이션 제한

데이터 다운로드 관리

기본적으로 노트북 인스턴스를 사용하면 데이터 과학자가 데이터를 머신에 다운로드하거나 내보낼 수 있습니다. 청사진에서 설치한 시작 스크립트를 사용하면 다음 작업을 방지할 수 있습니다.

  • 로컬 기기로 데이터 내보내기 및 다운로드
  • 노트북 인스턴스에서 계산한 출력 값을 인쇄하는 기능

스크립트는 trusted_kms 프로젝트에서 생성됩니다. 청사진을 사용하면 액세스를 제한하고 CMEK를 구성하여 스크립트를 저장하는 버킷을 보호할 수 있습니다. 사용자 관리 노트북의 프로젝트에서 스크립트를 분리하면 승인되지 않은 코드가 시작 스크립트에 추가될 위험을 줄이는 데 도움이 됩니다.

제한된 비공개 VPC 서브넷을 사용하도록 사용자 관리 노트북을 구성하므로 노트북 인스턴스는 공용 네트워크에 액세스할 수 없습니다. 이 구성으로 데이터 과학자가 외부 모듈을 설치하고 외부 데이터 소스에 액세스하며 공개 코드 저장소에 액세스하지 못하도록 방지할 수 있습니다. 외부 리소스 대신 기업의 데이터 과학자를 위해 Artifact Registry와 같은 비공개 아티팩트 저장소를 설정하는 것이 좋습니다.

권한 관리

청사진을 사용하면 trusted-data-scientists@example.com 그룹에 할당된 권한을 제한할 수 있습니다. 예를 들어 스냅샷의 로컬 파일 시스템에는 엔터프라이즈의 데이터가 있는 노트북 인스턴스가 포함될 수 있으므로 그룹에 영구 디스크 스냅샷을 만들 수 있는 역할이 없습니다.

또한 데이터 과학자가 액세스 권한을 얻지 못하도록 노트북 인스턴스 명령줄에서 sudo 명령어를 사용하지 못하도록 합니다. 이 작업으로 데이터 과학자가 승인된 패키지 또는 로깅과 같이 노트북 인스턴스에 설치된 제어를 변경하지 못하도록 방지합니다.

운영 보안

청사진으로 설정하는 보안 제어와 함께 기업이 사용하는 노트북에서 데이터가 지속적으로 보호되도록 다음 운영 보안 정책을 구성해야 합니다.

  • 로깅 및 모니터링 구성
  • 취약점 관리 정책
  • 애셋 공개 상태

로그 기록 및 모니터링

계층 구조가 생성되면 새 프로젝트에 사용할 로깅 및 감지 제어를 구성해야 합니다. 이러한 제어를 구성하는 방법에 대한 자세한 내용은 보안 기반 청사진 로깅 스크립트를 참조하세요.

취약점 관리

Deep Learning VM Image는 정기적으로 업데이트됩니다. 취약점 스캔 일정과 동일한 빈도로 기존 노트북 인스턴스의 이미지를 업데이트하는 것이 좋습니다. isUpgradeable API 결과를 확인하고 upgrade API를 통해 업그레이드를 시작할 수 있습니다.

위험 파악

애셋, 취약점, 위험, 정책을 파악할 수 있도록 Security Command Center를 사용하는 것이 좋습니다. Security Command Center는 배포를 스캔하여 관련 규정 준수 프레임워크에 대해 환경을 평가합니다.

총정리

이 문서에 설명된 아키텍처를 구현하려면 다음을 수행합니다.

  1. 조직 구조 섹션에 따라 신뢰할 수 있는 폴더와 프로젝트를 만듭니다.
  2. 보안 정책에 따라 이러한 프로젝트의 로깅 및 모니터링 제어를 구성합니다. 예시는 보안 기반 청사진 로깅 구성을 참조하세요.
  3. 사용자 및 그룹에 설명된 대로 IAM 그룹을 만들고 신뢰할 수 있는 데이터 과학자 ID를 적절한 그룹에 추가합니다.
  4. 네트워킹의 설명대로 제한된 공유 VPC와 서브넷으로 네트워크를 설정합니다.
  5. Access Context Manager의 설명대로 Access Context Manager 정책을 만듭니다.
  6. 이 청사진의 GitHub 저장소를 클론합니다.
  7. 필요한 입력을 사용하여 Terraform 환경 변수 파일을 만듭니다.
  8. 환경에 Terraform 스크립트를 적용하여 이 청사진에 설명된 제어를 만듭니다.
  9. 보안 및 데이터 거버넌스 요구사항을 기준으로 신뢰할 수 있는 환경을 검토합니다. 새로 만든 프로젝트를 Security Command Center 규정 준수 프레임워크에 대해 스캔할 수 있습니다.
  10. trusted-data 프로젝트 내의 BigQuery에서 데이터 세트를 만들거나 data GitHub 저장소 모듈에 제공된 샘플을 사용합니다.
  11. 기업 내 데이터 과학자와 협력하여 새로 만든 노트북 인스턴스의 액세스 권한을 테스트하세요.
  12. 사용자 관리 노트북 환경에서 데이터 과학자가 예상한 대로 BigQuery의 데이터와 상호작용할 수 있는지 테스트합니다. 관련 GitHub 저장소에서 BigQuery 명령어 예시를 사용할 수 있습니다.

리소스