移轉 Cloud Storage 代管資料夾

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

限制

移轉代管資料夾時,請注意以下限制:

  • 目的地 bucket 必須使用統一 bucket 層級存取權
  • 受管理資料夾轉移作業不支援 deleteObjectsUniqueInSinkdeleteObjectsFromSourceAfterTransfer 選項。
  • 目的地 bucket 或其專案不得有使用 bucket 資源類型 (storage.googleapis.com/Bucket) 或 object 資源類型 (storage.googleapis.com/Object) 的 IAM 條件。如果專案中的任何 bucket 具有使用上述任一資源類型的 IAM 條件,即使之後移除該條件,受管理資料夾也無法移轉至該專案中的任何 bucket。
  • 系統不支援事件導向移轉作業。
  • 不支援資訊清單轉移。

IAM 權限

Google 代管的服務帳戶需要下列 Google Cloud Identity and Access Management (IAM) 權限。

無論是來源或目的地,權限都可以在 bucket 層級設定,也可以在代管資料夾上設定。如要設定目標代管資料夾的權限,該資料夾必須已存在。

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

在來源 bucket 或受管理資料夾中:

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

在目標 bucket 或受管理資料夾中:

  • 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」。

疑難排解

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