Transfer Service for On Premises Data の IAM 権限

このページでは、オンプレミス用 Transfer に必要な Identity and Access Management(IAM)権限について説明します。

概要

オンプレミス用 Transfer は、IAM 権限を使用して、オンプレミス用 Transfer リソースにアクセスできるユーザーを制御します。これらの権限は、IAM ロールを使用してユーザーに付与されます。

一般的なユースケースに対処する IAM 事前定義ロールを使用することをおすすめします。ただし、権限のカスタムセットが含まれたロールや、最小権限の原則に従う権限へのアクセスが必要になる場合があります。そのような場合は、必要に応じて IAM カスタムロールを作成できます。

各プロジェクトの初回設定では、Google Cloud プロジェクト管理者(resourcemanager.projects.setIamPolicy 権限を持つアカウント)が必要です。この権限により、管理者は IAM ロールの作成と付与ができるようになります。

オンプレミス転送の作成に必要な権限

オンプレミス転送の作成と管理には、次のタイプのアカウントの使用を検討してください。

  • オンプレミス用 Transfer 管理者アカウント(管理者アカウント): 管理者アカウントは、ユーザー アカウントのサポートに使用されます。このアカウントを使用すると、オンプレミス エージェントの管理と帯域幅の使用量上限の設定ができます。
  • ユーザー アカウント: ユーザー アカウントは移行を作成して開始します。ユーザー アカウントに転送ジョブの削除権限を付与しないことをおすすめします。

以下のセクションでは、オンプレミス用 Transfer に必要な IAM 権限について説明します。

管理者アカウントの転送

次の表に、転送を実行する同僚をサポートするために、管理者アカウントに必要な権限を示します。

権限 説明
resourcemanager.projects.getIamPolicy

転送に必要な権限がオンプレミス用 Transfer サービス アカウントにあることを確認するために使用されます。

この権限の詳細については、プロジェクトの権限をご覧ください。

プロジェクトの事前定義ロール roles/browser は、プロジェクト階層の閲覧に必要な読み取りアクセス権を付与するために使用されます。

storagetransfer.projects.getServiceAccount

プロジェクトの設定やエージェントのモニタリングなど、転送プロジェクトで管理アクションが可能になります。

これらの権限の詳細については、権限をご覧ください。

Storage Transfer Service の事前定義ロール roles/storagetransfer.admin を使用すると、リストにある権限が付与されます。

storagetransfer.jobs.create
storagetransfer.jobs.delete
storagetransfer.jobs.get
storagetransfer.jobs.list
storagetransfer.jobs.patch
storagetransfer.operations.get
storagetransfer.operations.list
storagetransfer.operations.pause
storagetransfer.operations.resume

ユーザー アカウント

次の表に、ユーザー アカウントが転送を作成して開始するために必要な権限を示します。

権限 説明
resourcemanager.projects.getIamPolicy

転送に必要な Pub/Sub 権限がオンプレミス用 Transfer サービス アカウントにあることを確認するために使用されます。

この権限の詳細については、プロジェクトの権限をご覧ください。

プロジェクトの事前定義ロール roles/browser は、プロジェクト階層の閲覧に必要な読み取りアクセス権を付与するために使用されます。

storagetransfer.projects.getServiceAccount

ユーザーが、転送の作成、取得、更新、一覧表示をできるようになります。

これらの権限の詳細については、権限をご覧ください。

Storage Transfer Service の事前定義ロール roles/storagetransfer.user を使用すると、このリストされた権限が付与されます。

storagetransfer.jobs.create
storagetransfer.jobs.get
storagetransfer.jobs.list
storagetransfer.jobs.patch
storagetransfer.operations.get
storagetransfer.operations.list
storagetransfer.operations.pause
storagetransfer.operations.resume
resourcemanager.projects.get

ユーザーが、転送の一部として Cloud Storage オブジェクトを作成、更新、削除できるようになります。

これらの権限の詳細については、Cloud Storage の IAM 権限をご覧ください。

Cloud Storage の事前定義ロール roles/storage.objectAdmin を使用すると、リストにある権限が付与されます。

resourcemanager.projects.list
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.getIamPolicy
storage.objects.list
storage.objects.setIamPolicy
storage.objects.update

オンプレミス転送の実行に必要な権限

オンプレミス用 Transfer では、次の種類のアカウントを使用してデータが転送されます。

  • Google 管理のサービス アカウント: このサービス アカウントは、プロジェクト内の Cloud Storage リソースや Pub/Sub リソースと通信します。

  • エージェント アカウント: データを Cloud Storage に転送するオンプレミス用 Transfer エージェントの実行に使用するアカウントです。エージェント アカウントは、作成するユーザー アカウントかサービス アカウントのいずれかになります。

以降のセクションでは、転送の実行に必要な権限について説明します。

Google が管理するサービス アカウント

オンプレミス用 Transfer は、Google が管理するサービス アカウントを使用して、プロジェクト内の Cloud Storage および Pub/Sub リソースと通信します。このサービス アカウントに必要な権限については、以降のセクションで詳しく説明します。

サービス アカウントの形式は project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com です。特定の PROJECT_NUMBER を確認するには、 googleServiceAccounts.get API 呼び出しを使用します。

転送先の Cloud Storage バケット

次の表に、サービス アカウントが転送先の Cloud Storage バケットにデータを転送するために必要な権限を示します。

権限 説明
storage.buckets.get サービス アカウントが、請求場所を確認できるようにします。
storage.objects.create サービス アカウントに、転送の受信オブジェクトの書き込みを許可します。
storage.objects.get サービス アカウントが、リスト出力の読み取りと、オブジェクトのアップロードの再試行時にアップロード前提条件を確認できるようにします。
storage.objects.list サービス アカウントが、同期の差分を計算できるようにします。また、転送中に作成された一時的なコンポーネント オブジェクトを一覧表示して、削除できるようにします。

Google Cloud プロジェクト

次の表に、サービス アカウントが Google Cloud プロジェクトと通信するために必要な権限を示します。

権限 説明
pubsub.subscriptions.create サービス アカウントが、タスクの割り当て、進行状況の追跡、オンプレミス用 Transfer で使用されるハートビート メッセージのサブスクリプション作成を行うために Pub/Sub サブスクリプションを作成できるようにします。
pubsub.subscriptions.delete サービス アカウントに、孤立したサブスクリプションの削除を許可します。
pubsub.topics.create サービス アカウントが、タスク割り当ての Pub/Sub サブスクリプションへのタスクトピックの接続、タスクの進行状況の追跡、ハートビート トピックの作成、トピックの制御をできるようにします。

Pub/Sub トピック

次の表に、オンプレミス用 Transfer で使用される Pub/Sub トピックとの通信にサービス アカウントが必要とする権限を示します。これらの権限はプロジェクト レベルで適用します。

権限 説明
pubsub.topics.attachSubscription サービス アカウントが、Pub/Sub タスクに割り当てのサブスクリプションを接続し、トピックの進行状況の追跡、接続、制御をできるようにします。
pubsub.topics.publish サービス アカウントに、Pub/Sub トピックに対するタスク割り当ての作成、進行状況の追跡、接続、制御を許可します。

Pub/Sub サブスクリプション

次の表に、オンプレミス用 Transfer で使用される Pub/Sub サブスクリプションとの通信に必要なサービス アカウント権限を示します。

権限 説明
pubsub.subscriptions.consume サービス アカウントに、進行状況の読み取りと Pub/Sub サブスクリプションの接続を許可します。
pubsub.subscriptions.get サービス アカウントが、サブスクリプションの接続を確認できるようにします。

オンプレミス エージェント アカウント

オンプレミス用 Transfer は、エージェント アカウントを使用して Cloud Storage バケットにデータを転送します。エージェント アカウントは、オンプレミス エージェントの実行に使用するユーザー アカウントまたはユーザーが管理するサービス アカウントです。このエージェント アカウントは、オンプレミスでインストールしたエージェントとオンプレミス用 Transfer エージェントの間で通信を行います。エージェント アカウントに必要な権限については、次のセクションで詳しく説明します。

転送先の Cloud Storage バケット

次の表に、オンプレミス エージェント アカウントが転送先の Cloud Storage バケットにデータを転送するために必要な権限を示します。

権限 説明
storage.objects.create 転送中、エージェント アカウントに Cloud Storage オブジェクトの書き込みを許可します。
storage.objects.delete 転送中、エージェント アカウントに Cloud Storage オブジェクトの削除または上書きを許可します。
storage.objects.get エージェント アカウントに、適切な前提条件を使用した複合アップロードの再試行を許可します。

オンプレミス用 Pub/Sub トピックの転送

次の表に、オンプレミス用 Transfer のデータが必要とする Pub/Sub トピックで、オンプレミス エージェント アカウントに必要な権限を示します。これらの権限は、プロジェクト レベルで適用します。

権限 説明
pubsub.topics.attachSubscription エージェント アカウントに、Pub/Sub トピックのリッスンを許可します。
pubsub.topics.get エージェント アカウントが進行状況を確認し、既存の Pub/Sub トピックを接続できるようにします。
pubsub.topics.publish エージェント アカウントがタスクの進行状況を公開し、Pub/Sub トピックを接続できるようにします。

Pub/Sub サブスクリプション

次の表に、オンプレミス用 Transfer で使用される Pub/Sub サブスクリプションとの通信にオンプレミス エージェント アカウントが必要とする権限を示します。これらの権限はプロジェクト レベルで適用します。

権限 説明
pubsub.subscriptions.consume エージェント アカウントに、タスクの割り当てと制御のために Pub/Sub トピックの読み取りを許可します。
pubsub.subscriptions.create エージェント アカウントに、Pub/Sub サブスクリプションの作成を許可します。
pubsub.subscriptions.get エージェント アカウントが、既存の Pub/Sub サブスクリプションの制御、接続、割り当てを確認できるようにします。
pubsub.subscriptions.delete エージェント アカウントが、終了時にサブスクリプションをクリーンアップできるようにします。