Dataform에 필요한 액세스 권한 부여

이 문서에서는 BigQuery에서 워크플로를 실행하기 위해 Dataform 서비스 계정에 필요한 Identity and Access Management(IAM) 역할을 부여하는 방법을 설명합니다.

Dataform의 서비스 계정 정보

첫 번째 Dataform 저장소를 만들면 Dataform에서 기본 서비스 계정을 자동으로 생성합니다. Dataform은 기본 서비스 계정을 사용하여 사용자 대신 BigQuery와 상호작용합니다. 기본 Dataform 서비스 계정에는 기본적으로 BigQuery 역할이나 권한이 부여되지 않습니다. 기본 Dataform 서비스 계정에 필요한 액세스 권한을 부여해야 합니다.

기본 Dataform 서비스 계정 ID의 형식은 다음과 같습니다.

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

YOUR_PROJECT_NUMBER를 Google Cloud 프로젝트의 숫자 ID로 바꿉니다. Google Cloud 프로젝트 ID는Google Cloud 콘솔 대시보드에서 찾을 수 있습니다. 자세한 내용은 프로젝트 식별을 참조하세요.

기본 Dataform 서비스 계정 외에도 다른 서비스 계정을 사용하여 대신 워크플로를 실행할 수 있습니다. 커스텀 서비스 계정을 구성할 수 있습니다.

  • 저장소 수준에서 지정된 저장소의 모든 워크플로를 실행합니다.

  • 워크플로 구성에 대해 개별적으로 실행합니다.

Dataform 저장소 또는 워크플로 구성을 만들 때 액세스 권한이 있는 Google Cloud 프로젝트와 연결된 모든 서비스 계정을 선택할 수 있습니다. Dataform 리소스와 연결된 모든 서비스 계정에 필요한 권한을 구성해야 합니다.

Dataform 저장소와 연결된 커스텀 서비스 계정은 해당 저장소에서 워크플로를 실행하는 데만 사용됩니다. 다른 모든 저장소 작업은 기본 Dataform 서비스 계정으로 계속 수행됩니다.

Dataform 서비스 계정에 필요한 역할

BigQuery에서 워크플로를 실행하려면 Dataform에 사용된 기본 및 커스텀 서비스 계정에 다음 BigQuery IAM 역할이 필요합니다.

또한 Dataform에서 사용할 커스텀 서비스 계정에 대한 서비스 계정 토큰 생성자(roles/iam.serviceAccountTokenCreator) 액세스 권한을 기본 Dataform 서비스 계정에 부여해야 합니다.

Dataform 서비스 계정의 보안 고려사항

Dataform에서 필요한 역할을 서비스 계정에 부여할 때는 다음과 같은 보안 고려사항이 있습니다.

  • 필요한 역할이 부여된 모든 서비스 계정은 VPC 서비스 제어에 관계없이 서비스 계정이 속한 프로젝트의 BigQuery 또는 Secret Manager에 액세스할 수 있습니다.

    자세한 내용은 Dataform의 VPC 서비스 제어 구성을 참조하세요.

  • dataform.repositories.create IAM 권한이 있는 모든 사용자는 기본 Dataform 서비스 계정과 해당 서비스 계정에 부여된 모든 권한을 사용하여 코드를 실행할 수 있습니다.

    자세한 내용은 Dataform 권한의 보안 고려사항을 참조하세요.

서비스 계정이 BigQuery에서 읽거나 쓸 수 있는 데이터를 제한하려면 선택한 BigQuery 데이터 세트 또는 테이블에 대한 세분화된 BigQuery IAM 권한을 부여하면 됩니다. 자세한 내용은 데이터 세트 액세스 제어테이블 및 뷰 액세스 제어를 참조하세요.

시작하기 전에

  1. Google Cloud 콘솔에서 Dataform 페이지로 이동합니다.

    Dataform 페이지로 이동

  2. 저장소를 선택하거나 만듭니다.

Dataform에서 사용되는 서비스 계정에 필요한 BigQuery 역할 부여

기본 Dataform 서비스 계정에 필요한 BigQuery IAM 역할을 부여하거나 Dataform에서 사용하려는 커스텀 서비스 계정에 필요한 IAM 역할을 부여하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

    IAM 페이지로 이동

  2. 액세스 권한 부여를 클릭합니다.

  3. 새 주 구성원 필드에 서비스 계정 ID를 입력합니다.

  4. 역할 선택 드롭다운 목록에서 BigQuery 작업 사용자 역할을 선택합니다.

  5. 다른 역할 추가를 클릭한 다음 역할 선택 드롭다운 목록에서 BigQuery 데이터 편집자 역할을 선택합니다.

  6. 다른 역할 추가를 클릭한 다음 역할 선택 드롭다운 목록에서 BigQuery 데이터 뷰어 역할을 선택합니다.

  7. 저장을 클릭합니다.

커스텀 서비스 계정에 토큰 생성 액세스 권한 부여

Dataform에서 커스텀 서비스 계정을 사용하려면 기본 Dataform 서비스 계정이 커스텀 서비스 계정에 액세스할 수 있어야 합니다. 이 액세스 권한을 부여하려면 서비스 계정 토큰 생성자 역할이 있는 커스텀 서비스 계정에 대한 주 구성원으로 기본 Dataform 서비스 계정을 추가해야 합니다.

기본 Dataform 서비스 계정에 커스텀 서비스 계정에 대한 액세스 권한을 부여하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 IAM > 서비스 계정으로 이동합니다.

    서비스 계정 페이지로 이동

  2. 프로젝트를 선택합니다.

  3. 'YOUR_PROJECT_NAME' 프로젝트의 서비스 계정 페이지에서 서비스 계정을 선택합니다.

  4. 권한으로 이동한 다음 액세스 권한 부여를 클릭합니다.

  5. 새 주 구성원 필드에 기본 Dataform 서비스 계정 ID를 입력합니다.

  6. 역할 선택 드롭다운 목록에서 서비스 계정 토큰 생성자 역할을 선택합니다.

  7. 저장을 클릭합니다.

다음 단계