Questa pagina illustra l'impostazione del bucket per la prevenzione dell'accesso pubblico e il relativo vincolo della policy dell'organizzazione per la prevenzione dell'accesso pubblico. L'utilizzo dell'impostazione o del vincolo limita le entità, come 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 Cloud Storage e gli oggetti dall'esposizione accidentale al pubblico. Quando applichi la prevenzione dell'accesso pubblico, nessuno può rendere pubblici i dati nei bucket applicabili tramite policy IAM o ACL. Esistono due modi per applicare la prevenzione dell'accesso pubblico:
Puoi applicare la prevenzione dell'accesso pubblico ai singoli bucket.
Se il bucket è contenuto in un'organizzazione, puoi applicare la prevenzione dell'accesso pubblico utilizzando il vincolo della policy dell'organizzazione
storage.publicAccessPreventiona livello di progetto, cartella o organizzazione.
Devi utilizzare 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 fornire la massima sicurezza alle tue risorse, applica la prevenzione dell'accesso pubblico al livello più alto possibile della tua organizzazione.
Puoi utilizzare la prevenzione dell'accesso pubblico in combinazione con l'accesso privato ai bucket. La prevenzione dell'accesso pubblico ti consente di proteggere i dati dall'esposizione pubblica accidentale, mentre l'accesso privato ai bucket ti consente di ospitare contenuti visibili pubblicamente consentendo l'accesso solo tramite Cloud Load Balancing e Cloud CDN.
Non devi utilizzare la prevenzione dell'accesso pubblico se mantieni il bucket pubblico per casi d'uso come l'hosting di siti web statici. Per fare eccezioni per questi bucket nelle organizzazioni che altrimenti applicano 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 hanno il seguente comportamento:
Le richieste ai bucket e agli oggetti autorizzati utilizzando
allUserseallAuthenticatedUsersnon vanno a buon fine con un codice di stato HTTP401o403.Le policy IAM e gli ACL esistenti che concedono l'accesso a
allUserseallAuthenticatedUsersrimangono invariati, ma vengono sostituiti dalla prevenzione dell'accesso pubblico.Le richieste di creazione di bucket o oggetti con
allUserseallAuthenticatedUsersnelle policy IAM o negli ACL non vanno a buon fine, con la seguente eccezione:- Se un bucket ha un'ACL predefinita per gli oggetti contenente
allUsers, le richieste di creazione di oggetti in quel bucket vanno a buon fine. Le ACL di questi oggetti contengonoallUsers, maallUsersviene sostituito dalla prevenzione dell'accesso pubblico.
- Se un bucket ha un'ACL predefinita per gli oggetti contenente
Le richieste di aggiunta di
allUserseallAuthenticatedUsersa una policy IAM o a un ACL non vanno a buon fine e restituiscono412 Precondition Failed.
Ereditarietà
Anche se un bucket non ha la prevenzione dell'accesso pubblico applicata esplicitamente nelle sue impostazioni, potrebbe comunque ereditare la prevenzione dell'accesso pubblico, che si verifica se il vincolo della policy 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 viene applicata 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 della policy dell'organizzazionestorage.publicAccessPrevention:Se
storage.publicAccessPreventionè impostato suTrueper il progetto che contiene il bucket, la prevenzione dell'accesso pubblico si applica al bucket.Se
storage.publicAccessPreventionè impostato suFalseper il progetto che contiene il bucket, la prevenzione dell'accesso pubblico non si applica al bucket.Se
storage.publicAccessPreventionnon è impostato per il progetto che contiene il bucket, la prevenzione dell'accesso pubblico è determinata dal valorestorage.publicAccessPreventionimpostato dalla cartella, se presente, che contiene il progetto.Analogamente, se anche la cartella contenente il bucket non imposta alcun valore per
storage.publicAccessPrevention, la prevenzione dell'accesso pubblico è determinata dal valorestorage.publicAccessPreventionimpostato dall'organizzazione che contiene il progetto.Se
storage.publicAccessPreventionnon è impostato per nessuna risorsa, la prevenzione dell'accesso pubblico non si applica al bucket.
Comportamento se disattivato
Quando la prevenzione dell'accesso pubblico non viene più applicata a una risorsa, si verifica quanto segue:
Le policy IAM e gli ACL esistenti che concedono l'accesso a
allUserseallAuthenticatedUsersdiventano effettivi e rendono i dati accessibili al pubblico.Le richieste di creazione di policy IAM o ACL che consentono l'accesso a
allUserseallAuthenticatedUsersvanno a buon fine.Un oggetto creato con la prevenzione dell'accesso pubblico senza ACL pubblici potrebbe diventare accessibile al pubblico se è stato creato in un bucket accessibile pubblicamente.
Puoi disattivare la prevenzione dell'accesso pubblico per un progetto, una cartella o un'organizzazione in qualsiasi momento. I bucket con un'impostazione enforced continuano ad avere la prevenzione dell'accesso pubblico applicata, anche se la disattivi per un progetto, una cartella o un'organizzazione che contiene il bucket.
Considerazioni
Quando applichi la prevenzione dell'accesso pubblico alle risorse esistenti, tutte le autorizzazioni esistenti e le nuove aggiunte di
allUserseallAuthenticatedUsersvengono bloccate. Ciò può influire sui tuoi bucket nei seguenti modi:Se un'applicazione dipende da
allUserseallAuthenticatedUsersper 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 tue risorse pubbliche per assicurarti di non interrompere altri workload che dipendono dalla pubblicazione dei tuoi dati. Puoi individuare bucket, oggetti e cartelle gestite pubblici utilizzando i seguenti metodi:
- Per identificare i workload 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 le policy IAM del bucket. Le policy che concedono ruoli all'entità
allUsersoallAuthenticatedUsersrendono il bucket potenzialmente accessibile al pubblico. In alternativa all'ottenimento della policy IAM per i singoli bucket, puoi utilizzare Cloud Asset Inventory per visualizzare le policy per tutti i bucket di un progetto, una cartella o un'organizzazione.Se nel bucket sono presenti cartelle gestite, ti consigliamo di controllare anche le policy IAM delle cartelle gestite per identificare quali potrebbero essere accessibili al pubblico.
- Per determinare se i singoli oggetti potrebbero essere accessibili al pubblico, controlla l'oggetto per verificare la presenza di ACL.
Le ACL che concedono l'accesso all'entità
allUsersoallAuthenticatedUsersrendono l'oggetto potenzialmente accessibile al pubblico.
Cloud Audit Logs non monitora l'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 di log, che vengono conteggiati ai fini della quota di importazione dei log e possono comportare addebiti per 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 forniscono accesso a tempo limitato e con ambito ristretto a chiunque li utilizzi, non sono interessati dalla prevenzione dell'accesso pubblico.
L'accesso privato ai bucket, che ti consente di utilizzare un bucket come backend per fornire contenuti solo tramite Cloud Load Balancing e Cloud CDN, non è interessato dalla prevenzione dell'accesso pubblico. Consulta Accesso privato ai bucket per il bilanciatore del carico delle applicazioni esterno globale, Accesso privato ai bucket per il bilanciatore del carico delle applicazioni classico e Accesso privato ai bucket per Cloud CDN.
I progetti non associati a un'organizzazione non possono utilizzare le policy 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'inizio dell'applicazione, i tuoi oggetti potrebbero essere ancora accessibili pubblicamente tramite una cache di internet per un certo periodo di tempo, a seconda dell'impostazione
Cache-Controldegli oggetti. Ad esempio, se il valoreCache-Control:max-ageper un oggetto è impostato sul valore predefinito di 3600 secondi, l'oggetto potrebbe persistere in una cache di internet per quel periodo di tempo.
Passaggi successivi
- Scopri come applicare la prevenzione dell'accesso pubblico.
- Scopri di più sulle policy dell'organizzazione.