Dataform의 VPC 서비스 제어 구성

VPC 서비스 제어는 데이터 무단 반출을 방지하는 경계를 설정할 수 있게 해주는 Google Cloud 기능입니다. 이 가이드에서는 Dataform과 함께 VPC 서비스 제어를 사용하여 서비스를 더 안전하게 만드는 방법을 설명합니다.

VPC 서비스 제어는 Identity and Access Management(IAM)에서 제공하는 보호와 별개로 Google Cloud 서비스 보안을 강화합니다.

VPC 서비스 제어에 대한 자세한 내용은 VPC 서비스 제어 개요를 참조하세요.

제한사항

Dataform은 VPC 서비스 제어를 지원하며 다음과 같은 제한사항이 있습니다.

보안 고려사항

Dataform에 VPC 서비스 제어 경계를 설정할 때 Dataform 서비스 계정에 부여된 권한을 검토하고 보안 아키텍처와 일치하는지 확인해야 합니다.

Dataform 서비스 계정에 부여한 권한에 따라 해당 서비스 계정은 VPC 서비스 제어에 관계없이 서비스 계정이 속한 프로젝트의 BigQuery 또는 Secret Manager 데이터에 액세스할 수 있습니다. 이러한 경우 VPC 서비스 제어 경계를 사용하여 Dataform을 제한해도 BigQuery 또는 Secret Manager와의 통신은 차단되지 않습니다.

Dataform 저장소에서 시작된 워크플로 호출을 실행할 필요가 없으면 BigQuery와의 통신을 차단해야 합니다. BigQuery와의 통신 차단에 대한 자세한 내용은 BigQuery와의 통신 차단을 참조하세요.

서드 파티 Git 저장소에 연결된 Dataform 저장소가 없으면 Secret Manager와의 통신을 차단해야 합니다. Secret Manager와의 통신 차단에 대한 자세한 내용은 Secret Manager와의 통신 차단을 참조하세요.

시작하기 전에

Dataform의 VPC 서비스 제어 서비스 경계를 구성하기 전에 원격 저장소 제한 가이드를 따라 dataform.restrictGitRemotes 조직 정책을 설정합니다.

Dataform을 사용할 때 VPC 서비스 제어 검사가 시행되고 Dataform Git 저장소에 대한 서드 파티 액세스가 제한되는지 확인하려면 dataform.restrictGitRemotes 조직 정책이 필요합니다.

필요한 역할

VPC 서비스 제어 서비스 경계를 구성하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Access Context Manager 편집자(roles/accesscontextmanager.policyEditor) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

VPC 서비스 제어 권한에 대한 자세한 내용은 IAM으로 액세스 제어를 참조하세요.

VPC 서비스 제어를 구성합니다.

다음 방법으로 VPC 서비스 제어 서비스 경계를 사용하여 Dataform을 제한할 수 있습니다.

  • Dataform을 BigQuery를 제한하는 기존 서비스 경계에 추가합니다.
  • Dataform 및 BigQuery를 모두 제한하는 서비스 경계를 만듭니다.

BigQuery를 제한하는 서비스 경계에 Dataform을 추가하려면 VPC 서비스 제어 문서의 서비스 경계 업데이트 가이드를 따르세요.

Dataform 및 BigQuery를 모두 제한하는 새 서비스 경계를 만들려면 VPC 서비스 제어 문서의 서비스 경계 만들기 가이드를 따르세요.

선택사항: BigQuery와의 통신 차단

Dataform이 BigQuery와 통신하는 방법은 Dataform에 사용되는 서비스 계정 유형에 따라 다릅니다.

기본 Dataform 서비스 계정은 bigquery.jobs.create 권한을 사용하여 BigQuery와 통신합니다. Dataform이 BigQuery에서 SQL 워크플로를 실행하는 데 필요한 역할을 부여할 때 이 권한이 포함된 기본 Dataform 서비스 계정 역할을 부여합니다.

기본 Dataform 서비스 계정과 BigQuery 간의 통신을 차단하려면 기본 Dataform 서비스 계정에 부여된 bigquery.jobs.create 권한이 포함된 모든 사전 정의된 역할과 커스텀 역할을 취소해야 합니다. 역할을 취소하려면 프로젝트, 폴더, 조직에 대한 액세스 관리 가이드를 따르세요.

커스텀 Dataform 서비스 계정은 다음 권한과 역할을 사용하여 BigQuery와 통신합니다.

  • 커스텀 서비스 계정에 부여되는 bigquery.jobs.create 권한
  • 커스텀 서비스 계정의 기본 Dataform 서비스 계정에 부여되는 서비스 계정 토큰 생성자(roles/iam.serviceAccountTokenCreator) 역할

다음 방법 중 하나로 커스텀 Dataform 서비스 계정과 BigQuery 간의 통신을 차단할 수 있습니다.

  • 선택한 커스텀 Dataform 서비스 계정의 기본 서비스 계정에 부여된 서비스 계정 토큰 생성자(roles/iam.serviceAccountTokenCreator) 역할을 취소합니다. 서비스 계정 토큰 생성자(roles/iam.serviceAccountTokenCreator) 역할을 취소하려면 서비스 계정에 대한 액세스 관리 가이드를 따르세요.

  • 프로젝트 수준에서 bigquery.jobs.create 권한이 포함된 커스텀 서비스 계정에 부여된 모든 사전 정의된 역할과 커스텀 역할을 취소합니다. 역할을 취소하려면 프로젝트, 폴더, 조직에 대한 액세스 관리 가이드를 따르세요.

bigquery.jobs.create 권한은 취소되어야 하는 다음과 같은 사전 정의된 BigQuery IAM 역할에 포함되어 있습니다.

선택사항: Secret Manager와의 통신 차단

Dataform은 secretmanager.versions.access 권한을 사용하여 개별 Secret Manager 보안 비밀에 액세스합니다. Dataform 저장소를 서드 파티 저장소에 연결할 때 선택한 Secret Manager 보안 비밀의 기본 Dataform 서비스 계정에 이 권한을 부여합니다.

Dataform 및 Secret Manager 간의 통신을 차단하려면 기본 Dataform 서비스 계정에서 모든 보안 비밀에 대한 액세스 권한을 취소해야 합니다.

기본 Dataform 서비스 계정에서 Secret Manager 보안 비밀에 대한 액세스 권한을 취소하려면 Secret Manager 문서의 보안 비밀에 대한 액세스 관리 가이드를 따르세요. 선택한 보안 비밀의 기본 Dataform 서비스 계정에 부여된 secretmanager.versions.access 권한이 포함된 사전 정의된 역할과 커스텀 역할을 모두 취소해야 합니다.

secretmanager.versions.access 권한은 다음과 같은 사전 정의된 Secret Manager IAM 역할에 포함되어 있습니다.

다음 단계