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

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

制限事項

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

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

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 に必要な標準の権限とは別に必要です。

必要なマネージド フォルダの権限を付与するには、必要な権限のみを含むカスタムロールを作成します。

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

マネージド フォルダを含む転送を作成するには、transferSpecmanagedFolderTransferEnabled: true を指定します。必要に応じて、path 値を指定して、特定の管理対象フォルダのみを転送することもできます。

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

転送元と転送先で正しいマネージド転送権限が設定されていない場合、転送は失敗します。

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

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

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

Cloud Logging

マネージド フォルダのアクションは Cloud Logging によって記録されます。詳細については、Storage Transfer Service の Cloud Logging をご覧ください。

トラブルシューティング

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