アクセス制御

このページでは、Cloud Composer API で利用可能なアクセス制御オプションについて説明します。

概要

Cloud Composer API は、Identity and Access Management(IAM)を使用してアクセス制御を行います。

Cloud Composer API では、プロジェクト レベルでアクセス制御を構成できます。 たとえば、プロジェクト内のすべての Cloud Composer API リソースへのアクセス権をデベロッパーのグループに付与できます。

IAM とその機能の詳細については、IAM のドキュメントをご覧ください。特に、IAM ポリシーの管理をご覧ください。

すべての Cloud Composer API メソッドで、呼び出し元が必要な権限を持っている必要があります。詳細については、権限とロールをご覧ください。

必要な権限

次の表に、Cloud Composer API の各 API メソッドを呼び出す、または API を使用する Google Cloud ツール(Google Cloud Console や Cloud SDK など)を使用してタスクを実行する際に、呼び出し元に付与されている必要がある権限を示します。

メソッド 権限
environments.create composer.environments.create
iam.serviceAccounts.actAs(環境が運用されるサービス アカウント)
environments.delete composer.environments.delete
environments.get composer.environments.get
environments.list composer.environments.list
environments.update composer.environments.update
operations.delete composer.operations.delete
operations.get composer.operations.get
operations.list composer.operations.list

役割

ロール 役職 説明 権限 最下位のリソース
roles/composer.admin Composer 管理者 Cloud Composer リソースのすべてを管理できます。
  • composer.*
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
プロジェクト
roles/composer.environmentAndStorageObjectAdmin 環境とストレージ オブジェクトの管理者 Cloud Composer のリソースとすべてのプロジェクト バケットのオブジェクトを管理できる権限を付与します。
  • composer.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.*
プロジェクト
roles/composer.environmentAndStorageObjectViewer 環境ユーザーとストレージ オブジェクトの閲覧者 Cloud Composer 環境とオペレーションを一覧表示して取得するために必要な権限を付与します。 すべてのプロジェクト バケットのオブジェクトに対して読み取り専用アクセスを許可します。
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.get
  • storage.objects.list
プロジェクト
roles/composer.user Composer ユーザー Cloud Composer 環境とオペレーションを一覧表示して取得するために必要な権限を付与します。
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
プロジェクト
roles/composer.worker Composer ワーカー Cloud Composer 環境 VM の実行に必要な権限を付与します(サービス アカウント向け)。
  • artifactregistry.*
  • cloudbuild.*
  • container.*
  • containeranalysis.occurrences.create
  • containeranalysis.occurrences.delete
  • containeranalysis.occurrences.get
  • containeranalysis.occurrences.list
  • containeranalysis.occurrences.update
  • logging.logEntries.create
  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.monitoredResourceDescriptors.*
  • monitoring.timeSeries.*
  • pubsub.snapshots.create
  • pubsub.snapshots.delete
  • pubsub.snapshots.get
  • pubsub.snapshots.list
  • pubsub.snapshots.seek
  • pubsub.snapshots.update
  • pubsub.subscriptions.consume
  • pubsub.subscriptions.create
  • pubsub.subscriptions.delete
  • pubsub.subscriptions.get
  • pubsub.subscriptions.list
  • pubsub.subscriptions.update
  • pubsub.topics.attachSubscription
  • pubsub.topics.create
  • pubsub.topics.delete
  • pubsub.topics.detachSubscription
  • pubsub.topics.get
  • pubsub.topics.list
  • pubsub.topics.publish
  • pubsub.topics.update
  • pubsub.topics.updateTag
  • remotebuildexecution.blobs.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • source.repos.get
  • source.repos.list
  • storage.buckets.create
  • storage.buckets.get
  • storage.buckets.list
  • storage.objects.*
プロジェクト

基本ロール

役割 役職 説明 権限 最下位のリソース
roles/owner オーナー Cloud Composer リソースを完全に制御できるようにするための基本ロール。 composer.operations.list
composer.operations.get
composer.operations.delete
composer.environments.list
composer.environments.get
composer.environments.delete
composer.environments.update
composer.environments.create
iam.serviceAccounts.actAs
プロジェクト
roles/editor 編集者 Cloud Composer リソースを完全に制御できるようにするための基本ロール。 composer.operations.list
composer.operations.get
composer.operations.delete
composer.environments.list
composer.environments.get
composer.environments.delete
composer.environments.update
composer.environments.create
iam.serviceAccounts.actAs
プロジェクト
roles/reader 閲覧者 ユーザーが Cloud Composer リソースを一覧表示、取得できるようにするための基本ロール。 composer.operations.list
composer.operations.get
composer.environments.list
composer.environments.get
プロジェクト

一般的なタスクの権限

役割は権限の集まりです。このセクションでは、一般的なタスクに対して必要な役割または権限をリストしています。

タスク 権限および / またはロール
IAP で保護された Airflow ウェブ インターフェースにアクセスする composer.environments.get
gcloud コマンドライン ツールを使って Airflow CLI を実行する composer.environments.get
container.clusters.getCredentials
roles/container.developer
Cloud Console の [環境] ページを表示する composer.environments.list
servicemanagement.projectSettings.get
Google Cloud のオペレーション スイートのログと指標を表示する roles/logging.viewer
roles/monitoring.viewer
環境の作成 composer.environments.create
iam.serviceAccounts.actAs(環境が運用されるサービス アカウント)
環境の更新と削除(環境変数の設定や Python パッケージのインストール、更新を含む) environments.delete
environments.update
ファイルを DAG と Plugins フォルダにアップロードし、ログフォルダの Airflow ログにアクセスする バケットまたはプロジェクト レベルで割り当てられる storage.objectAdmin

DAG 宛先バケットを検索する composer.environments.get

gcloud を介したアクセス制御

事前定義ロールを割り当てるには、gcloud projects get-iam-policy コマンドを実行して現在のポリシーを取得し、Composer 管理者ロール(roles/composer.admin)または Composer ユーザーロール(roles/composer.user)のいずれかを使用してポリシー バインディングを更新して、gcloud projects set-iam-policy コマンドを実行します。gcloud を使用したロールの割り当ての詳細については、IAM ドキュメントのアクセス権の付与、変更、取り消しのページをご覧ください。

Cloud Composer 権限を含むカスタムロールを構成するには、ロールの表から目的の権限のリストを含めて、gcloud iam roles create コマンドを実行します。新しく構成したカスタムロールとともに Cloud IAM ポリシーを更新します。詳細については、IAM ドキュメントのカスタムロールの作成ページをご覧ください。

Cloud Console でのアクセス制御

Cloud Console を使用して、環境やプロジェクトのアクセス制御を管理できます。

プロジェクト レベルでアクセス制御を設定するには:

  1. Google Cloud Console で [IAM] ページを開きます。
  2. プロジェクトを選択し、[続行] をクリックします。
  3. [メンバーを追加] をクリックします。
  4. まだ IAM のロールを付与していない新しいメンバーのメールアドレスを入力します。
  5. プルダウン メニューから目的のロールを選択します。
  6. [追加] をクリックします。
  7. 権限を付与した役割の下に、そのメンバーがリストされていることを確認します。