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"
リポジトリに公開アクセス権を付与する
Dataform リポジトリへの一般公開アクセス権を付与するには、リポジトリに対する IAM ロールを allAuthenticatedUsers
プリンシパルに付与します。
allAuthenticatedUsers
プリンシパルに IAM ロールを割り当てると、サービス アカウントと、Google アカウントで認証されたインターネット上のすべてのユーザーにそのロールが付与されます。これには、個人用 Gmail アカウントなど、Google Workspace アカウントまたは Cloud Identity のドメインに接続していないアカウントも含まれます。認証されていないユーザー(匿名の訪問者など)は含まれません。詳細については、認証済みのすべてのユーザーをご覧ください。
たとえば、Dataform 閲覧者のロールを sales
リポジトリの allAuthenticatedUsers
に付与すると、Google アカウントで認証されたすべてのサービス アカウントとインターネット上のユーザーは、すべての sales
コードリソースへの読み取り専用権限を持ちます。
Dataform リポジトリへの公開アクセス権を付与するには、次の手順に沿って操作します。
ターミナルで、アクセス ポリシーを含む Dataform API
repositories.setIamPolicy
リクエストを渡します。ポリシーで、
allAuthenticatedUsers
プリンシパルを次の形式で選択したロールにバインドします。{ "policy": { "bindings": [ { "role": "roles/ROLE", "members": [ "allAuthenticatedUsers", ] }, ], } }
以下を置き換えます。
ROLE
: すべての認証済みユーザーに付与する Dataform IAM ロール。
次のコマンドは、sales
リポジトリに対する Dataform 閲覧者のロールを allAuthenticatedUsers
に付与する repositories.setIamPolicy
Dataform API リクエストを渡します。
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
を制限すると、allAuthenticatedUsers
プリンシパルをプロジェクトの IAM ポリシーで使用できないため、Dataform リポジトリを含めて、すべてのリソースへの公開アクセスの付与が防止されます。
iam.allowedPolicyMemberDomains
ポリシーの詳細と設定手順については、ドメイン別の ID の制限をご覧ください。
Dataform での Workforce Identity 連携
Workforce Identity 連携では、外部 ID プロバイダ(IdP)を使用し、IAM で Google Cloud サービスに対するユーザーの認証と認可を行うことができます。
Dataform は Workforce Identity 連携をサポートしており、既知の制限はありません。
次のステップ
- IAM について詳しくは、IAM の概要をご覧ください。
- ロールと権限について詳しくは、ロールについてをご覧ください。
- リソースに対するアクセス管理の詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
- Dataform 内のテーブルに BigQuery のロールを付与する方法については、IAM を使用して個々のテーブルへのアクセスを制御するをご覧ください。
- Workforce Identity 連携の主なコンセプトの詳細については、Workforce Identity 連携をご覧ください。