IAM으로 액세스 제어

이 페이지에서는 Cloud Data Fusion의 액세스 제어 옵션에 대해 설명합니다.

다음과 같은 방법으로 Cloud Data Fusion의 리소스에 대한 액세스를 제어할 수 있습니다.

  • Google Cloud 콘솔, Google Cloud CLI, REST API를 통해 인스턴스 만들기 및 업데이트와 같은 컨트롤 플레인 작업에 대한 액세스를 제어하려면 이 페이지에 설명된 대로 Identity and Access Management(IAM)를 사용합니다.

  • 파이프라인이 실행되는 서비스 계정에 BigQuery 또는 Cloud Storage와 같은 Google Cloud 데이터 서비스에 대한 액세스 권한을 부여하려면 IAM을 사용하세요.

  • 인스턴스에서 수행되는 작업(예: 파이프라인 시작과 같은 데이터 영역 작업)에 대한 세분화된 권한을 제어하려면 역할 기반 액세스 제어(RBAC)를 사용합니다.

Cloud Data Fusion 액세스 제어와 관련된 아키텍처 및 리소스에 대한 자세한 내용은 네트워킹을 참조하세요. 역할 및 권한 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

Cloud Data Fusion의 IAM에 대한 설명

Google Cloud 프로젝트의 서비스 계정 및 기타 주 구성원에 IAM 역할과 권한을 부여하여 Cloud Data Fusion 기능에 대한 액세스를 제어합니다.

사용자 계정이 Cloud Data Fusion 웹 인터페이스를 사용할 수 있도록 사용자 계정에 세분화된 액세스 권한을 부여하여 하려면 RBAC을 사용하세요.

기본적으로 Cloud Data Fusion은 다음 서비스 계정을 사용합니다.

Cloud Data Fusion 서비스 계정

Cloud Data Fusion 서비스 계정은 파이프라인 설계 시 고객 리소스에 액세스할 수 있는 Google 관리형 서비스 에이전트입니다. Cloud Data Fusion API를 사용 설정하면 이 서비스 에이전트가 프로젝트에 자동으로 추가됩니다. 프로젝트의 모든 인스턴스에 사용됩니다.

서비스 에이전트에는 다음과 같은 책임이 있습니다.

  • 파이프라인 설계 중에 Cloud Storage, BigQuery 또는 Datastream과 같은 다른 서비스와 통신합니다.

  • Dataproc 클러스터를 프로비저닝하고 파이프라인 작업을 제출하여 실행을 사용 설정합니다.

Cloud Data Fusion 서비스 계정의 역할

기본적으로 Cloud Data Fusion 서비스 계정에는 Cloud Data Fusion API 서비스 에이전트 역할(roles/datafusion.serviceAgent)만 있습니다.

이 서비스 에이전트의 주 구성원 이름은 service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com입니다.

다음 기본 리소스는 Cloud Data Fusion API 서비스 에이전트 역할과 연결되어 있습니다.

역할 리소스 권한
Cloud Data Fusion API 서비스 에이전트 연결된 서비스:
  • BigQuery
  • Bigtable
  • Compute Engine
  • Dataproc
  • Cloud DNS
  • Firebase
  • Cloud Monitoring
  • 네트워크 연결
  • 네트워크 서비스 통합 관리자
  • Network Services API
  • 조직 정책
  • Recommender API
  • Cloud Resource Manager API
  • 서비스 네트워킹
  • 서비스 사용량
  • Spanner
  • Cloud Storage
  • Cloud Service Mesh
Cloud Data Fusion API 서비스 에이전트 권한을 참조하세요.

Compute Engine 기본 서비스 계정 또는 커스텀 서비스 계정

Compute Engine 서비스 계정은 Cloud Data Fusion이 다른 Google Cloud 리소스에 액세스하는 작업을 배포 및 실행할 때 사용하는 기본 계정입니다. 기본적으로 Dataproc 클러스터 VM에 연결하여 파이프라인 실행 중에 Cloud Data Fusion이 Dataproc 리소스에 액세스할 수 있도록 합니다.

Cloud Data Fusion 인스턴스를 만들 때 Dataproc 클러스터에 연결할 커스텀 서비스 계정을 선택할 수도 있고, Cloud Data Fusion 웹 인터페이스에서 새로운 Compute 프로파일을 만들 수도 있습니다.

자세한 내용은 Cloud Data Fusion의 서비스 계정을 참조하세요.

Compute Engine 서비스 계정의 역할

기본적으로 Cloud Data Fusion은 파이프라인을 실행할 때 리소스(예: 소스 및 싱크)에 액세스하기 위해 Compute Engine 기본 서비스 계정을 사용합니다.

Cloud Data Fusion 인스턴스에 사용자 관리형 커스텀 서비스 계정을 설정하여 이 계정에 역할을 부여할 수 있습니다. 그런 다음, 새 인스턴스를 만들 때 이 서비스 계정을 선택할 수 있습니다.

Cloud Data Fusion 실행자 역할

Cloud Data Fusion 인스턴스가 포함된 프로젝트에서 기본 및 사용자 관리형 커스텀 서비스 계정 모두에 Cloud Data Fusion 실행자 역할(datafusion.runner)을 부여합니다.

역할 설명 권한
Data Fusion 실행자 (datafusion.runner) Compute Engine 서비스 계정이 테넌트 프로젝트에서 Cloud Data Fusion 서비스와 통신할 수 있게 합니다. datafusion.instances.runtime

서비스 계정 사용자 역할

파이프라인을 실행할 때 Dataproc 클러스터가 시작되는 프로젝트의 기본 또는 사용자 관리형 서비스 계정에서, Cloud Data Fusion 서비스 계정에 서비스 계정 사용자 역할(roles/iam.serviceAccountUser)을 부여합니다.

자세한 내용은 서비스 계정 권한 부여를 참조하세요.

Dataproc 작업자 역할

Dataproc 클러스터에서 작업을 실행하려면 Cloud Data Fusion 파이프라인에서 사용하는 기본 또는 사용자 관리 서비스 계정에 Dataproc 작업자 역할(roles/dataproc.worker)을 부여합니다.

사용자 역할

Cloud Data Fusion에서 작업을 트리거하려면 사용자(주 구성원)에게 충분한 권한이 있어야 합니다. 개별 권한은 역할로 그룹화되며, 해당 주 구성원에게 역할을 부여합니다.

RBAC가 사용 설정되지 않았거나 RBAC를 지원하지 않는 Cloud Data Fusion 버전을 사용하는 경우 Cloud Data Fusion IAM 역할이 있는 사용자가 Cloud Data Fusion 웹 인터페이스에 대한 전체 액세스 권한을 갖습니다. 관리자 역할은 사용자가 Create, Update, Upgrade, Delete 작업과 같은 인스턴스 관리만 허용합니다.

Cloud Data Fusion에서 필요한 권한에 따라 주 구성원에게 다음 역할을 부여합니다.

역할 설명 권한
Cloud Data Fusion 관리자(roles/datafusion.admin) 모든 뷰어 권한에 Cloud Data Fusion 인스턴스를 생성, 업데이트, 삭제할 수 있는 권한을 더한 권한입니다.
  • datafusion.instances.get
  • datafusion.instances.list
  • datafusion.instances.create
  • datafusion.instances.delete
  • datafusion.instances.update
  • datafusion.operations.get
  • datafusion.operations.list
  • datafusion.operations.cancel
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Cloud Data Fusion 뷰어(roles/datafusion.viewer)
  • Google Cloud 콘솔에서 프로젝트의 Cloud Data Fusion 인스턴스를 볼 수 있습니다.
  • Cloud Data Fusion 인스턴스를 생성, 업데이트 또는 삭제할 수 없습니다.
  • datafusion.instances.get
  • datafusion.instances.list
  • datafusion.operations.get
  • datafusion.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

설계 시 다른 프로젝트의 리소스에 액세스

이 섹션에서는 설계 시 Cloud Data Fusion 인스턴스가 아닌 다른 Google Cloud 프로젝트에 있는 리소스에 대한 액세스 제어에 대해 설명합니다.

Cloud Data Fusion 웹 인터페이스에서 파이프라인을 설계할 때는 다른 프로젝트의 리소스에 액세스하는 랭글러 또는 미리보기와 같은 함수를 사용할 수 있습니다.

다음 섹션에서는 사용자 환경에서 서비스 계정을 확인한 후 적절한 권한을 부여하는 방법을 설명합니다.

환경의 서비스 계정 확인

서비스 계정 이름은 Cloud Data Fusion 서비스 계정이며, 이 서비스 에이전트의 주 구성원은 service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com입니다.

다른 프로젝트의 리소스에 액세스할 수 있는 권한 부여

다양한 리소스에 액세스할 수 있는 권한을 부여하는 역할을 부여하려면 다음 단계를 따르세요.

  1. 대상 리소스가 있는 프로젝트에서 Cloud Data Fusion 서비스 계정(service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com)을 주 구성원으로 추가합니다.
  2. 타겟 리소스가 위치한 프로젝트의 타겟 리소스에서 Cloud Data Fusion 서비스 계정에 역할을 부여하세요.

역할을 부여한 후에는 인스턴스가 있는 프로젝트의 리소스에 액세스하는 것과 동일한 방식으로 설계 시 다른 프로젝트의 리소스에 액세스할 수 있습니다.

실행 시 다른 프로젝트의 리소스에 액세스

이 섹션에서는 실행 시 Cloud Data Fusion 인스턴스가 아닌 다른 Google Cloud 프로젝트에 있는 리소스에 대한 액세스 제어에 대해 설명합니다.

실행 시 다른 프로젝트의 리소스에 액세스할 수 있는 Dataproc 클러스터에서 파이프라인을 실행합니다. 기본적으로 Dataproc 클러스터 자체는 Cloud Data Fusion 인스턴스와 동일한 프로젝트에서 실행되지만, 다른 프로젝트의 클러스터를 사용할 수 있습니다.

다른 Google Cloud 프로젝트의 리소스에 액세스하려면 다음 단계를 따르세요.

  1. 프로젝트의 서비스 계정을 결정합니다.
  2. 리소스가 있는 프로젝트에서 Compute Engine 기본 서비스 계정에 IAM 역할을 부여하여 다른 프로젝트의 리소스에 대한 액세스 권한을 부여합니다.

Compute Engine 서비스 계정 확인

Compute Engine 서비스 계정에 대한 자세한 내용은 Cloud Data Fusion의 IAM 정보를 참조하세요.

다른 프로젝트의 리소스에 액세스하기 위한 IAM 역할 부여

Compute Engine 기본 서비스 계정이 다른 프로젝트의 리소스에 액세스하려면 권한이 필요합니다. 이러한 역할과 권한은 액세스하려는 리소스에 따라 다를 수 있습니다.

리소스에 액세스하려면 다음 단계를 수행합니다.

  1. Compute Engine 서비스 계정을 타겟 리소스가 있는 프로젝트의 주 구성원으로 지정하여 역할과 권한을 부여합니다.
  2. 리소스에 액세스할 수 있는 적절한 역할을 추가합니다.

Cloud Data Fusion API 권한

Cloud Data Fusion API를 실행하려면 다음 권한이 필요합니다.

API 호출 권한
instances.create datafusion.instances.create
instances.delete datafusion.instances.delete
instances.list datafusion.instances.list
instances.get datafusion.instances.get
instances.update datafusion.instances.update
operations.cancel datafusion.operations.cancel
operations.list datafusion.operations.list
operations.get datafusion.operations.get

일반적인 작업을 위한 권한

Cloud Data Fusion의 일반적인 작업에는 다음 권한이 필요합니다.

태스크 권한
Cloud Data Fusion 웹 인터페이스에 액세스하기 datafusion.instances.get
Google Cloud 콘솔에서 Cloud Data Fusion 인스턴스 페이지 액세스 datafusion.instances.list
인스턴스의 세부정보 페이지 액세스 datafusion.instances.get
새 인스턴스 만들기 datafusion.instances.create
인스턴스를 맞춤설정하기 위한 고급 옵션 및 라벨 업데이트 datafusion.instances.update
인스턴스 삭제 datafusion.instances.delete

다음 단계