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 si trasferiscono oggetti tra bucket Cloud Storage con Storage Transfer Service, è possibile conservare queste autorizzazioni delle cartelle gestite.

Limitazioni

Ai trasferimenti delle cartelle gestite si applicano le seguenti limitazioni:

  • Devi utilizzare l'API REST per creare il trasferimento.
  • Il bucket di destinazione deve utilizzare l'accesso uniforme a livello di bucket.
  • I trasferimenti di cartelle gestite non supportano le opzioni deleteObjectsUniqueInSink o deleteObjectsFromSourceAfterTransfer.
  • Nel bucket di destinazione o nel progetto che non utilizza il tipo di risorsa bucket (storage.googleapis.com/Bucket) o il tipo di risorsa oggetto (storage.googleapis.com/Object) non devono essere presenti condizioni IAM. 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 in nessuno dei bucket all'interno del progetto, anche se la condizione viene rimossa in un secondo momento.
  • I trasferimenti basati su eventi non sono supportati.
  • I trasferimenti di manifest non sono supportati.
  • Le operazioni delle cartelle gestite non vengono registrate da Cloud Logging. Il logging degli oggetti è supportato.

Autorizzazioni IAM

Le seguenti autorizzazioni di Google Cloud Identity and Access Management (IAM) 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

Si aggiungono alle autorizzazioni standard richieste da Storage Transfer Service:

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

Crea un trasferimento di cartelle gestito

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"
}

Per maggiori dettagli sulla creazione di un trasferimento utilizzando l'API REST, consulta Creazione di trasferimenti oppure consulta la documentazione di 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 sulle cartelle di destinazione o su 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 dei job potrebbe sfruttare questa possibilità per concedere i privilegi a un utente malintenzionato. Per ridurre questo rischio, valuta la possibilità di isolare i trasferimenti di cartelle gestite all'interno di un progetto Google Cloud dedicato.

Risoluzione dei problemi

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