移轉 Cloud Storage 代管資料夾

Cloud Storage 管理式資料夾可針對 Cloud Storage 值區中的物件提供精細的存取權控管功能。您可以在使用通用值區層級存取權的值區中,以資料夾層級設定權限。使用 Storage 移轉服務在 Cloud Storage 值區之間轉移物件時,這些受管理的資料夾權限會保留。

限制

以下限制適用於受管理資料夾的移轉作業:

  • 目的地值區必須使用統一值區層級存取權
  • 受管理的資料夾轉移作業不支援 deleteObjectsUniqueInSinkdeleteObjectsFromSourceAfterTransfer 選項。
  • 目的地值區或其專案不得設有使用值區資源類型 (storage.googleapis.com/Bucket) 或物件資源類型 (storage.googleapis.com/Object) 的 IAM 限制條件。如果專案中的任何值區都設有使用這兩種資源類型之一的 IAM 限制條件,則即使後來移除限制條件,也無法將受管理的資料夾轉移至該專案中的任何值區。
  • 不支援事件導向轉移作業。
  • 不支援資訊清單轉移。

IAM 權限

Google 管理的服務帳戶需要下列 Google Cloud 身分與存取權管理 (IAM) 權限。

無論來源和目的地為何,您都可以在儲存桶層級設定權限,也可以在受管理的資料夾上設定。如要設定目標代管資料夾的權限,該資料夾必須已存在。

我們不建議在專案層級設定受管理的資料夾權限。如需更多資訊,請參閱「安全性考量」。

在來源值區或受管理的資料夾上:

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

在目標值區或受管理的資料夾上:

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

除了 Storage 移轉服務所需的標準權限外,還需要下列權限:

如要授予必要的受管理資料夾權限,請建立自訂角色,並只授予必要的權限。

建立受管理的資料夾轉移作業

如要建立包含受管理資料夾的傳輸作業,請在 transferSpec 中指定 managedFolderTransferEnabled: 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 政策,如果是在專案層級授予角色,則可修改所有資料夾的 IAM 政策。這會帶來安全性風險:具備工作編輯權限的使用者可能會利用這項功能,將權限授予惡意人士。為降低這類風險,建議您在專屬 Google Cloud 專案中隔離受管理的資料夾轉移作業。

Cloud Logging

Cloud Logging 會記錄受管理資料夾的動作。詳情請參閱「Storage 移轉服務的 Cloud Logging」。

疑難排解

如需建立及管理受管理資料夾的相關說明,請參閱「疑難排解」頁面。