Cloud Storage マネージド フォルダを転送する

Cloud Storage マネージド フォルダを使用すると、Cloud Storage バケット内のオブジェクトに対してきめ細かいアクセス制御を実現できます。権限は、ユニバーサル バケットレベルのアクセスを使用するバケット内のフォルダレベルで設定できます。オブジェクトを Storage Transfer Service を使用して Cloud Storage バケット間で転送する場合、このマネージド フォルダの権限を保持できます。

制限事項

マネージド フォルダの転送には、次の制限事項が適用されます。

  • REST API を使用して転送を作成する必要がある。
  • 転送先バケットでは、均一なバケットレベルのアクセスを使用する必要がある。
  • マネージド フォルダの転送は、deleteObjectsUniqueInSink オプションや deleteObjectsFromSourceAfterTransfer オプションをサポートしていない。
  • バケット リソースタイプ(storage.googleapis.com/Bucket)またはオブジェクト リソースタイプ(storage.googleapis.com/Object)を使用する転送先バケットまたはそのプロジェクトには IAM Conditions は必要ない。プロジェクト内のバケットにこれらのリソースタイプのいずれかを使用する IAM Conditions がある場合、その条件を後で削除しても、マネージド フォルダはそのプロジェクト内のどのバケットにも転送できません。
  • イベント ドリブン転送はサポートされていない。
  • マニフェストの転送はサポートされていない。
  • マネージド フォルダのオペレーションは Cloud Logging では記録されない。オブジェクトのロギングはサポートされています。

IAM 権限

Google 管理のサービス アカウントには、次の Google Cloud Identity and Access Management(IAM)権限が必要です。

ソースバケットに対して:

  • storage.managedFolders.getIamPolicy
  • storage.managedFolders.list
  • storage.managedFolders.get

宛先バケットに対して:

  • storage.managedFolders.setIamPolicy
  • storage.managedFolders.list
  • storage.managedFolders.create

Storage Transfer Service に必要な標準の権限に加えて、次の権限があります。

必要なマネージド フォルダの権限を付与するには、必要な権限のみを含むカスタムロールを作成し、Google が管理するサービス アカウントにバケットレベル(推奨)またはプロジェクト レベルで割り当てます。詳しくは、セキュリティ上の考慮事項をご覧ください。

マネージド フォルダ転送を作成する

マネージド フォルダを含む転送を作成するには、transferSpecmanagedFolderTransferEnabled: true を指定します。

POST https://storagetransfer.googleapis.com/v1/transferJobs
{
  "name": "transferjobs/NAME",
  "projectId": "PROJECT_ID",
  "transferSpec": {
    "gcsDataSource": {
      "bucketName": "SOURCE_BUCKET",
      "managedFolderTransferEnabled": true
    },
    "gcsDataSink": {
      "bucketName": "DESTINATION_BUCKET"
    }
  },
  "status": "ENABLED"
}

REST API を使用して転送を作成する方法については、転送を作成するまたは transferJobs.create リファレンスをご覧ください。

セキュリティ上の考慮事項

Google が管理するサービス アカウントにマネージド フォルダの権限を付与すると、アカウントで宛先フォルダまたはすべてのフォルダ(プロジェクト レベルでロールが付与されている場合)の IAM ポリシーを変更できます。これはセキュリティ リスクとなります。ジョブの編集権限を持つユーザーが、これを悪用して悪意のある人物に権限を付与する可能性があります。このリスクを軽減するには、専用の Google Cloud プロジェクト内でマネージド フォルダの転送を分離することを検討してください。

トラブルシューティング

マネージド フォルダの作成と管理については、トラブルシューティング ページをご覧ください。