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.- Sono incluse le richieste API JSON che utilizzano qualsiasi metodo
BucketAccessControls
,DefaultObjectAccessControls
oObjectAccessControls
.
- Sono incluse le richieste API JSON che utilizzano qualsiasi metodo
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:
Per impostare le condizioni IAM su un bucket, devi prima abilitare l'accesso uniforme a livello di bucket sul bucket.
Prima di poter disabilitare l'accesso uniforme a livello di bucket in un bucket, devi prima rimuovere tutte le condizioni IAM dal criterio del bucket. Per informazioni su come visualizzare e rimuovere le condizioni dai criteri di un bucket, consulta Utilizzo delle condizioni IAM sul bucket.
Passaggi successivi
- Scopri come utilizzare l'accesso uniforme a livello di bucket.
- Scopri di più sul vincolo di accesso uniforme a livello di bucket che puoi impostare all'interno dell'organizzazione, della cartella o del progetto Google Cloud.
- Imposta le autorizzazioni IAM su bucket e progetti.