Les dossiers gérés par Cloud Storage permettent un contrôle précis des accès aux objets dans les buckets Cloud Storage. Les autorisations peuvent être définies au niveau d'un dossier dans les buckets qui utilisent un accès universel au niveau du bucket. Lorsque vous transférez des objets entre des buckets Cloud Storage avec le service de transfert de stockage, ces autorisations de dossier géré peuvent être conservées.
Limites
Les limites suivantes s'appliquent aux transferts de dossiers gérés:
- Vous devez utiliser l'API REST pour créer le transfert.
- Le bucket de destination doit utiliser l'accès uniforme au niveau du bucket.
- Les transferts de dossiers gérés ne sont pas compatibles avec les options
deleteObjectsUniqueInSink
etdeleteObjectsFromSourceAfterTransfer
. - Il ne doit pas y avoir de conditions IAM sur le bucket de destination ou dans son projet utilisant le type de ressource bucket (
storage.googleapis.com/Bucket
) ou le type de ressource objet (storage.googleapis.com/Object
). Si un bucket d'un projet comporte une condition IAM qui utilise l'un de ces types de ressources, les dossiers gérés ne peuvent être transférés vers aucun des buckets de ce projet, même si la condition est supprimée par la suite. - Les transferts basés sur des événements ne sont pas acceptés.
- Les transferts de fichiers manifestes ne sont pas acceptés.
- Les opérations des dossiers gérés ne sont pas consignées par Cloud Logging. La journalisation des objets est acceptée.
Autorisations IAM
Les autorisations Google Cloud Identity and Access Management (IAM) suivantes sont requises par le compte de service géré par Google.
Sur le bucket source:
storage.managedFolders.getIamPolicy
storage.managedFolders.list
storage.managedFolders.get
Sur le bucket de destination:
storage.managedFolders.setIamPolicy
storage.managedFolders.list
storage.managedFolders.create
Ces autorisations s'ajoutent aux autorisations standards requises par le service de transfert de stockage:
Pour accorder les autorisations requises sur les dossiers gérés, créez un rôle personnalisé avec uniquement les autorisations requises et attribuez-le au compte de service géré par Google, au niveau du bucket (recommandé) ou au niveau du projet. Pour en savoir plus, consultez les considérations de sécurité.
Créer un transfert de dossier géré
Pour créer un transfert contenant un dossier géré, spécifiez managedFolderTransferEnabled: true
dans votre fichier transferSpec
:
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"
}
Consultez la section Créer des transferts pour savoir comment créer un transfert à l'aide de l'API REST, ou consultez la documentation de référence sur transferJobs.create
.
Points à noter concernant la sécurité
L'attribution d'autorisations pour les dossiers gérés à un compte de service géré par Google permet à ce compte de modifier les stratégies IAM sur les dossiers de destination ou sur tous les dossiers si le rôle est attribué au niveau du projet. Cela présente un risque de sécurité : un utilisateur disposant des autorisations de modification de tâche pourrait l'exploiter pour accorder des droits à un acteur malveillant. Pour atténuer ce risque, envisagez d'isoler les transferts de dossiers gérés dans un projet Google Cloud dédié.
Dépannage
Pour obtenir de l'aide sur la création et la gestion des dossiers gérés, consultez la page Dépannage.