Accesso uniforme a livello di bucket

Configurazione

Questa pagina descrive l'accesso uniforme a livello di bucket, che consente di controllare in modo uniforme l'accesso alle risorse Cloud Storage. Quando abiliti l'accesso uniforme a livello di bucket su un bucket, gli elenchi di controllo dell'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. Revoca 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: affinché un utente possa accedere a una risorsa Cloud Storage, è necessario che solo uno dei sistemi conceda l'autorizzazione all'utente. IAM viene utilizzato ovunque Google Cloud e consente di concedere una serie di autorizzazioni a livello di bucket e progetto. Gli ACL vengono utilizzati solo da Cloud Storage e hanno opzioni di autorizzazione limitate, ma consentono di concedere autorizzazioni per ogni oggetto.

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 Cloud Storage nel bucket; l'accesso alle risorse Cloud Storage viene quindi concesso esclusivamente tramite IAM. L'accesso uniforme a livello di bucket non può essere disabilitato dopo essere stato attivo su un bucket per 90 giorni consecutivi.

Devi utilizzare l'accesso uniforme a livello di bucket?

In genere, è consigliabile utilizzare l'accesso uniforme a livello di bucket:

Non devi utilizzare l'accesso uniforme a livello di bucket se vuoi utilizzare il sistema ACL per il tuo bucket.

Comportamento quando è abilitato

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

Una volta abilitato, un bucket ha il seguente comportamento:

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

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

  • La proprietà dei singoli oggetti 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, quel bucket riceve ruoli IAM aggiuntivi.

    • Questo comportamento mantiene le autorizzazioni che gli oggetti avrebbero ereditato dall'ACL degli oggetti predefinito standard per un bucket.

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

Comportamento se viene 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 disabiliti l'accesso uniforme a livello di bucket:

  • Gli oggetti riacquistano gli ACL salvati.

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

Requisiti per la disabilitazione dell'accesso uniforme a livello di bucket

Per disabilitare l'accesso uniforme a livello di bucket, devono essere soddisfatte le seguenti condizioni:

Considerazioni relative alla migrazione di un bucket esistente

Quando abiliti l'accesso uniforme a livello di bucket su un bucket esistente, devi assicurarti che le autorizzazioni di utenti e servizi che in precedenza si basavano sugli ACL per l'accesso siano migrate a IAM. Questa sezione descrive alcuni passaggi da eseguire durante la migrazione di un bucket all'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 in modo specifico sull'accesso agli oggetti all'interno del bucket e non sull'accesso al bucket.

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

Prima di assegnare gli equivalenti IAM agli ACL, tieni presente 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 con le stesse autorizzazioni.

Controlla l'utilizzo degli ACL degli oggetti

Quando esegui la migrazione all'accesso uniforme a livello di bucket, devi verificare se gli oggetti nel bucket sono accessibili tramite gli ACL applicati. Per farlo, Cloud Monitoring ha una metrica che monitora l'utilizzo degli ACL. Se questa metrica indica che utenti o servizi si basano sugli ACL per accedere agli oggetti, devi assegnare gli 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 Controllare l'utilizzo degli ACL.

Utilizza questa metrica per determinare se l'abilitazione dell'accesso uniforme a livello di bucket interromperebbe il 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 è zero, negli ultimi 24 mesi non sono stati necessari ACL a livello di oggetto per accedere agli oggetti. Le policy IAM coprono le autorizzazioni necessarie a livello di bucket o progetto.

  • Se questo numero è maggiore di zero, negli ultimi 24 mesi sono state effettuate richieste di accesso agli oggetti che richiedevano autorizzazioni ACL degli oggetti. Prima di abilitare l'accesso uniforme a livello di bucket, devi assegnare le policy IAM equivalenti.

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

Controlla l'ACL degli oggetti predefinito del bucket

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

Ad esempio, i bucket utilizzano comunemente l'ACL predefinito projectPrivate come ACL degli oggetti predefinito. projectPrivate concede l'autorizzazione READER dell'oggetto a i 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 degli oggetti predefinito che il bucket ha. Valuta se vuoi concedere le autorizzazioni associate all'ACL degli oggetti predefinito dopo aver abilitato l'accesso uniforme a livello di bucket. In caso affermativo, assegna equivalenti IAM al bucket.

Assegna gli equivalenti IAM agli ACL degli oggetti

Gli ACL degli oggetti possono concedere l'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 tabella seguente e assegna agli utenti interessati i ruoli IAM appropriati.

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

Considerazioni sull'utilizzo delle condizioni IAM

Per evitare conflitti tra le policy IAM di un bucket e gli ACL degli oggetti, le condizioni IAM possono essere utilizzate solo sui bucket con l'accesso uniforme a livello di bucket abilitato. Ciò significa che:

Passaggi successivi