Trasferisci le cartelle gestite di Cloud Storage

Le cartelle gestite di Cloud Storage forniscono un controllo dell'accesso granulare agli oggetti nei bucket Cloud Storage. Le autorizzazioni possono essere impostate a livello di cartella all'interno dei bucket che usano l'accesso universale a livello di bucket. Quando trasferisci oggetti tra i bucket Cloud Storage con Storage Transfer Service, queste autorizzazioni delle cartelle gestite possono essere conservate.

Limitazioni

Ai trasferimenti delle cartelle gestite si applicano le seguenti limitazioni:

  • Per creare il trasferimento, devi utilizzare l'API REST.
  • Il bucket di destinazione deve utilizzare un accesso uniforme a livello di bucket.
  • I trasferimenti di cartelle gestite non supportano le opzioni deleteObjectsUniqueInSink o deleteObjectsFromSourceAfterTransfer.
  • Non devono essere presenti condizioni IAM nel bucket di destinazione o nel relativo progetto che utilizzano il tipo di risorsa bucket (storage.googleapis.com/Bucket) o il tipo di risorsa oggetto (storage.googleapis.com/Object). Se un bucket all'interno di un progetto ha una condizione IAM che utilizza uno di questi tipi di risorse, le cartelle gestite non possono essere trasferite a nessuno dei bucket all'interno di quel progetto, anche se la condizione viene rimossa in un secondo momento.
  • I trasferimenti basati su eventi non sono supportati.
  • I trasferimenti dei manifest non sono supportati.
  • Le operazioni relative alle cartelle gestite non vengono registrate da Cloud Logging. Registrazione di di Compute Engine sono supportati.

Autorizzazioni IAM

Le seguenti autorizzazioni IAM (Gestione di identità e accessi) di Google Cloud sono richieste dall'account di servizio gestito da Google.

Nel bucket di origine:

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

Nel bucket di destinazione:

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

Queste si aggiungono alle autorizzazioni standard richieste da Storage Transfer Service:

Per concedere le autorizzazioni necessarie per le cartelle gestite, creare un ruolo personalizzato usando solo le autorizzazioni necessarie e assegnarlo all'account di servizio gestito da Google, a livello di bucket (consigliato) o di progetto. Per ulteriori informazioni, consulta la sezione Considerazioni sulla sicurezza.

Creare un trasferimento di cartelle gestite

Per creare un trasferimento contenente una cartella gestita, specifica managedFolderTransferEnabled: true in 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"
}

Vedi Creare trasferimenti per maggiori dettagli sulla creazione di un trasferimento utilizzando l'API REST oppure fai riferimento alle Riferimento transferJobs.create.

Considerazioni sulla sicurezza

La concessione delle autorizzazioni per le cartelle gestite a un account di servizio gestito da Google consente all'account di modificare i criteri IAM nelle cartelle di destinazione o in tutte le cartelle se il ruolo viene concesso a livello di progetto. Ciò rappresenta un rischio per la sicurezza: un utente con autorizzazioni di modifica del job potrebbe sfruttare questa situazione per concedere privilegi a un attore malintenzionato. Per ridurre questo rischio, valuta la possibilità di isolare la cartella gestita all'interno di un progetto Google Cloud dedicato.

Risoluzione dei problemi

Per informazioni sulla creazione e la gestione delle cartelle gestite, consulta Risoluzione dei problemi.