Cloud Storage 代管資料夾可提供 Cloud Storage 值區中物件的精細存取權控管。如果值區使用通用值區層級存取權,您可以在值區內的資料夾層級設定權限。使用 Storage 移轉服務在 Cloud Storage 值區之間移轉物件時,可以保留這些受管理資料夾權限。
限制
移轉代管資料夾時,請注意以下限制:
- 目的地 bucket 必須使用統一 bucket 層級存取權。
- 受管理資料夾轉移作業不支援
deleteObjectsUniqueInSink或deleteObjectsFromSourceAfterTransfer選項。 - 目的地 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.getIamPolicystorage.managedFolders.liststorage.managedFolders.get
在目標 bucket 或受管理資料夾中:
storage.managedFolders.setIamPolicystorage.managedFolders.liststorage.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」。
疑難排解
如需建立及管理受管理資料夾的相關說明,請參閱「疑難排解」頁面。