Prevenzione dell'accesso pubblico

Configurazione

Questa pagina descrive l'impostazione del bucket per la prevenzione dell'accesso pubblico e il vincolo della policy dell'organizzazione di prevenzione dell'accesso pubblico correlato. L'utilizzo dell'impostazione o del vincolo limita le entità, come gli utenti anonimi su internet, a cui può essere concesso 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 le policy IAM o gli ACL. Esistono due modi per applicare la prevenzione dell'accesso pubblico:

Devi utilizzare la prevenzione dell'accesso pubblico?

Utilizza la prevenzione dell'accesso pubblico se sai che i tuoi dati non devono mai essere esposti su internet. Per garantire la massima sicurezza delle tue risorse, applica la prevenzione dell'accesso pubblico al livello più alto possibile della tua organizzazione.

Non devi utilizzare la prevenzione dell'accesso pubblico se devi mantenere il bucket pubblico per casi d'uso come l'hosting di siti web statici. Per creare eccezioni per questi bucket nelle organizzazioni che altrimenti applicano la prevenzione dell'accesso pubblico, disattiva la prevenzione dell'accesso pubblico nel progetto specifico che contiene il bucket.

Comportamento quando viene applicata

Le risorse soggette alla prevenzione dell'accesso pubblico hanno il seguente comportamento:

  • Le richieste a bucket e oggetti autorizzati utilizzando allUsers e allAuthenticatedUsers non vanno a buon fine e restituiscono un codice di stato HTTP 401 o 403.

  • Le ACL e i criteri IAM esistenti che concedono l'accesso a allUsers e allAuthenticatedUsers rimangono in vigore, ma vengono sostituiti dalla prevenzione dell'accesso pubblico.

  • Le richieste di creazione di bucket o oggetti con allUsers e allAuthenticatedUsers nei criteri IAM o negli ACL non vanno a buon fine, con la seguente eccezione:

    • Se un bucket ha un ACL oggetto predefinito contenente allUsers, le richieste di creazione di oggetti in quel bucket vanno a buon fine. Gli ACL per questi oggetti contengono allUsers, ma allUsers viene sostituito dalla prevenzione dell'accesso pubblico.
  • Le richieste di aggiunta di allUsers e allAuthenticatedUsers a un criterio IAM o a un ACL non vanno a buon fine e viene visualizzato 412 Precondition Failed.

Ereditarietà

Anche se un bucket non ha la prevenzione dell'accesso pubblico applicata esplicitamente nelle impostazioni, potrebbe comunque ereditarla, il 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, allora 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'organizzazione storage.publicAccessPrevention:

    • Se storage.publicAccessPrevention è impostato su True per il progetto che contiene il bucket, la prevenzione dell'accesso pubblico si applica al bucket.

    • Se storage.publicAccessPrevention è impostato su False 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 valore di storage.publicAccessPrevention impostato dalla cartella, se presente, che contiene 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 valore di storage.publicAccessPrevention impostato dall'organizzazione che contiene il progetto.

      • Se storage.publicAccessPrevention non è impostato per alcuna risorsa, la prevenzione dell'accesso pubblico non si applica al bucket.

Comportamento se disattivato

Quando la prevenzione dell'accesso pubblico non si applica più a una risorsa, si verifica quanto segue:

  • I criteri IAM e gli ACL esistenti che concedono l'accesso a allUsers e allAuthenticatedUsers entrano in vigore e rendono i dati accessibili al pubblico.

  • Le richieste di creazione di criteri IAM o ACL che consentono l'accesso a allUsers e allAuthenticatedUsers vanno a buon fine.

  • Un oggetto creato in base alla 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 a essere soggetti alla prevenzione dell'accesso pubblico, 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 allUsers e allAuthenticatedUsers vengono bloccate. Ciò può influire sui tuoi bucket nei seguenti modi:

    • Se un'applicazione dipende da allUsers e allAuthenticatedUsers per accedere ai tuoi dati o creare risorse pubbliche, l'attivazione della prevenzione dell'accesso pubblico può interrompere il funzionamento dell'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 l'inventario delle tue risorse pubbliche per assicurarti di non interrompere altri carichi di lavoro che dipendono dalla pubblicità dei tuoi dati. Puoi individuare bucket, oggetti e cartelle gestite pubblici utilizzando i seguenti metodi:

    • 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 precedentemente pubblico e non registrato potrebbe essere associato ad autorizzazioni specifiche, che vengono registrate.

  • Gli URL firmati, che forniscono un accesso a tempo limitato e con ambito ristretto a chiunque li utilizzi, non sono interessati dalla prevenzione dell'accesso pubblico.

  • I progetti non associati a un'organizzazione non possono utilizzare le relative policy. 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 internet per un determinato periodo di tempo, a seconda dell'impostazione Cache-Control degli oggetti. Ad esempio, se il valore Cache-Control:max-age per un oggetto è impostato sul valore predefinito di 3600 secondi, l'oggetto potrebbe rimanere in una cache internet per questo periodo di tempo.

Passaggi successivi