次の表では、Storage Transfer Service の各メソッドを実行するために必要な、最小限の権限の一覧が表示されています。
リソース | メソッド | 必要な権限 |
---|---|---|
googleServiceAccount |
get |
storagetransfer.projects.getServiceAccount |
transferJobs |
create |
次の両方が必要です。
|
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 |
ソース権限
Cloud Storage
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 |
サービス アカウントにバケット内のオブジェクトの削除を許可します。 | deleteObjectsFromSourceAfterTransfer を true に設定する場合は必要。 |
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 にバケット内のオブジェクトの削除を許可します。 | deleteObjectsFromSourceAfterTransfer を true に設定する場合は必要。 |
URL リスト
データソースが URL リストの場合は、URL リストの各オブジェクトが一般公開されていることを確認してください。
シンク権限
Storage Transfer Service は、サービス アカウントを使用して Cloud Storage シンクバケットにデータを移動します。サービス アカウントは、シンクバケットに対する特定の権限が必要です。
権限 | 説明 | 使用 |
---|---|---|
storage.buckets.get |
サービス アカウントにバケット ロケーションの取得を許可します。 | 常に必要。 |
storage.objects.create |
サービス アカウントにバケットへのオブジェクトの追加を許可します。 | 常に必要。 |
storage.objects.delete |
サービス アカウントにバケット内のオブジェクトの削除を許可します。 | overwriteObjectsAlreadyExistingInSink または deleteObjectsUniqueInSink を true に設定する場合は必要。 |
storage.objects.list |
サービス アカウントにバケット内のオブジェクトの一覧表示を許可します。 | overwriteObjectsAlreadyExistingInSink を false または deleteObjectsUniqueInSink を true に設定する場合は必要。 |
これらの権限はすべて roles/storage.legacyBucketWriter
ロールに含まれており、サービス アカウントに割り当てることができます。Cloud Storage のロールと権限の一覧については、IAM ロールをご覧ください。
Pub/Sub 権限
移管用 Pub/Sub を使用する予定がある場合、必要とする Pub/Sub トピックの IAM ロール roles/pubsub.publisher
をサービス アカウントに付与します。