Dataform 및 BigQuery는 액세스 제어에 IAM을 사용합니다. IAM의 Dataform 역할과 권한에 대한 자세한 내용은 IAM으로 액세스 제어를 참조하세요.
Dataform은 테이블이나 뷰를 실행할 때 BigQuery에서 리소스를 만듭니다. Dataform에서 개발하는 동안 개별 테이블과 뷰에 BigQuery 역할을 부여하여 실행 후 BigQuery에서 액세스를 제어할 수 있습니다.
리소스에 대한 액세스 권한 부여 및 취소에 대한 자세한 내용은 리소스에 대한 액세스 권한 부여를 참조하세요.
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
테이블이나 뷰에 BigQuery 역할 부여
선택한 테이블 또는 뷰의 .sqlx
정의 파일에 GRANT
DCL 문이 있는 post_operations
블록을 추가하여 Dataform에서 테이블 또는 뷰에 BigQuery 역할을 부여할 수 있습니다.
선택한 테이블이나 뷰에 BigQuery 역할을 부여하려면 다음 단계를 수행합니다.
Google Cloud 콘솔에서 Dataform 페이지로 이동합니다.
저장소를 선택한 후 작업공간을 선택합니다.
파일 창에서
definitions/
디렉터리를 펼칩니다.액세스 권한을 부여하려는 테이블이나 뷰의
.sqlx
정의 파일을 선택합니다.파일에 다음 코드 스니펫을 입력합니다.
post_operations { GRANT "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST" }
다음을 바꿉니다.
ROLE_LIST: 부여하려는 BigQuery 역할 또는 쉼표로 구분된 BigQuery 역할 목록
RESOURCE_TYPE:
TABLE
또는VIEW
USER_LIST: 역할이 부여된 사용자를 쉼표로 구분한 목록
유효한 형식 목록은 user_list를 참조하세요.
(선택사항): 형식을 클릭합니다.
테이블 또는 뷰를 실행합니다.
증분 테이블에 대한 액세스 권한을 부여한 경우 첫 실행 후 테이블 정의 파일에서
GRANT
문을 삭제하세요.
다음 코드 샘플에서는 사용자에게 부여된 테이블에 대한 BigQuery 뷰어 역할을 보여줍니다.
config { type: "table" }
SELECT ...
post_operations {
GRANT `roles/bigquery.dataViewer`
ON TABLE ${self()}
TO "user:222larabrown@gmail.com"
}
테이블이나 뷰에서 BigQuery 역할 취소
REVOKE
DCL 문이 있는 post_operations
블록을 테이블 또는 뷰의 .sqlx
정의 파일에 추가하여 테이블 또는 뷰에서 BigQuery 역할을 취소할 수 있습니다.
선택한 테이블이나 뷰에서 BigQuery 역할을 취소하려면 다음 단계를 수행합니다.
Google Cloud 콘솔에서 Dataform 페이지로 이동합니다.
저장소를 선택한 후 작업공간을 선택합니다.
파일 창에서
definitions/
디렉터리를 펼칩니다.액세스 권한을 취소하려는 테이블이나 뷰의
.sqlx
정의 파일을 선택합니다.post_operations
블록에 다음REVOKE
문을 입력합니다.REVOKE "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST"
다음을 바꿉니다.
- ROLE_LIST: 취소하려는 BigQuery 역할 또는 쉼표로 구분된 BigQuery 역할 목록
- RESOURCE_TYPE:
TABLE
또는VIEW
- USER_LIST: 역할을 취소할 사용자를 쉼표로 구분한 목록. 유효한 형식 목록은 user_list를 참조하세요.
파일의
GRANT
문에서 부여된 액세스 권한을 취소하려면GRANT
문을REVOKE
문으로 바꿉니다.(선택사항): 형식을 클릭합니다.
테이블 또는 뷰를 실행합니다.
증분 테이블에 대한 액세스 권한을 취소한 경우 첫 실행 후 테이블 정의 파일에서
REVOKE
문을 삭제하세요.
다음 코드 샘플에서는 사용자가 취소한 테이블에 대한 BigQuery 뷰어 역할을 보여줍니다.
config { type: "table" }
SELECT ...
post_operations {
REVOKE `roles/bigquery.dataViewer`
ON TABLE ${self()}
FROM "user:222larabrown@gmail.com"
}
테이블과 뷰의 BigQuery 역할 일괄 관리
단일 위치에서 개별 테이블 및 뷰에 대한 BigQuery 액세스를 제어하려면 GRANT
및 REVOKE
DCL 문으로 전용 type: "operations"
파일을 생성할 수 있습니다.
단일 type: "operations"
파일에서 BigQuery 테이블 액세스를 관리하려면 다음 단계를 수행합니다.
Google Cloud 콘솔에서 Dataform 페이지로 이동합니다.
저장소를 선택한 후 작업공간을 선택합니다.
파일 창에서
definitions/
옆에 있는 더보기 메뉴를 클릭합니다.파일 만들기를 클릭합니다.
파일 경로 추가 필드에
definitions/
를 입력하고 파일 이름 다음에.sqlx
를 입력합니다. 예를 들면definitions/table-access.sqlx
입니다.파일 이름에는 숫자, 문자, 하이픈, 밑줄만 포함할 수 있습니다.
파일 만들기를 클릭합니다.
파일 창에서
definitions/
디렉터리를 펼치고 새로 만든 파일을 선택합니다.파일에 다음 코드 스니펫을 입력합니다.
config { type: "operations" } GRANT "ROLE_LIST" ON RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST" REVOKE "ROLE_LIST" ON { "<var>" }}RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
다음을 바꿉니다.
- ROLE_LIST: 부여하거나 취소할 BigQuery 역할 또는 쉼표로 구분된 BigQuery 역할 목록
- RESOURCE_TYPE:
TABLE
또는VIEW
- RESOURCE_NAME: 테이블 또는 뷰의 이름
- USER_LIST: 역할을 부여하거나 취소할 사용자 목록을 쉼표로 구분한 목록. 유효한 형식 목록은 user_list를 참조하세요.
필요에 따라
GRANT
및REVOKE
문을 추가합니다.파일의
GRANT
문에서 부여된 액세스 권한을 취소하려면GRANT
문을REVOKE
문으로 바꿉니다.REVOKE
문을 추가하지 않고GRANT
문을 삭제하면 액세스 권한이 취소되지 않습니다.
(선택사항): 형식을 클릭합니다.
각 업데이트 후에 파일을 실행합니다.
- 증분 테이블에 대한 액세스 권한을 부여하거나 취소한 경우 문을 처음 실행한 후 파일에서
GRANT
또는REVOKE
문을 삭제하세요.
- 증분 테이블에 대한 액세스 권한을 부여하거나 취소한 경우 문을 처음 실행한 후 파일에서
다음 단계
- IAM에 대한 자세한 내용은 IAM 개요 참조하기
- 역할 및 권한에 대한 자세한 내용은 역할 이해 참조하기
- 리소스 액세스 관리에 대한 자세한 내용은 프로젝트, 폴더, 조직 액세스 관리 참조하기