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에 읽기 및 쓰기 액세스 권한이 모두 필요한 프로젝트에 대한 BigQuery 데이터 편집자. 여기에는 일반적으로 Dataform 저장소를 호스팅하는 프로젝트가 포함됩니다.
- Dataform에 읽기 전용 액세스 권한이 필요한 프로젝트에 대한 BigQuery 데이터 뷰어
- Dataform 저장소를 호스팅하는 프로젝트에 대한 BigQuery 작업 사용자
- BigQuery 데이터 세트를 쿼리하려는 경우 BigQuery 데이터 소유자
- BigQuery 정책 태그를 사용하려는 경우 열 수준 액세스 제어를 위한 BigQuery 역할
또한 Dataform에서 사용할 커스텀 서비스 계정에 대한 서비스 계정 토큰 생성자(roles/iam.serviceAccountTokenCreator
) 액세스 권한을 기본 Dataform 서비스 계정에 부여해야 합니다.
Dataform 서비스 계정의 보안 고려사항
Dataform에서 필요한 역할을 서비스 계정에 부여할 때는 다음과 같은 보안 고려사항이 있습니다.
필요한 역할이 부여된 모든 서비스 계정은 VPC 서비스 제어에 관계없이 서비스 계정이 속한 프로젝트의 BigQuery 또는 Secret Manager에 액세스할 수 있습니다.
자세한 내용은 Dataform의 VPC 서비스 제어 구성을 참조하세요.
dataform.repositories.create
IAM 권한이 있는 모든 사용자는 기본 Dataform 서비스 계정과 해당 서비스 계정에 부여된 모든 권한을 사용하여 코드를 실행할 수 있습니다.자세한 내용은 Dataform 권한의 보안 고려사항을 참조하세요.
서비스 계정이 BigQuery에서 읽거나 쓸 수 있는 데이터를 제한하려면 선택한 BigQuery 데이터 세트 또는 테이블에 대한 세분화된 BigQuery IAM 권한을 부여하면 됩니다. 자세한 내용은 데이터 세트 액세스 제어 및 테이블 및 뷰 액세스 제어를 참조하세요.
시작하기 전에
Google Cloud 콘솔에서 Dataform 페이지로 이동합니다.
저장소를 선택하거나 만듭니다.
Dataform에서 사용되는 서비스 계정에 필요한 BigQuery 역할 부여
기본 Dataform 서비스 계정에 필요한 BigQuery IAM 역할을 부여하거나 Dataform에서 사용하려는 커스텀 서비스 계정에 필요한 IAM 역할을 부여하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
액세스 권한 부여를 클릭합니다.
새 주 구성원 필드에 서비스 계정 ID를 입력합니다.
역할 선택 드롭다운 목록에서 BigQuery 작업 사용자 역할을 선택합니다.
다른 역할 추가를 클릭한 다음 역할 선택 드롭다운 목록에서 BigQuery 데이터 편집자 역할을 선택합니다.
다른 역할 추가를 클릭한 다음 역할 선택 드롭다운 목록에서 BigQuery 데이터 뷰어 역할을 선택합니다.
저장을 클릭합니다.
커스텀 서비스 계정에 토큰 생성 액세스 권한 부여
Dataform에서 커스텀 서비스 계정을 사용하려면 기본 Dataform 서비스 계정에서 커스텀 서비스 계정에 액세스할 수 있어야 합니다. 이 액세스 권한을 부여하려면 서비스 계정 토큰 생성자 역할이 있는 커스텀 서비스 계정에 대한 주 구성원으로 기본 Dataform 서비스 계정을 추가해야 합니다.
기본 Dataform 서비스 계정에 커스텀 서비스 계정에 대한 액세스 권한을 부여하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 IAM > 서비스 계정으로 이동합니다.
프로젝트를 선택합니다.
'YOUR_PROJECT_NAME' 프로젝트의 서비스 계정 페이지에서 커스텀 Dataform 서비스 계정을 선택합니다.
권한으로 이동한 다음 액세스 권한 부여를 클릭합니다.
새 주 구성원 필드에 기본 Dataform 서비스 계정 ID를 입력합니다.
기본 Dataform 서비스 계정 ID의 형식은 다음과 같습니다.
service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
역할 선택 드롭다운 목록에서 서비스 계정 토큰 생성자 역할을 선택합니다.
저장을 클릭합니다.
다음 단계
- BigQuery IAM 역할 및 권한에 대한 자세한 내용은 IAM으로 액세스 제어를 참조하세요.
- BigQuery에 세분화된 권한을 부여하는 방법에 대한 자세한 내용은 데이터 세트에 대한 액세스 제어를 참조하세요.
- BigQuery 테이블에 세분화된 권한을 부여하는 방법에 대한 자세한 내용은 테이블 및 뷰에 대한 액세스 제어를 참조하세요.
- VPC 서비스 제어로 Dataform 액세스를 제어하는 방법은 Dataform의 VPC 서비스 제어 구성을 참조하세요.