Accesso uniforme a livello di bucket

Configurazione

Questa pagina illustra l'accesso uniforme a livello di bucket, che ti consente di controllare in modo uniforme l'accesso alle tue risorse Cloud Storage. Quando abiliti l'accesso uniforme a livello di bucket su un bucket, gli elenchi di controllo di accesso (ACL) vengono disabilitati e solo le autorizzazioni Identity and Access Management (IAM) a livello di bucket concedono l'accesso a quel bucket e agli oggetti che contiene. Puoi revocare tutto l'accesso concesso dagli ACL degli oggetti e la possibilità di amministrare le autorizzazioni utilizzando gli ACL dei bucket.

Panoramica

Cloud Storage offre due sistemi per concedere agli utenti l'autorizzazione ad accedere ai bucket e agli oggetti: IAM ed Elenchi di controllo dell'accesso (ACL). Questi sistemi agiscono in parallelo: per consentire a un utente di accedere a una risorsa Cloud Storage, solo uno dei sistemi deve concedere l'autorizzazione all'utente. IAM viene utilizzato in Google Cloud e ti consente di concedere una vasta gamma 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 al singolo oggetto.

Per supportare un sistema di autorizzazioni uniforme, Cloud Storage dispone di un accesso uniforme a livello di bucket. L'uso di questa funzionalità in un bucket disabilita gli ACL per tutte le risorse Cloud Storage nel bucket; l'accesso alle risorse Cloud Storage viene quindi concesso esclusivamente tramite IAM. Non è possibile disabilitare l'accesso uniforme a livello di bucket dopo che è stato attivo in un bucket per 90 giorni consecutivi.

Dovresti usare l'accesso uniforme a livello di bucket?

In genere, è consigliabile utilizzare l'accesso uniforme a livello di bucket, perché unifica e semplifica la modalità di concessione dell'accesso alle risorse Cloud Storage.

L'accesso uniforme a livello di bucket ti consente inoltre di utilizzare altre funzionalità di sicurezza di Google Cloud come la condivisione limitata per i domini, la federazione delle identità per la forza lavoro e le condizioni IAM.

Ti consigliamo di non utilizzare l'accesso uniforme a livello di bucket, ma mantenere invece 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 dell'oggetto, ma meno accesso agli altri oggetti nel tuo bucket.

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

Comportamento quando l'opzione è abilitata

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

Una volta abilitato, un bucket si comporta come segue:

  • Le richieste di impostazione, lettura o modifica degli ACL di bucket e oggetti non vanno a buon fine e generano 400 Bad Request errori.

  • Le richieste API JSON per una proiezione completa di metadati di bucket o oggetti includono un elenco ACL vuoto nella risposta.

  • La proprietà individuale degli oggetti non esiste più; l'accesso concesso da tale proprietà viene revocato e le richieste per i 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, questo bucket riceve ruoli IAM aggiuntivi.

    • Questo comportamento mantiene l'autorizzazione che gli oggetti avrebbero ereditato dall'ACL degli oggetti predefiniti standard di un bucket.

    • Se abiliti l'accesso uniforme a livello di bucket in un bucket esistente, devi applicare manualmente questi ruoli. Se in precedenza hai modificato l'ACL degli oggetti predefiniti del bucket, probabilmente vorrai applicare un insieme diverso di ruoli IAM.

Comportamento se ripristinato

Per supportare la possibilità di disabilitare l'accesso uniforme a livello di bucket e ripristinare l'utilizzo degli ACL, Cloud Storage salva gli ACL esistenti. Se disattivi l'accesso uniforme a livello di bucket:

  • Gli oggetti recuperano gli ACL salvati.

  • Tutti gli oggetti aggiunti al bucket dopo l'abilitazione dell'accesso uniforme a livello di bucket ricevono ACL in base agli ACL degli oggetti predefiniti utilizzati dal bucket.

Considerazioni per la migrazione di un bucket esistente

Quando abiliti l'accesso uniforme a livello di bucket su un bucket esistente, devi assicurarti che venga eseguita la migrazione delle autorizzazioni a IAM degli utenti e dei servizi che in precedenza facevano affidamento su ACL per l'accesso. Questa sezione illustra alcuni passaggi da seguire per eseguire la migrazione di un bucket per ottenere un accesso uniforme a livello di bucket. Tieni presente che, poiché gli ACL e IAM sono sincronizzati per le autorizzazioni dei bucket, le tue considerazioni si concentrano specificamente sull'accesso agli oggetti all'interno del bucket e non sull'accesso al bucket.

Valuta se un'autorizzazione IAM a livello di bucket sovraespone i dati

Prima di assegnare gli equivalenti IAM ai tuoi 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 un oggetto all'altro.

Se vuoi applicare un accesso ad alcuni oggetti e 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 degli oggetti

Quando esegui la migrazione all'accesso uniforme a livello di bucket, devi controllare se gli oggetti nel bucket sono accessibili tramite gli ACL applicati. Per verificare, Cloud Monitoring dispone di una metrica che monitora l'utilizzo dell'ACL. Se questa metrica indica che gli utenti o i servizi si basano su ACL per l'accesso ai tuoi oggetti, devi assegnare equivalente IAM al bucket prima di abilitare l'accesso uniforme a livello di bucket. Per istruzioni su come controllare l'utilizzo dell'ACL in Monitoring, consulta Verificare l'utilizzo degli ACL.

Utilizza questa metrica per determinare se consentire l'accesso uniforme a livello di bucket interromperebbe il tuo flusso di lavoro:

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

Un'operazione ACL importante da esaminare è OBJECT_ACCESS_REQUIRED_OBJECT_ACL:

  • Se questo numero è pari a zero, nelle ultime 6 settimane non sono stati richiesti ACL a livello di oggetto per accedere agli oggetti. I criteri IAM coprono le autorizzazioni necessarie a livello di bucket o di progetto.

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

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

Controlla l'ACL dell'oggetto predefinito del bucket

Ai bucket senza accesso uniforme a livello di bucket è associato un ACL dell'oggetto predefinito. Ai nuovi oggetti aggiunti a questi bucket viene applicato questo ACL dell'oggetto predefinito, a meno che non venga fornito esplicitamente un ACL al momento dell'aggiunta dell'oggetto al bucket.

Ad esempio, i bucket in genere utilizzano l'ACL predefinito di projectPrivate come ACL predefinito degli oggetti. projectPrivate concede l'autorizzazione dell'oggetto READER ai visualizzatori del progetto associati al bucket e l'autorizzazione dell'oggetto OWNER agli editor e ai proprietari del progetto associati al bucket.

Prima di abilitare l'accesso uniforme a livello di bucket, controlla l'ACL predefinito degli oggetti del bucket. Valuta se vuoi concedere le autorizzazioni associate all'ACL dell'oggetto predefinito dopo aver abilitato l'accesso uniforme a livello di bucket. In tal caso, assegna gli equivalenti IAM al bucket.

Assegna equivalenti IAM agli ACL degli oggetti

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

Autorizzazione ACL degli oggetti Ruolo IAM equivalente
READER Lettore oggetti legacy di Storage (roles/storage.legacyObjectReader)
OWNER Proprietario oggetti legacy Storage (roles/storage.legacyObjectOwner)

Considerazioni sull'utilizzo delle condizioni IAM

Per evitare conflitti tra i criteri IAM di un bucket e gli ACL degli oggetti, è possibile utilizzare le condizioni IAM solo nei bucket in cui è abilitato l'accesso uniforme a livello di bucket. Ciò significa che:

Passaggi successivi