사전 정의된 역할 및 권한

이 페이지에서는 BigQuery에 대한 Cloud Identity and Access Management(Cloud IAM) 역할 및 권한에 대해 설명합니다.

각 BigQuery 관련 제품과 관련된 역할과 권한을 포함합니다.

  • BigQuery ML
  • BigQuery Data Transfer Service
  • BigQuery BI Engine

BigQuery ML의 액세스 제어에 대한 자세한 내용은 BigQuery ML 문서의 액세스 제어를 참조하세요.

개요

ID가 Google Cloud API를 호출할 때 BigQuery에는 리소스를 사용할 수 있는 적절한 권한이 있는 ID가 있어야 합니다. 권한을 부여하려면 사용자, 그룹 또는 서비스 계정에 역할을 부여하면 됩니다.

이 페이지에서는 ID가 BigQuery 리소스에 액세스하도록 부여할 수 있는 BigQuery Cloud IAM 역할을 설명합니다.

Cloud IAM 역할 유형

Cloud IAM에는 다음과 같은 세 가지 유형의 역할이 있습니다.

  • 기본 역할에는 소유자, 편집자 및 뷰어 역할이 포함됩니다. 기본 역할은 Cloud IAM 도입 이전에 존재했던 액세스 제어를 나타냅니다.

  • 사전 정의된 역할은 특정 서비스에 대한 세분화된 액세스 권한을 제공하며, Google Cloud에서 관리합니다. 사전 정의된 역할은 일반적인 사용 사례와 액세스 제어 패턴을 지원합니다.

  • 커스텀 역할: 사용자 지정 권한 목록에 따라 세분화된 액세스 권한을 제공합니다.

기본, 사전 정의, 커스텀 역할에 권한이 1개 이상 포함되어 있는지 확인하려면 다음 방법 중 하나를 사용하면 됩니다.

사전 정의된 역할과 기본 역할을 모두 사용자 1명에게 할당할 경우 각 역할의 권한이 통합되어 부여됩니다.

리소스 액세스를 위한 Cloud IAM 사용에 대한 자세한 내용은 Cloud IAM 문서의 리소스 액세스 권한 부여, 변경, 취소를 참조하세요.

커스텀 역할 만들기에 대한 자세한 내용은 Cloud IAM 문서의 커스텀 역할 만들기 및 관리를 참조하세요.

BigQuery 권한과 사전 정의된 Cloud IAM 역할

BigQuery 리소스에 대한 액세스 권한을 부여하려면 사용자, 그룹 또는 서비스 계정에 역할을 한 개 이상 할당합니다. 다음 BigQuery 리소스 수준에서 액세스 권한을 부여할 수 있습니다.

  • 조직 또는 Google Cloud 프로젝트 수준
  • 데이터 세트 수준
  • 테이블 또는 뷰 수준

조직 또는 클라우드 프로젝트 수준에서 적용된 역할

조직 및 프로젝트 수준에서 역할을 할당하면 BigQuery 작업을 실행하거나 프로젝트의 BigQuery 리소스 모두에 액세스할 수 있는 권한이 제공됩니다.

데이터 세트 수준에서 적용된 역할

프로젝트 리소스에 대한 전체 액세스 권한을 제공하지 않고 데이터 세트 수준에서 역할을 할당하여 특정 데이터 세트에 대한 액세스 권한을 제공할 수 있습니다. Cloud IAM 정책 계층 구조에서 BigQuery 데이터 세트는 프로젝트의 하위 리소스입니다. 데이터 세트 수준에서 역할을 할당하는 방법에 대한 자세한 내용은 데이터 세트에 대한 액세스 제어를 참조하세요.

데이터 세트 내의 개별 리소스에 적용되는 역할

데이터 세트의 리소스에 대해 전체 액세스 권한을 제공하지 않고 데이터 세트 내의 특정 리소스 유형에 대해 개별적으로 역할을 할당할 수 있습니다.

다음 유형의 개별 리소스에는 역할이 적용될 수 있습니다.

  • 테이블(베타)
  • 뷰(베타)

다음 유형의 개별 리소스에는 역할이 적용될 수 없습니다.

  • 루틴
  • 모델

테이블 또는 뷰 수준에서 역할을 할당하는 방법에 대한 자세한 내용은 테이블 또는 뷰에 대한 액세스 제어를 참조하세요.

BigQuery 권한

다음 표에서는 BigQuery에서 제공하는 권한을 설명합니다.

권한 설명
bigquery.bireservations.get(베타) BI Engine 예약을 읽습니다.
bigquery.bireservations.update(베타) BI Engine 예약을 업데이트합니다.
bigquery.capacityCommitments.create(베타) 프로젝트에서 용량 약정을 만듭니다.
bigquery.capacityCommitments.delete(베타) 용량 약정을 삭제합니다.
bigquery.capacityCommitments.get(베타) 용량 약정에 대한 세부정보를 가져옵니다.
bigquery.capacityCommitments.list(베타) 프로젝트의 모든 용량 약정을 나열합니다.
bigquery.capacityCommitments.update(베타) 프로젝트의 모든 용량 약정을 업데이트합니다.
bigquery.connections.create 프로젝트에서 새 연결을 만듭니다.
bigquery.connections.delete 연결을 삭제합니다.
bigquery.connections.get 연결 메타데이터를 가져옵니다. 사용자 인증 정보는 제외됩니다.
bigquery.connections.list 프로젝트의 연결을 나열합니다.
bigquery.connections.update 연결 및 사용자 인증 정보를 업데이트합니다.
bigquery.connections.use 연결 구성을 사용하여 원격 데이터 소스에 연결합니다.
bigquery.datasets.create 새로운 빈 데이터 세트를 만듭니다.
bigquery.datasets.delete 데이터 세트를 삭제합니다.
bigquery.datasets.get 데이터 세트에 대한 메타데이터를 가져옵니다.
bigquery.datasets.getIamPolicy 나중에 사용하기 위해 예약되어 있습니다.
bigquery.datasets.setIamPolicy 나중에 사용하기 위해 예약되어 있습니다.
bigquery.datasets.update 데이터 세트에 대한 메타데이터를 업데이트합니다.
bigquery.datasets.updateTag(베타) 데이터 세트에 대해 태그를 업데이트합니다.
bigquery.jobs.create 프로젝트 내에서 쿼리를 비롯한 작업을 실행합니다.
bigquery.jobs.get 모든 작업의 데이터와 메타데이터를 가져옵니다.*
bigquery.jobs.list 모든 작업을 나열하고 사용자가 제출한 모든 작업에서 메타데이터를 검색합니다.* 다른 사용자가 제출한 작업의 경우 세부정보와 메타데이터가 수정됩니다.
bigquery.jobs.listAll 모든 작업을 나열하고 사용자가 제출한 모든 작업에서 메타데이터를 검색합니다.*
bigquery.jobs.update 모든 작업을 취소합니다.*
bigquery.models.create 새 모델을 만듭니다.
bigquery.models.delete 모델을 삭제합니다.
bigquery.models.getData 모델 데이터를 가져옵니다. 모델 메타데이터를 가져오려면 bigquery.models.getMetadata가 필요합니다.
bigquery.models.getMetadata 모델 메타데이터를 가져옵니다. 모델 데이터를 가져오려면 bigquery.models.getData가 필요합니다.
bigquery.models.list 모델과 모델의 메타데이터를 나열합니다.
bigquery.models.updateData 모델 데이터를 업데이트합니다. 모델 메타데이터를 업데이트하려면 bigquery.models.updateMetadata가 필요합니다.
bigquery.models.updateMetadata 모델 메타데이터를 업데이트합니다. 모델 데이터를 업데이트하려면 bigquery.models.updateData가 필요합니다.
bigquery.models.create, bigquery.models.getData ML 작업 수행: ML.PREDICT, ML.WEIGHTS, ML.TRAINING_INFO, ML.FEATURE_INFO
bigquery.readsessions.create(베타) BigQuery Storage API를 통해 새 읽기 세션을 만듭니다.
bigquery.readsessions.getData(베타) BigQuery Storage API를 통해 읽기 세션에서 데이터를 읽습니다.
bigquery.readsessions.update(베타) BigQuery Storage API를 통해 읽기 세션을 업데이트합니다.
bigquery.reservations.create(베타) 프로젝트에서 예약을 만듭니다.
bigquery.reservations.delete(베타) 예약을 삭제합니다.
bigquery.reservations.get(베타) 예약에 대한 세부정보를 가져옵니다.
bigquery.reservations.list(베타) 프로젝트의 모든 예약을 나열합니다.
bigquery.reservations.update(베타) 예약 속성을 업데이트합니다.
bigquery.reservationAssignments.create(베타)

예약 할당을 생성합니다. 이 권한은 소유자 프로젝트 및 할당된 담당자 리소스에 필요합니다.
예약 할당을 이동하려면 새 소유자 프로젝트 및 할당된 담당자 리소스에 bigquery.reservationAssignments.create가 필요합니다.

bigquery.reservationAssignments.delete(베타)

예약 할당을 삭제합니다. 이 권한은 소유자 프로젝트 및 할당된 담당자 리소스에 필요합니다.
예약 할당을 이동하려면 이전 소유자 프로젝트 및 할당된 담당자 리소스에 bigquery.reservationAssignments.delete가 필요합니다.

bigquery.reservationAssignments.list(베타) 프로젝트의 모든 예약 할당을 나열합니다.
bigquery.reservationAssignments.search(베타) 특정 프로젝트, 폴더, 조직의 예약 할당을 검색합니다.
bigquery.routines.create(베타) 새 루틴(함수 및 저장된 프로시저)을 만듭니다.
bigquery.routines.delete(베타) 루틴을 삭제합니다.
bigquery.routines.get(베타) 루틴 정의 및 메타데이터를 가져옵니다.
bigquery.routines.list(베타) 루틴 및 루틴의 메타데이터를 나열합니다.
bigquery.routines.update(베타)

루틴 정의 및 메타데이터를 업데이트합니다.

bigquery.savedqueries.create 저장된 쿼리를 만듭니다.
bigquery.savedqueries.delete 저장된 쿼리를 삭제합니다.
bigquery.savedqueries.get 저장된 쿼리의 메타데이터를 가져옵니다.
bigquery.savedqueries.list 저장된 쿼리를 나열합니다.
bigquery.savedqueries.update 저장된 쿼리를 업데이트합니다.
bigquery.tables.create 새 테이블을 만듭니다.
bigquery.tables.delete 테이블을 삭제합니다.
bigquery.tables.export BigQuery의 테이블 데이터를 내보냅니다.
bigquery.tables.get 테이블 메타데이터를 가져옵니다.
테이블 데이터를 업데이트하려면 bigquery.tables.getData가 필요합니다.
bigquery.tables.getData 테이블 데이터를 가져옵니다. 테이블 데이터를 쿼리하려면 이 권한이 필요합니다.
테이블 메타데이터를 가져오려면 bigquery.tables.get이 필요합니다.
bigquery.tables.getIamPolicy 테이블의 Cloud IAM 정책을 읽습니다.
bigquery.tables.list 테이블 및 테이블의 메타데이터를 나열합니다.
bigquery.tables.setCategory 테이블 스키마에서 정책 태그를 설정합니다.
bigquery.tables.setIamPolicy 테이블의 Cloud IAM 정책을 변경합니다.
bigquery.tables.update

테이블 메타데이터를 업데이트합니다.
테이블 데이터를 업데이트하려면 bigquery.tables.updateData가 필요합니다.

bigquery.tables.updateData

테이블 데이터를 업데이트합니다.
테이블 메타데이터를 업데이트하려면 bigquery.tables.update가 필요합니다.

bigquery.tables.updateTag(베타) 테이블의 태그를 업데이트합니다.
bigquery.transfers.get 전송 메타데이터를 가져옵니다.
bigquery.transfers.update 전송을 생성, 업데이트, 삭제합니다.

* 사용자가 만드는 모든 작업은 해당 작업에 대해 bigquery.jobs.getbigquery.jobs.update에 상응하는 권한이 자동으로 부여됩니다.

BigQuery 사전 정의 Cloud IAM 역할

다음 표에서는 사전 정의된 BigQuery Cloud IAM 역할과 각 역할에 포함된 모든 권한 목록을 보여줍니다. 각 권한을 특정 리소스 유형에 적용할 수 있습니다.

역할 이름 설명 권한 최하위 리소스
roles/bigquery.admin BigQuery 관리자 프로젝트 내에서 모든 리소스를 관리할 수 있는 권한을 제공합니다. 프로젝트 내에서 모든 데이터를 관리하고 실행 중인 다른 사용자의 작업을 취소할 수 있습니다.
  • bigquery.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
프로젝트
roles/bigquery.connectionAdmin BigQuery 연결 관리자 베타
  • bigquery.connections.*
roles/bigquery.connectionUser BigQuery 연결 사용자 베타
  • bigquery.connections.get
  • bigquery.connections.getIamPolicy
  • bigquery.connections.list
  • bigquery.connections.use
roles/bigquery.dataEditor BigQuery 데이터 편집자

테이블 또는 뷰에 적용하면 이 역할은 다음과 같은 권한을 제공합니다.

  • 테이블 또는 뷰의 데이터와 메타데이터를 읽고 업데이트하는 권한
  • 테이블 또는 뷰를 삭제하는 권한

이 역할은 개별 모델 또는 루틴에 적용할 수 없습니다.

데이터 세트에 적용하면 이 역할은 다음과 같은 권한을 제공합니다.

  • 데이터 세트의 메타데이터를 읽고 데이터세트의 테이블을 열거하는 권한
  • 데이터 세트의 테이블을 만들기, 업데이트, 가져오기, 삭제하는 권한

프로젝트 또는 조직 수준에서 적용하면 이 역할은 새로운 데이터세트를 만들 수도 있습니다.

  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.datasets.updateTag
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.create
  • bigquery.tables.delete
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • bigquery.tables.update
  • bigquery.tables.updateData
  • bigquery.tables.updateTag
  • resourcemanager.projects.get
  • resourcemanager.projects.list
테이블 또는 뷰
roles/bigquery.dataOwner BigQuery 데이터 소유자

테이블 또는 뷰에 적용하면 이 역할은 다음과 같은 권한을 제공합니다.

  • 테이블 또는 뷰의 데이터와 메타데이터를 읽고 업데이트하는 권한
  • 테이블 또는 뷰를 공유하는 권한
  • 테이블 또는 뷰를 삭제하는 권한

이 역할은 개별 모델 또는 루틴에 적용할 수 없습니다.

데이터 세트에 적용하면 이 역할은 다음과 같은 권한을 제공합니다.

  • 데이터세트 읽기, 업데이트. 삭제 권한
  • 데이터세트의 테이블을 만들기, 업데이트, 가져오기, 삭제하는 권한

프로젝트 또는 조직 수준에서 적용하면 이 역할은 새로운 데이터세트를 만들 수도 있습니다.

  • bigquery.datasets.*
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
테이블 또는 뷰
roles/bigquery.dataViewer BigQuery 데이터 뷰어

테이블 또는 뷰에 적용하면 이 역할은 다음과 같은 권한을 제공합니다.

  • 테이블 또는 뷰에서 데이터와 메타데이터를 읽는 권한

이 역할은 개별 모델 또는 루틴에 적용할 수 없습니다.

데이터 세트에 적용하면 이 역할은 다음과 같은 권한을 제공합니다.

  • 데이터 세트의 메타데이터를 읽고 데이터세트의 테이블을 열거하는 권한
  • 데이터 세트의 테이블에서 데이터와 메타데이터를 읽는 권한

프로젝트 또는 조직 수준에서 적용하면 이 역할은 프로젝트의 모든 데이터세트를 열거할 수도 있습니다. 하지만 작업 실행을 허용하려면 추가 역할이 필요합니다.

  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.models.getData
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
테이블 또는 뷰
roles/bigquery.jobUser BigQuery 작업 사용자 프로젝트 내에서 쿼리 등의 작업을 실행하기 위한 권한입니다. 이 역할은 모든 작업의 존재를 확인하며 자신의 작업을 열거하고 취소할 수 있습니다.
  • bigquery.jobs.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
프로젝트
roles/bigquery.metadataViewer BigQuery 메타데이터 뷰어

테이블 또는 뷰에 적용하면 이 역할은 다음과 같은 권한을 제공합니다.

  • 테이블 또는 뷰에서 메타데이터를 읽는 권한

이 역할은 개별 모델 또는 루틴에 적용할 수 없습니다.

데이터 세트에 적용하면 이 역할은 다음과 같은 권한을 제공합니다.

  • 데이터 세트의 테이블 및 뷰를 열거하는 권한
  • 데이터 세트의 테이블 및 뷰에서 메타데이터를 읽는 권한

프로젝트 또는 조직 수준에 적용하면 이 역할은 다음과 같은 권한을 제공합니다.

  • 모든 데이터 세트를 나열하고 프로젝트에 있는 모든 데이터 세트의 메타데이터를 읽는 권한
  • 모든 테이블과 뷰를 나열하고 프로젝트에 있는 모든 테이블과 뷰의 메타데이터를 읽는 권한

작업 실행을 허용하려면 추가 역할이 필요합니다.

  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.get
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
테이블 또는 뷰
roles/bigquery.readSessionUser BigQuery 읽기 세션 사용자 읽기 세션을 만들고 사용할 수 있는 액세스 권한입니다.
  • bigquery.readsessions.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceAdmin BigQuery 리소스 관리자 베타 모든 BigQuery 리소스를 관리합니다.
  • bigquery.bireservations.*
  • bigquery.capacityCommitments.*
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.user BigQuery 사용자

데이터세트에 적용하면 이 역할은 데이터세트의 메타데이터를 읽고 데이터세트의 테이블을 나열하는 기능을 제공합니다.

프로젝트에 적용하면 이 역할은 프로젝트 내에서 쿼리를 포함한 작업을 실행하는 기능도 제공합니다. 이 역할을 가진 구성원은 자신의 작업을 열거하고 자신의 작업을 취소하며 프로젝트 내의 데이터세트를 열거할 수 있습니다. 또한 프로젝트 내에서 새 데이터세트를 만들 수 있습니다. 이러한 새 데이터세트에 대한 BigQuery 데이터 소유자 역할(roles/bigquery.dataOwner)이 생성자에게 부여됩니다.

  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.config.get
  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.jobs.create
  • bigquery.jobs.list
  • bigquery.models.list
  • bigquery.readsessions.*
  • bigquery.reservationAssignments.list
  • bigquery.reservationAssignments.search
  • bigquery.reservations.get
  • bigquery.reservations.list
  • bigquery.routines.list
  • bigquery.savedqueries.get
  • bigquery.savedqueries.list
  • bigquery.tables.list
  • bigquery.transfers.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
데이터세트

BigQuery 기본 역할

BigQuery 기본 역할에 대한 자세한 내용은 BigQuery 기본 역할 및 권한을 참조하세요.

BigQuery 커스텀 역할

BigQuery의 커스텀 Cloud IAM 역할을 만들려면 Cloud IAM 커스텀 역할 문서에서 설명된 단계를 따르세요.

다음 단계