プロジェクト内または組織内のユーザーのアクセスを制限するには、Dataflow で Identity and Access Management(IAM)のロールを使用します。Google Cloud プロジェクト全体に対する閲覧者、編集者、オーナーのアクセス権を付与するのではなく、Dataflow 関連リソースへのアクセスのみを制御できます。
このページでは、Dataflow の IAM 役割の使用方法について説明します。IAM とその機能の詳細については、IAM のドキュメントをご覧ください。
どの Dataflow メソッドでも、呼び出し側に一定の権限が必要になります。Dataflow でサポートされる権限と役割のリストについては、次のセクションをご覧ください。
権限と役割
ここでは、Dataflow IAM でサポートされる権限と役割について簡単に説明します。
必要な権限
呼び出し元が各メソッドを呼び出す際に必要となる権限のリストを次の表に示します。
メソッド | 必要な権限 |
---|---|
dataflow.jobs.create |
dataflow.jobs.create |
dataflow.jobs.cancel |
dataflow.jobs.cancel |
dataflow.jobs.updateContents |
dataflow.jobs.updateContents |
dataflow.jobs.list |
dataflow.jobs.list |
dataflow.jobs.get |
dataflow.jobs.get |
dataflow.messages.list |
dataflow.messages.list |
dataflow.metrics.get |
dataflow.metrics.get |
dataflow.jobs.snapshot |
dataflow.jobs.snapshot |
役割
次の表に、Dataflow IAM のロールと、各ロールに含まれている Dataflow に関連するすべての権限に対応するリストを示します。各権限は、それぞれ特定のリソースタイプを対象としています。権限のリストについては、Google Cloud Console の [ロール] ページをご覧ください。
Role | Permissions |
---|---|
Dataflow Admin( Minimal role for creating and managing dataflow jobs. |
|
Dataflow Developer( Provides the permissions necessary to execute and manipulate Dataflow jobs. Lowest-level resources where you can grant this role:
|
|
Dataflow Viewer( Provides read-only access to all Dataflow-related resources. Lowest-level resources where you can grant this role:
|
|
Dataflow Worker( Provides the permissions necessary for a Compute Engine service account to execute work units for a Dataflow pipeline. Lowest-level resources where you can grant this role:
|
|
Dataflow ワーカーロール(roles/dataflow.worker
)は、Compute Engine サービス アカウントが Apache Beam パイプラインの作業単位を実行するのに必要な権限を付与します。Dataflow ワーカーのロールは、Dataflow サービスから作業をリクエストして更新できるサービス アカウントに割り当てる必要があります。
Dataflow サービス エージェントのロール(roles/dataflow.serviceAgent
)は、Dataflow サービス アカウントによってのみ使用されます。これにより、サービス アカウントは、Dataflow ジョブを実行する Google Cloud プロジェクトのマネージド リソースにアクセスできます。Google Cloud Console の [API] ページでプロジェクトの Dataflow API を有効にすると、サービス アカウントに自動的に割り当てられます。
ジョブの作成
ジョブを作成する場合、ジョブの実行と検証に必要な最小限の権限セットが roles/dataflow.admin
ロールに含まれています。
あるいは、次の権限が必要です。
roles/dataflow.developer
ロールは、ジョブをインスタンス化するために必要です。roles/compute.viewer
ロールは、マシンタイプ情報にアクセスし、その他の設定を表示するために必要です。roles/storage.objectAdmin
ロールは、Cloud Storage 上のファイルをステージングする権限を付与するために必要です。
役割の割り当て例
Dataflow のさまざまなロールの用途の例として、以下の点を考慮してください。
- ジョブの作成と確認を行うデベロッパーには、
roles/iam.serviceAccountUser
ロールが必要です。 - 権限をより詳細に管理する場合、Dataflow ジョブを扱うデベロッパーには、
roles/dataflow.developer
のロールが必要です。- 必要なファイルをステージングするには、
roles/storage.objectAdmin
または関連するロールが必要です。 - デバッグと割り当ての確認を行うには、プロジェクトの
roles/compute.viewer
ロールが必要です。 - 他のロールの割り当てがない場合、デベロッパーは Dataflow ジョブの作成とキャンセルを行えますが、個々の VM を操作することや、他の Cloud サービスにアクセスすることはできません。
- 必要なファイルをステージングするには、
- Dataflow のデータを処理するには、ワーカー サービス アカウントに
roles/dataflow.worker
とroles/dataflow.admin
のロールが付与されている必要があります。- ジョブデータにアクセスするには、サービス アカウントに
roles/storage.objectAdmin
などの他のロールが付与されている必要があります。 - BigQuery テーブルに書き込むには、ワーカー サービス アカウントに
roles/bigquery.dataEditor
のロールが付与されている必要があります。 - Pub/Sub トピックまたはサブスクリプションからの読み取りを行うには、ワーカー サービス アカウントに
roles/pubsub.editor
のロールが付与されている必要があります。
- ジョブデータにアクセスするには、サービス アカウントに
- 共有 VPC を使用している場合は、共有 VPC サブネットワークをDataflow サービス アカウントと共有し、Compute ネットワーク ユーザーのロールを指定したサブネットに割り当てる必要があります。
- 共有 VPC サブネットワークが Dataflow サービス アカウントと共有されているかどうかを確認するには、Google Cloud コンソールで [共有 VPC] ページに移動してサブネットを検索します。[共有者] 列で、VPC サブネットワークが Dataflow サービス アカウントと共有されているかどうかを確認できます。詳細については、共有 VPC のサブネットワーク パラメータを指定するためのガイドラインをご覧ください。
- ホスト プロジェクトの Compute Engine サービス アカウント、サービス プロジェクトの Dataflow ワーカー サービス アカウント、ジョブの送信に使用するサービス アカウントには次のロールが付与されている必要があります。
roles/dataflow.admin
roles/dataflow.serviceAgent
roles/compute.networkUser
roles/storage.objectViewer
Dataflow のロールを割り当てる
現在、Dataflow の役割は組織とプロジェクトに対してのみ設定できます。
組織レベルでロールを管理するには、IAM を使用した組織のアクセス制御をご覧ください。
プロジェクト レベルの役割を設定するには、リソースへのアクセス権の付与、変更、取り消しをご覧ください。