Questa pagina illustra l'impostazione del bucket per la prevenzione dell'accesso pubblico e il relativo vincolo del criterio dell'organizzazione per la prevenzione dell'accesso pubblico. L'utilizzo dell'impostazione o del vincolo limita le entità, ad esempio gli utenti anonimi su internet, a cui è possibile concedere l'accesso ai tuoi dati. Per una panoramica delle opzioni di controllo dell'accesso dell'accesso, consulta Panoramica del controllo dell'accesso.
Panoramica
La prevenzione dell'accesso pubblico protegge i bucket e gli oggetti Cloud Storage dall'esposizione accidentale al pubblico. Quando applichi la prevenzione dell'accesso pubblico, nessuno può rendere pubblici i dati nei bucket applicabili tramite criteri IAM o ACL. Ci sono due modi per applicare la prevenzione dell'accesso pubblico:
Puoi applicare la prevenzione dell'accesso pubblico a singoli bucket.
Se il bucket è contenuto all'interno di un'organizzazione, puoi applicare la prevenzione dell'accesso pubblico utilizzando il vincolo del criterio dell'organizzazione
storage.publicAccessPrevention
a livello di progetto, cartella o organizzazione.
Dovresti usare la prevenzione dell'accesso pubblico?
Utilizza la prevenzione dell'accesso pubblico se sai che i tuoi dati non devono mai essere esposti sulla rete internet pubblica. Per garantire la massima sicurezza alle tue risorse, applica la prevenzione dell'accesso pubblico al livello più alto possibile della tua organizzazione.
Non dovresti utilizzare la prevenzione dell'accesso pubblico se hai bisogno di mantenere pubblico il bucket per casi d'uso come l'hosting di siti web statici. Per fare eccezioni per i bucket nelle organizzazioni che applicano comunque la prevenzione dell'accesso pubblico, disabilita la prevenzione dell'accesso pubblico nel progetto specifico che contiene il bucket.
Comportamento quando applicato
Le risorse soggette alla prevenzione dell'accesso pubblico si comportano come segue:
Le richieste ai bucket e agli oggetti autorizzati utilizzando
allUsers
eallAuthenticatedUsers
non vanno a buon fine con un codice di stato HTTP401
o403
.I criteri IAM e gli ACL esistenti che concedono l'accesso a
allUsers
eallAuthenticatedUsers
rimangono attivi, ma vengono sostituiti dalla prevenzione dell'accesso pubblico.Le richieste per creare bucket o oggetti con
allUsers
eallAuthenticatedUsers
nei criteri IAM o negli ACL non sono andate a buon fine, con la seguente eccezione:- Se un bucket ha un ACL degli oggetti predefinito contenente
allUsers
, le richieste di creazione di oggetti nel bucket vengono completate. Gli ACL per questi oggetti contengonoallUsers
, maallUsers
è sostituito dalla prevenzione dell'accesso pubblico.
- Se un bucket ha un ACL degli oggetti predefinito contenente
Le richieste per aggiungere
allUsers
eallAuthenticatedUsers
a un criterio IAM o ACL non vanno a buon fine con412 Precondition Failed
.
Ereditarietà
Anche se in un bucket la prevenzione dell'accesso pubblico non è stata applicata in modo esplicito nelle sue impostazioni, potrebbe comunque ereditare la prevenzione dell'accesso pubblico, che si verifica se il vincolo del criterio dell'organizzazione storage.publicAccessPrevention
è impostato sul progetto, sulla cartella o sull'organizzazione in cui si trova il bucket. Per questo motivo, lo stato del bucket può essere impostato solo su enforced
o inherited
.
Se i metadati di prevenzione dell'accesso pubblico di un bucket sono impostati su
enforced
, la prevenzione dell'accesso pubblico si applica al bucket.Se i metadati di prevenzione dell'accesso pubblico di un bucket sono impostati su
inherited
, la prevenzione dell'accesso pubblico è determinata dal vincolo del criterio dell'organizzazionestorage.publicAccessPrevention
:Se
storage.publicAccessPrevention
è impostato suTrue
per il progetto che contiene il bucket, la prevenzione dell'accesso pubblico si applica al bucket.Se
storage.publicAccessPrevention
è impostato suFalse
per il progetto che contiene il bucket, la prevenzione dell'accesso pubblico non si applica al bucket.Se
storage.publicAccessPrevention
non è impostato per il progetto che contiene il bucket, la prevenzione dell'accesso pubblico è determinata dal valorestorage.publicAccessPrevention
impostato dall'eventuale cartella contenente il progetto.Allo stesso modo, se anche la cartella contenente il bucket non imposta alcun valore per
storage.publicAccessPrevention
, la prevenzione dell'accesso pubblico è determinata dal valorestorage.publicAccessPrevention
impostato dall'organizzazione contenente il progetto.Se il criterio
storage.publicAccessPrevention
non è impostato per nessuna risorsa, la prevenzione dell'accesso pubblico non si applica al bucket.
Comportamento se disattivato
Quando la prevenzione dell'accesso pubblico non si applica più per una risorsa, si verifica quanto segue:
I criteri IAM e gli ACL esistenti che concedono l'accesso a
allUsers
eallAuthenticatedUsers
vengono applicati e rendono i dati accessibili al pubblico.Le richieste per creare criteri o ACL IAM che consentono l'accesso a
allUsers
eallAuthenticatedUsers
hanno esito positivo.Un oggetto creato in virtù della prevenzione dell'accesso pubblico senza ACL pubblici potrebbe diventare accessibile al pubblico se è stato creato in un bucket accessibile pubblicamente.
Puoi disabilitare la prevenzione dell'accesso pubblico per un progetto, una cartella o un'organizzazione in qualsiasi momento. Ai bucket con un'impostazione enforced
continua a essere applicata la prevenzione dell'accesso pubblico, anche se la disabiliti per un progetto, una cartella o un'organizzazione contenente il bucket.
Considerazioni
Quando applichi la prevenzione dell'accesso pubblico alle risorse esistenti, tutte le autorizzazioni esistenti e le nuove aggiunte di
allUsers
eallAuthenticatedUsers
vengono bloccate. Ciò può influire sui bucket nei seguenti modi:Se un'applicazione dipende da
allUsers
eallAuthenticatedUsers
per accedere ai tuoi dati o creare risorse pubbliche, l'abilitazione della prevenzione dell'accesso pubblico può interrompere l'applicazione. Per informazioni su come identificare le risorse pubbliche da cui potrebbero dipendere altre applicazioni, espandi i seguenti contenuti:Come identificare le risorse pubbliche
Prima di applicare la prevenzione dell'accesso pubblico, ti consigliamo di fare un inventario delle risorse pubbliche per assicurarti di non interrompere altri carichi di lavoro che dipendono dal fatto che i dati siano pubblici. Puoi individuare bucket, oggetti e cartelle gestite pubbliche utilizzando i seguenti metodi:
- Per identificare i carichi di lavoro che potrebbero accedere ai tuoi dati pubblici, configura i log di utilizzo, che possono fornire informazioni sulle richieste di accesso ai dati effettuate alle risorse pubbliche.
- Per determinare se un bucket potrebbe essere accessibile al pubblico, controlla i criteri IAM del bucket.
I criteri che concedono l'accesso in lettura all'entità "allUsers" o "allAuthenticatedUsers" rendono il bucket potenzialmente accessibile al pubblico. In alternativa al criterio IAM per i singoli bucket, puoi utilizzare Cloud Asset Inventory per visualizzare i criteri per tutti i bucket in un progetto, in una cartella o in un'organizzazione.
Se il bucket contiene cartelle gestite, è consigliabile anche controllare i criteri IAM delle cartelle gestite per identificare quali cartelle gestite potrebbero essere accessibili al pubblico. - Per determinare se i singoli oggetti potrebbero essere accessibili al pubblico, controlla se nell'oggetto sono presenti ACL. Gli ACL che concedono l'accesso in lettura all'entità "allUsers" o "allAuthenticatedUsers" rendono l'oggetto potenzialmente accessibile al pubblico.
Cloud Audit Logs non tiene traccia dell'accesso agli oggetti pubblici. Se i log di accesso ai dati sono abilitati quando applichi la prevenzione dell'accesso pubblico, potresti notare un aumento della generazione dei log, che viene conteggiato ai fini della quota di importazione dei log e può comportare addebiti di Cloud Audit Logs. Questo aumento potrebbe verificarsi perché l'accesso che in precedenza era pubblico e non registrato potrebbe essere associato ad autorizzazioni specifiche, che vengono registrate.
Gli URL firmati, che concedono un accesso limitato nel tempo a chiunque li utilizzi, non sono interessati dalla prevenzione dell'accesso pubblico.
I progetti non associati a un'organizzazione non possono utilizzare i criteri dell'organizzazione. I bucket all'interno di un progetto di questo tipo devono utilizzare l'impostazione a livello di bucket.
La prevenzione dell'accesso pubblico è fortemente coerente per la lettura dopo l'aggiornamento, ma l'applicazione può richiedere fino a 10 minuti per diventare effettiva.
Dopo l'applicazione, gli oggetti potrebbero essere ancora accessibili pubblicamente tramite una cache di internet per un determinato periodo di tempo, a seconda dell'impostazione
Cache-Control
degli oggetti. Ad esempio, se il valore predefinito diCache-Control:max-age
per un oggetto è 3600 secondi, l'oggetto potrebbe rimanere in una cache internet per il periodo di tempo specificato.
Passaggi successivi
- Scopri come utilizzare la prevenzione dell'accesso pubblico.
- Scopri di più sui criteri dell'organizzazione.