Storage Transfer Service メソッドの IAM 権限

次の表では、Storage Transfer Service の各メソッドを実行するために必要な、最小限の権限の一覧が表示されています。

リソース メソッド 必要な権限
googleServiceAccount get storagetransfer.projects.getServiceAccount
transferJobs create 次の両方が必要です。

  • storagetransfer.jobs.create
  • storagetransfer.projects.getServiceAccount

transferjobs get storagetransfer.jobs.get
transferjobs list storagetransfer.jobs.list
transferjobs patch 削除の更新の場合: storagetransfer.jobs.delete
削除しない更新の場合: storagetransfer.jobs.update
transferoperations cancel storagetransfer.operations.cancel
transferOperations get storagetransfer.operations.get
transferOperations list storagetransfer.operations.list
transferOperations pause storagetransfer.operations.pause
transferOperations resume storagetransfer.operations.resume

ソース権限

クラウド ストレージ

Storage Transfer Service は、project-[$PROJECT_NUMBER]@storage-transfer-service.iam.gserviceaccount.com サービス アカウントを使用して Cloud Storage ソースバケットからデータを移動します。サービス アカウントには、ソースバケットに対する次の権限が必要です。

権限 説明 使用
storage.buckets.get サービス アカウントにバケット ロケーションの取得を許可します。 常に必要。
storage.objects.list サービス アカウントにバケット内のオブジェクトの一覧表示を許可します。 常に必要。
storage.objects.get サービス アカウントにバケット内のオブジェクトの読み取りを許可します。 常に必要。
storage.objects.delete サービス アカウントにバケット内のオブジェクトの削除を許可します。 deleteObjectsFromSourceAfterTransfertrue に設定する場合は必要。

roles/storage.objectViewer ロールと roles/storage.legacyBucketReader ロールには、常に必要な権限が含まれています。roles/storage.legacyBucketWriter ロールには storage.objects.delete 権限が含まれています。転送の実行に使用されるサービス アカウントには、必要なロールが割り当てられている必要があります。

Cloud Storage の役割と権限の一覧については、IAM 役割をご覧ください。

Amazon S3

Storage Transfer Service を使用して、Amazon S3 からデータを移動するには、

バケットに対して特定の権限を持つ AWS Identity and Access Management ユーザー アカウントが必要です。

権限 説明 使用
s3:ListBucket Storage Transfer Service にバケット内のオブジェクトの一覧表示を許可します。 常に必要。
s3:GetObject Storage Transfer Service にバケット内のオブジェクトの読み取りを許可します。 常に必要。
s3:GetBucketLocation Storage Transfer Service にバケットのロケーションの取得を許可します。 常に必要。
s3:DeleteObject Storage Transfer Service にバケット内のオブジェクトの削除を許可します。 deleteObjectsFromSourceAfterTransfertrue に設定する場合は必要。

URL リスト

データソースが URL リストの場合は、URL リストの各オブジェクトが一般公開されていることを確認してください。

シンク権限

Storage Transfer Service は、サービス アカウントを使用して Cloud Storage シンクバケットにデータを移動します。サービス アカウントは、シンクバケットに対する特定の権限が必要です。

権限 説明 使用
storage.buckets.get サービス アカウントにバケット ロケーションの取得を許可します。 常に必要。
storage.objects.create サービス アカウントにバケットへのオブジェクトの追加を許可します。 常に必要。
storage.objects.delete サービス アカウントにバケット内のオブジェクトの削除を許可します。 overwriteObjectsAlreadyExistingInSink または deleteObjectsUniqueInSinktrue に設定する場合は必要。
storage.objects.list サービス アカウントにバケット内のオブジェクトの一覧表示を許可します。 overwriteObjectsAlreadyExistingInSinkfalse または deleteObjectsUniqueInSinktrue に設定する場合は必要。

これらの権限はすべて roles/storage.legacyBucketWriter ロールに含まれており、サービス アカウントに割り当てることができます。Cloud Storage のロールと権限の一覧については、IAM ロールをご覧ください。

Pub/Sub 権限

移管用 Pub/Sub を使用する予定がある場合、必要とする Pub/Sub トピックの IAM ロール roles/pubsub.publisher をサービス アカウントに付与します。