사전 정의된 Dataform 역할
다음 표에는 Dataform 리소스에 대한 액세스 권한을 부여하는 사전 정의된 역할이 나와 있습니다.
Role | Permissions |
---|---|
Dataform Admin( Full access to all Dataform resources. |
|
Code Creator( Access only to private and shared code resources. The permissions in the Code Creator let you create and list code in Dataform, and access only the code that you created and code that was explicitly shared with you. |
|
Code Editor( Edit access code resources. |
|
Code Owner( Full access to code resources. |
|
Code Viewer( Read-only access to all code resources. |
|
Dataform Editor( Edit access to Workspaces and Read-only access to Repositories. |
|
Dataform Viewer( Read-only access to all Dataform resources. |
|
커스텀 Dataform 역할
커스텀 역할에는 사용자가 지정하는 모든 권한이 포함될 수 있습니다. 개발 작업공간 만들기 또는 개발 작업공간 내에서 파일 및 디렉터리 만들기와 같은 특정 관리 작업을 수행할 수 있는 권한이 포함된 커스텀 역할을 만들 수 있습니다. 커스텀 역할을 만들려면 커스텀 역할 만들기 및 관리를 참조하세요.
Dataform 권한의 보안 고려사항
dataform.repositories.create
권한이 있는 사용자는 기본 Dataform 서비스 계정 및 서비스 계정에 부여된 모든 권한을 사용해서 BigQuery에서 코드를 실행할 수 있습니다. 여기에는 Dataform SQL 워크플로 실행이 포함됩니다.
dataform.repositories.create
권한은 다음 IAM 역할에 포함됩니다.
- BigQuery Studio 사용자(
roles/bigquery.studioUser
) - 코드 생성자(
roles/dataform.codeCreator
) - 코드 편집자(
roles/dataform.codeEditor
) - 코드 소유자(
roles/dataform.codeOwner
) - Colab Enterprise 사용자(
roles/aiplatform.colabEnterpriseUser
) - Dataform 관리자(
roles/dataform.admin
)
서비스 계정이 BigQuery에서 읽거나 쓸 수 있는 데이터를 제한하려면 선택한 BigQuery 데이터 세트 또는 테이블에 대한 세분화된 BigQuery IAM 권한을 부여하면 됩니다. 자세한 내용은 데이터 세트 액세스 제어 및 테이블 및 뷰 액세스 제어를 참조하세요.
기본 Dataform 서비스 계정 및 여기에 필요한 역할과 권한에 대한 자세한 내용은 Dataform에 필요한 액세스 권한 부여를 참조하세요.
시작하기 전에
- 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.
-
Make sure that billing is enabled for your 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
Dataform 역할 보기
Google Cloud 콘솔에서 다음 단계를 수행합니다.
IAM 및 관리자 > 역할 페이지로 이동합니다.
필터 필드에서 사용 그룹을 선택하고
Dataform
을 입력한 다음 Enter 키를 누릅니다.나열된 역할 중 하나를 클릭하면 오른쪽 창에 역할 권한이 표시됩니다.
예를 들어 Dataform 관리자 역할에는 모든 Dataform 리소스에 대해 전체 액세스 권한이 포함됩니다.
프로젝트에 역할을 부여하는 방법에 대한 자세한 내용은 역할 부여를 참고하세요. 이렇게 하면 사전 정의된 역할 또는 커스텀 역할을 부여할 수 있습니다.
개별 저장소에 대한 액세스 제어
세부적인 권한으로 Dataform에 대한 액세스를 제어하려면 Dataform API repositories.setIamPolicy
요청을 사용하여 개별 저장소에 Dataform IAM 역할을 설정할 수 있습니다.
개별 Dataform 저장소에 Dataform IAM 역할을 설정하려면 다음 단계를 따르세요.
터미널에서 액세스 정책과 함께 Dataform API
repositories.setIamPolicy
요청을 전달합니다.정책에서 다음 형식으로 선택한 역할에 사용자, 그룹, 도메인 또는 서비스 계정을 바인딩합니다.
{ "policy": { "bindings": [ { "role": "roles/ROLE", "members": [ "TYPE:IDENTIFIER", ] }, ], } }
다음을 바꿉니다.
ROLE
: 저장소에 부여할 Dataform IAM 역할TYPE
:user
,group
,domain
, 또는serviceAccount
IDENTIFIER
: 역할을 부여할 사용자, 그룹, 도메인 또는 서비스 계정
IAM 페이지에서 모든 사용자가
dataform.repositories.list
권한이 있는 Dataform 역할을 통해 Dataform 저장소의 전체 목록을 볼 수 있는지 확인합니다.IAM에서 모든 Dataform 저장소에 대한 전체 액세스 권한이 필요한 사용자에게만 모든 저장소에 대한 Dataform 관리자 역할이 부여되었는지 확인하세요.
다음 명령어는 sales
저장소의 Dataform 편집자 역할을 부여하는 repositories.setIamPolicy
Dataform API 요청을 단일 사용자에게 전달합니다.
curl -H "Content-Type: application/json" -X POST -d '{ "policy": { "bindings": [{ "role": "roles/dataform.editor", "members": ["user:sasha@examplepetstore.com"]}] }}' "https://dataform.googleapis.com/v1beta1/projects/examplepetstore/locations/us-central1/repositories/sales:setIamPolicy"
저장소에 대한 공개 액세스 권한 부여
allAuthenticatedUsers
주 구성원에게 저장소의 IAM 역할을 부여하여 Dataform 저장소에 대한 공개 액세스 권한을 부여할 수 있습니다.
allAuthenticatedUsers
주 구성원에게 IAM 역할을 할당하면 서비스 계정과 Google 계정으로 인증된 인터넷의 모든 사용자에게 해당 역할이 부여됩니다. 여기에는 개인 Gmail 계정과 같이 Google Workspace 계정이나 Cloud ID 도메인에 연결되지 않은 계정이 포함됩니다. 익명 방문자와 같은 인증되지 않은 사용자는 포함되지 않습니다. 자세한 내용은 인증된 모든 사용자를 참조하세요.
예를 들어 sales
저장소의 allAuthenticatedUsers
에 Dataform 뷰어 역할을 부여하면 Google 계정으로 인증된 모든 서비스 계정 및 인터넷 사용자는 모든 sales
코드 리소스에 대해 읽기 전용 액세스 권한만 갖습니다.
Dataform 저장소에 대해 공개 액세스 권한을 부여하려면 다음 단계를 수행합니다.
터미널에서 액세스 정책과 함께 Dataform API
repositories.setIamPolicy
요청을 전달합니다.정책에서
allAuthenticatedUsers
주 구성원을 선택한 역할에 다음 형식으로 바인딩합니다.{ "policy": { "bindings": [ { "role": "roles/ROLE", "members": [ "allAuthenticatedUsers", ] }, ], } }
다음을 바꿉니다.
ROLE
: 인증된 모든 사용자에게 부여하려는 Dataform IAM 역할
다음 명령어는 sales
저장소에 대한 Dataform 뷰어 역할을 부여하는 repositories.setIamPolicy
Dataform API 요청을 allAuthenticatedUsers
에 전달합니다.
curl -H "Content-Type: application/json" -X POST -d '{ "policy": { "bindings": [{ "role": "roles/dataform.viewer", "members": ["allAuthenticatedUsers"]}] }}' "https://dataform.googleapis.com/v1beta1/projects/examplepetstore/locations/us-central1/repositories/sales:setIamPolicy"
저장소에 대한 공개 액세스 방지
Dataform 저장소에 대한 공개 액세스 권한이 부여되지 않도록 하려면 프로젝트에서 allAuthenticatedUsers
주 구성원을 제한하면 됩니다.
프로젝트에서 allAuthenticatedUsers
를 제한하려면 iam.allowedPolicyMemberDomains
정책을 설정하고 allowed_values
목록에서 allAuthenticatedUsers
를 삭제하면 됩니다.
iam.allowedPolicyMemberDomains
정책에서 allAuthenticatedUsers
를 제한하면 프로젝트의 모든 IAM 정책에서 allAuthenticatedUsers
주 구성원을 사용할 수 없으므로 Dataform 저장소를 비롯한 모든 리소스에 대한 공개 액세스 권한이 부여되지 않습니다.
iam.allowedPolicyMemberDomains
정책에 관한 자세한 내용과 설정 안내는 도메인별 ID 제한을 참고하세요.
Dataform의 직원 ID 제휴
직원 ID 제휴를 사용하면 외부 ID 공급업체(IdP)를 통해 IAM으로 Google Cloud 서비스에 대해 사용자를 인증 및 승인할 수 있습니다.
Dataform은 알려진 제한사항 없이 직원 ID 제휴를 지원합니다.
다음 단계
- IAM에 대한 자세한 내용은 IAM 개요 참조하기
- 역할 및 권한에 대한 자세한 내용은 역할 이해 참조하기
- 리소스 액세스 관리에 대한 자세한 내용은 프로젝트, 폴더, 조직 액세스 관리 참조하기
- Dataform의 테이블에 BigQuery 역할을 부여하는 방법은 IAM으로 개별 테이블에 대한 액세스 제어 참조하기
- 직원 ID 제휴의 주요 개념에 대한 자세한 내용은 직원 ID 제휴를 참조하기