Les dossiers gérés Cloud Storage permettent de contrôler précisément l'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 l'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 :
- 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
deleteObjectsUniqueInSinknideleteObjectsFromSourceAfterTransfer. - Il ne doit pas y avoir de conditions IAM sur le bucket de destination ou son projet qui utilisent le type de ressource bucket (
storage.googleapis.com/Bucket) ou le type de ressource object (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 pas être transférés vers l'un des buckets de ce projet, même si la condition est supprimée ultérieurement. - Les transferts basés sur des événements ne sont pas acceptés.
- Les transferts de fichiers manifestes ne sont pas acceptés.
Autorisations IAM
Le compte de service géré par Google nécessite les autorisations Google Cloud Identity and Access Management (IAM) suivantes.
Pour la source et la destination, les autorisations peuvent être définies au niveau du bucket ou au niveau du dossier géré. Pour définir des autorisations sur un dossier géré de destination, ce dossier doit déjà exister.
Nous vous déconseillons de définir des autorisations pour les dossiers gérés au niveau du projet. Pour en savoir plus, consultez Considérations relatives à la sécurité.
Dans le bucket ou le dossier géré source :
storage.managedFolders.getIamPolicystorage.managedFolders.liststorage.managedFolders.get
Dans le bucket ou le dossier géré de destination :
storage.managedFolders.setIamPolicystorage.managedFolders.liststorage.managedFolders.create
Elles s'ajoutent aux autorisations standards requises par le service de transfert de stockage :
Pour accorder les autorisations requises pour les dossiers gérés, créez un rôle personnalisé avec uniquement les autorisations requises.
Créer un transfert de dossier géré
Pour créer un transfert contenant un dossier géré, spécifiez managedFolderTransferEnabled: true dans votre transferSpec. Vous pouvez éventuellement spécifier une valeur path pour ne transférer qu'un dossier géré spécifique.
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"
}
Si les autorisations de transfert géré appropriées ne sont pas définies au niveau de la source et de la destination, le transfert échoue.
Pour savoir comment créer un transfert à l'aide de l'API REST, consultez Créer des transferts ou la documentation de référence sur transferJobs.create.
Points à noter concernant la sécurité
Accorder des 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 accordé au niveau du projet. Cela présente un risque de sécurité : un utilisateur disposant des autorisations de modification des jobs pourrait exploiter cette fonctionnalité 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é.
Cloud Logging
Les actions sur les dossiers gérés sont consignées par Cloud Logging. Pour en savoir plus, consultez Cloud Logging pour le service de transfert de stockage.
Dépannage
Pour obtenir de l'aide sur la création et la gestion des dossiers gérés, consultez la page Dépannage.