Accesso uniforme a livello di bucket

Vai agli esempi

Questa pagina descrive l'accesso uniforme a livello di bucket, che consente di controllare in modo uniforme l'accesso alle risorse di Cloud Storage. Quando abiliti l'accesso uniforme a livello di bucket su un bucket, gli elenchi di controllo di accesso (ACL) sono disattivati e solo le autorizzazioni Identity and Access Management (IAM) a livello di bucket consentono l'accesso al bucket e agli oggetti che contiene. Revoca tutti gli accessi concessi dagli ACL dell'oggetto e la possibilità di amministrare le autorizzazioni utilizzando gli ACL del bucket.

Panoramica

Cloud Storage offre due sistemi per concedere agli utenti l'autorizzazione ad accedere a bucket e oggetti: IAM e Access Control List (ACL). Questi sistemi agiscono in parallelo: affinché un utente possa accedere a una risorsa di Cloud Storage, solo uno dei sistemi deve concedere l'autorizzazione. IAM è utilizzato in tutto Google Cloud e consente di concedere una serie di autorizzazioni a livello di bucket e di progetto. Gli ACL vengono utilizzati solo da Cloud Storage e hanno opzioni di autorizzazione limitate, ma consentono di concedere le autorizzazioni in base ai singoli oggetti.

Per supportare un sistema di autorizzazioni uniforme, Cloud Storage ha un accesso uniforme a livello di bucket. L'utilizzo di questa funzionalità su un bucket disabilita gli ACL per tutte le risorse di Cloud Storage del bucket. Quindi, l'accesso alle risorse di Cloud Storage viene concesso esclusivamente tramite IAM. Dopo aver abilitato l'accesso uniforme a livello di bucket, puoi invertire la tua decisione per 90 giorni.

Devi utilizzare l'accesso uniforme a livello di bucket?

In genere, si consiglia di utilizzare un accesso uniforme a livello di bucket, poiché unifica e semplifica le modalità di concessione dell'accesso alle risorse Cloud Storage.

L'accesso uniforme a livello di bucket consente inoltre di utilizzare altre funzionalità di sicurezza di Google Cloud come la condivisione limitata dei domini e le condizioni IAM.

Ti consigliamo di non utilizzare un accesso uniforme a livello di bucket, ma di mantenere ACL granulari se:

  • Vuoi controllare l'accesso a oggetti specifici in un bucket tramite ACL legacy.

  • Vuoi che l'utente che ha caricato un oggetto abbia il controllo completo su di esso, ma meno l'accesso ad altri oggetti nel tuo bucket.

  • Puoi utilizzare l'API XML per visualizzare o impostare le autorizzazioni per i bucket.

Comportamento quando attivato

Puoi abilitare l'accesso uniforme a livello di bucket quando crei un nuovo bucket o quando attivi esplicitamente l'accesso uniforme a livello di bucket in un bucket esistente.

Una volta abilitato, un bucket ha il seguente comportamento:

  • Richieste per impostare, leggere o modificare ACL bucket e oggetti non riescono con 400 Bad Request errori.

  • Le richieste API JSON per la proiezione completa dei metadati di bucket o oggetti includono un elenco ACL vuoto come parte della risposta.

  • I comandi gsutil cp -p, mv -p e rsync -p non vengono eseguiti (sia quando il bucket di accesso a livello di bucket uniforme è l'origine sia quando è la destinazione). Anche i comandi gsutil acl e defacl non hanno esito positivo.

  • La singola proprietà dell'oggetto non esiste più; l'accesso concesso da tale proprietà viene revocato e le richieste di metadati di bucket e oggetti non contengono più un campo owner.

  • Al momento della creazione, i bucket ricevono ruoli IAM specializzati. Se abiliti l'accesso uniforme a livello di bucket durante la creazione di un nuovo bucket, quest'ultimo riceverà ruoli IAM aggiuntivi come indicato nella tabella collegata.

    • Questo comportamento mantiene l'autorizzazione che gli oggetti ereditati dagli ACL dell'oggetto predefiniti nel bucket.

    • Se abiliti l'accesso uniforme a livello di bucket a un bucket esistente, devi applicare tali ruoli manualmente; ti consigliamo di applicare un set di ruoli diverso se hai modificato gli ACL dell'oggetto predefiniti del bucket.

Comportamento se ripristinato

Per supportare la possibilità di disattivare l'accesso uniforme a livello di bucket e ripristinare l'utilizzo degli ACL, Cloud Storage salva gli ACL esistenti per 90 giorni. Se disattivi l'accesso uniforme a livello di bucket durante questo periodo:

  • Gli oggetti recuperano i relativi ACL salvati.

  • Per tutti gli oggetti aggiunti al bucket dopo l'accesso uniforme a livello di bucket, sono stati attivati gli ACL in base agli ACL oggetti predefiniti utilizzati dal bucket.

Considerazioni sulla migrazione di un bucket esistente

Quando abiliti l'accesso uniforme a livello di bucket a un bucket esistente, devi assicurarti che gli utenti e i servizi che in precedenza si siano basati sugli ACL per l'accesso siano sottoposti a migrazione in IAM. Questa sezione illustra alcuni passaggi da seguire quando esegui la migrazione di un bucket a un accesso uniforme a livello di bucket. Tieni presente che, poiché gli ACL e IAM sono sincronizzati per le autorizzazioni dei bucket, le considerazioni riguardano specificamente l'accesso agli oggetti all'interno del tuo bucket e non l'accesso al bucket.

Valutare se un'autorizzazione IAM a livello di bucket espone eccessivamente i dati

Prima di assegnare equivalenti IAM agli ACL, considera quanto segue:

  • Un'autorizzazione IAM applicata a livello di bucket si applica a tutti gli oggetti nel bucket, mentre gli ACL degli oggetti possono variare da oggetto a oggetto.

Se vuoi applicare l'accesso ad alcuni oggetti ma non ad altri, devi raggruppare gli oggetti in bucket separati. Ogni raggruppamento deve contenere gli oggetti che hanno le stesse autorizzazioni.

Controlla l'utilizzo dell'ACL dell'oggetto

Quando esegui la migrazione all'accesso uniforme a livello di bucket, devi verificare se è possibile accedere agli oggetti nel bucket tramite gli ACL applicati. Per verificare, Cloud Monitoring dispone di una metrica che monitora l'utilizzo degli ACL. Se questa metrica indica che utenti o servizi si basano su ACL per l'accesso ai tuoi oggetti, devi assegnare equivalenti IAM al bucket prima di abilitare l'accesso uniforme a livello di bucket. Per una guida al controllo dell'utilizzo degli ACL in Monitoring, consulta l'articolo Verificare l'utilizzo degli ACL.

Utilizza questa metrica per determinare se l'attivazione uniforme dell'accesso a livello di bucket interrompe il flusso di lavoro:

Metrica Descrizione
storage.googleapis.com/authz/acl_operations_count Il numero di operazioni ACL che saranno disabilitate una volta abilitato l'accesso uniforme a livello di bucket, suddiviso per tipo di operazione ACL e bucket.

Un'operazione ACL importante da esaminare è OBJECT_ACCESS_REQUIRED_OBJECT_ACL:

  • Se questo numero è 0, non saranno necessari ACL a livello di oggetto per accedere agli oggetti nelle ultime 6 settimane. I criteri IAM coprono le autorizzazioni necessarie a livello di bucket o di progetto.

  • Se il numero è maggiore di zero, nelle ultime 6 settimane sono state effettuate richieste di accesso agli oggetti che hanno richiesto le autorizzazioni ACL dell'oggetto. Devi assegnare criteri IAM equivalenti prima di attivare l'accesso uniforme a livello di bucket.

Per ulteriori informazioni sulle metriche di monitoraggio, consulta Metriche, serie temporali e risorse.

Controlla l'ACL dell'oggetto predefinito del bucket

A tutti i bucket è associato un ACL dell'oggetto predefinito. Ai nuovi oggetti aggiunti a un bucket viene applicato questo ACL predefinito, a meno che non venga fornito esplicitamente un ACL al momento dell'aggiunta dell'oggetto al bucket.

Prima di attivare l'accesso uniforme a livello di bucket, controlla l'ACL dell'oggetto predefinito del tuo bucket. Valuta se vuoi concedere le autorizzazioni associate all'oggetto ACL predefinito dopo aver abilitato l'accesso uniforme a livello di bucket. In questo caso, assegna equivalente IAM al bucket.

Assegna equivalenti IAM agli ACL degli oggetti

Gli ACL degli oggetti possono concedere l'accesso attualmente non eseguito da IAM. Per assicurarti che gli utenti esistenti non perdano l'accesso agli oggetti quando attivi l'accesso a livello di bucket uniforme, utilizza la tabella seguente e assegna agli utenti interessati i ruoli IAM appropriati.

Autorizzazione ACL dell'oggetto Ruolo IAM equivalente
READER Lettore oggetti legacy di archiviazione (roles/storage.legacyObjectReader)
OWNER Proprietario oggetti legacy di archiviazione (roles/storage.legacyObjectOwner)

Considerazioni sull'utilizzo di condizioni IAM

Per evitare conflitti tra i criteri IAM e gli ACL dell'oggetto di un bucket, è possibile utilizzare IAM IAM solo per i bucket con accesso uniforme a livello di bucket abilitato. Ciò significa che:

  • Per impostare condizioni IAM su un bucket, devi prima attivare l'accesso uniforme a livello di bucket nel bucket.

  • Per disabilitare l'accesso uniforme a livello di bucket a un bucket, devi prima rimuovere tutte le condizioni IAM dal criterio del bucket. Per informazioni su come visualizzare e rimuovere le condizioni da un criterio del bucket, vedi Utilizzare le condizioni IAM sul bucket. Tieni presente che l'accesso uniforme a livello di bucket non può essere disabilitato se è attivo su un bucket per 90 giorni consecutivi.

Passaggi successivi