Panoramica del controllo degli accessi

Puoi controllare chi ha accesso ai tuoi bucket e oggetti Cloud Storage e il livello di accesso.

Scegliere tra accesso uniforme e granulare

Quando crei un bucket, devi decidere se vuoi applicare le autorizzazioni utilizzando l'accesso uniforme o granulare.

  • Uniforme (consigliato): l'accesso uniforme a livello di bucket ti consente di utilizzare solo Identity and Access Management (IAM) per gestire le autorizzazioni. IAM applica le autorizzazioni a tutti gli oggetti contenuti nel bucket o ai gruppi di oggetti con prefissi di nomi comuni. IAM ti consente anche di utilizzare funzionalità non disponibili quando lavori con gli ACL, come le cartelle gestite, le condizioni IAM, la condivisione limitata dei domini e la federazione delle identità per la forza lavoro.

  • Granulare: l'opzione granulare ti consente di utilizzare IAM e elenchi di controllo dell'accesso (ACL) insieme per gestire le autorizzazioni. Gli ACL sono un sistema di controllo dell'accesso legacy per Cloud Storage progettato per l'interoperabilità con Amazon S3. Gli ACL ti consentono anche di specificare l'accesso per ogni oggetto.

    Poiché l'accesso granulare richiede il coordinamento tra due sistemi di controllo dell'accesso diversi, aumenta la probabilità di esposizione involontaria dei dati e l'audit di chi ha accesso alle risorse è più complicato. In particolare, se hai oggetti che contengono dati sensibili, come informazioni che consentono l'identificazione personale, ti consigliamo di archiviarli in un bucket con l'accesso uniforme a livello di bucket abilitato.

Utilizzo delle autorizzazioni IAM con gli ACL

Cloud Storage offre due sistemi per concedere agli utenti l'accesso 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. Ad esempio, se i criteri IAM del bucket consentono solo a pochi utenti di leggere i dati degli oggetti nel bucket, ma uno degli oggetti nel bucket ha un ACL che lo rende leggibile pubblicamente, allora l'oggetto specifico è esposto al pubblico.

Nella maggior parte dei casi, IAM è il metodo consigliato per controllare l'accesso alle risorse. IAM controlla le autorizzazioni in tutto Google Cloud e ti consente di concedere autorizzazioni a livello di bucket e di progetto. Devi utilizzare IAM per tutte le autorizzazioni che si applicano a più oggetti in un bucket per ridurre i rischi di esposizione involontaria. Per utilizzare esclusivamente IAM, abilita l'accesso uniforme a livello di bucket per non consentire gli ACL per tutte le risorse Cloud Storage.

Gli ACL controllano le autorizzazioni solo per le risorse Cloud Storage e hanno opzioni di autorizzazione limitate, ma ti consentono di concedere autorizzazioni per singoli oggetti. Molto probabilmente vorrai utilizzare gli ACL per i seguenti casi d'uso:

  • Personalizzare l'accesso a singoli oggetti all'interno di un bucket.
  • Eseguire la migrazione dei dati da Amazon S3.

Altre opzioni di controllo dell'accesso

Oltre a IAM e agli ACL, sono disponibili i seguenti strumenti per aiutarti a controllare l'accesso alle risorse:

URL firmati (autenticazione della stringa di query)

Utilizza gli URL firmati per concedere l'accesso in lettura o scrittura a un oggetto per un periodo di tempo limitato tramite un URL che generi. Chiunque condivida l'URL può accedere all'oggetto per la durata specificata, indipendentemente dal fatto che abbia o meno un account utente.

Puoi utilizzare gli URL firmati in aggiunta a IAM e agli ACL. Ad esempio, puoi utilizzare IAM per concedere l'accesso a un bucket solo a poche persone, quindi creare un URL firmato che consenta ad altri di accedere a una risorsa specifica all'interno del bucket.

Scopri come creare URL firmati:

Documenti dei criteri firmati

Utilizza i documenti dei criteri firmati per specificare cosa può essere caricato in un bucket. I documenti dei criteri consentono un maggiore controllo su dimensioni, tipo di contenuti e altre caratteristiche di caricamento rispetto agli URL firmati e possono essere utilizzati dai proprietari di siti web per consentire ai visitatori di caricare file in Cloud Storage.

Puoi utilizzare i documenti dei criteri firmati in aggiunta a IAM e agli ACL. Ad esempio, puoi utilizzare IAM per consentire alle persone della tua organizzazione di caricare qualsiasi oggetto, quindi creare un documento dei criteri firmato che consenta ai visitatori del sito web di caricare solo gli oggetti che soddisfano criteri specifici.

Regole di sicurezza Firebase

Utilizza le regole di sicurezza Firebase per fornire un controllo dell'accesso granulare basato sugli attributi alle app web e mobile utilizzando gli SDK Firebase per Cloud Storage. Ad esempio, puoi specificare chi può caricare o scaricare oggetti, le dimensioni di un oggetto o quando un oggetto può essere scaricato.

Prevenzione dell'accesso pubblico

Utilizza la prevenzione dell'accesso pubblico per limitare l'accesso pubblico ai bucket e agli oggetti. Quando abiliti la prevenzione dell'accesso pubblico, agli utenti che ottengono l'accesso tramite allUsers e allAuthenticatedUsers non è consentito l'accesso ai dati.

Accesso privato ai bucket

Utilizza i bucket privati come backend per pubblicare contenuti solo tramite Cloud Load Balancing e Cloud CDN, senza rendere pubblici il bucket o i relativi dati. 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.

Ad esempio, i bucket privati ti consentono di ospitare contenuti come file web statici in un bucket Cloud Storage, consentendo l'accesso solo tramite Cloud Load Balancing e Cloud CDN. Un altro esempio: puoi utilizzare i bucket privati per consentire l'accesso agli oggetti privati da Cloud CDN senza utilizzare URL firmati.

Puoi utilizzare l'accesso privato ai bucket in combinazione con la prevenzione dell'accesso pubblico.

Confini per l'accesso con credenziali

Utilizza i confini per l'accesso con credenziali per ridurre l'ambito delle autorizzazioni che sono disponibili per un token di accesso OAuth 2.0. Innanzitutto, definisci un confine per l'accesso con credenziali che specifichi i bucket a cui il token può accedere, nonché un limite superiore per le autorizzazioni disponibili per quel bucket. Puoi quindi creare un token di accesso OAuth 2.0 e scambiarlo con un nuovo token di accesso che rispetti il confine per l'accesso con credenziali.

Filtro IP del bucket

Utilizza il filtro IP del bucket per limitare l'accesso al bucket in base all' indirizzo IP di origine della richiesta. Il filtro IP del bucket aggiunge un livello di sicurezza impedendo alle reti non autorizzate di accedere al bucket e ai relativi dati. Puoi configurare un elenco di intervalli di indirizzi IP consentiti, inclusi indirizzi IP pubblici, intervalli di indirizzi IP pubblici e indirizzi IP all'interno del tuo Virtual Private Cloud. Tutte le richieste provenienti da un indirizzo IP non presente nell'elenco vengono bloccate. Di conseguenza, solo gli utenti autorizzati possono accedere al bucket.

Best practice per IAM e ACL

Per essere efficaci, i criteri IAM e gli ACL richiedono una gestione attiva. Prima di rendere accessibile un bucket, un oggetto o una cartella gestita ad altri utenti, assicurati di sapere con chi vuoi condividere la risorsa e quali ruoli vuoi che abbiano queste persone. Nel tempo, le modifiche alla gestione dei progetti, ai pattern di utilizzo e alla proprietà dell'organizzazione potrebbero richiedere la modifica delle impostazioni IAM o ACL su bucket e progetti, soprattutto se gestisci Cloud Storage in una grande organizzazione o per un gruppo di utenti di grandi dimensioni. Quando valuti e pianifichi le impostazioni di controllo dell'accesso, tieni presente le seguenti best practice:

  • Utilizza il principio del privilegio minimo quando concedi l'accesso a bucket, oggetti o cartelle gestite.

    Il principio del privilegio minimo è una linea guida di sicurezza per la concessione dell'accesso alle risorse. Quando concedi l'accesso in base al principio del privilegio minimo, concedi l'autorizzazione minima necessaria a un utente per svolgere l'attività assegnata. Ad esempio, se vuoi condividere file con qualcuno, devi concedere il ruolo IAM Visualizzatore oggetti archiviazione o l'autorizzazione ACL READER e non il ruolo IAM Amministratore archiviazione o l'autorizzazione ACL OWNER.

  • Evita di concedere ruoli IAM con l'autorizzazione setIamPolicy o l'autorizzazione ACL OWNER a persone che non conosci.

    La concessione dell'autorizzazione IAM setIamPolicy o dell'autorizzazione ACL OWNER consente a un utente di modificare le autorizzazioni e di assumere il controllo dei dati. Devi utilizzare i ruoli con queste autorizzazioni solo quando vuoi delegare il controllo amministrativo su oggetti, bucket e cartelle gestite.

  • Prestare attenzione a come vengono concesse le autorizzazioni agli utenti anonimi.

    I tipi di entità allUsers e allAuthenticatedUsers devono essere utilizzati solo quando è accettabile che chiunque su internet legga e analizzi i tuoi dati. Sebbene questi ambiti siano utili per alcune applicazioni e alcuni scenari, in genere non è una buona idea concedere a tutti gli utenti determinate autorizzazioni, come le autorizzazioni IAM setIamPolicy, update, create o delete o l'autorizzazione ACL OWNER.

  • Assicurati di delegare il controllo amministrativo dei bucket.

    Devi assicurarti che le tue risorse possano essere gestite da altri membri del team nel caso in cui una persona con accesso amministrativo lasci il gruppo.

    Per evitare che le risorse diventino inaccessibili, puoi eseguire una delle seguenti operazioni:

    • Concedi il ruolo IAM Amministratore archiviazione per il tuo progetto a un gruppo anziché a una singola persona.

    • Concedi il ruolo IAM Amministratore archiviazione per il tuo progetto ad almeno due persone.

    • Concedi l'autorizzazione ACL OWNER per il tuo bucket ad almeno due persone.

  • Tieni presente il comportamento interoperabile di Cloud Storage.

    Quando utilizzi l'API XML per l'accesso interoperabile con altri servizi di archiviazione, come Amazon S3, l'identificatore della firma determina la sintassi ACL. Ad esempio, se lo strumento o la libreria che stai utilizzando effettua una richiesta a Cloud Storage per recuperare gli ACL e la richiesta utilizza l'identificatore della firma di un altro fornitore di servizi di archiviazione, Cloud Storage restituisce un documento XML che utilizza la sintassi ACL del fornitore di servizi di archiviazione corrispondente. Se lo strumento o la libreria che stai utilizzando effettua una richiesta a Cloud Storage per applicare gli ACL e la richiesta utilizza l'identificatore della firma di un altro fornitore di servizi di archiviazione, Cloud Storage si aspetta di ricevere un documento XML che utilizza la sintassi ACL del fornitore di servizi di archiviazione corrispondente.

    Per ulteriori informazioni sull'utilizzo dell'API XML per l'interoperabilità con Amazon S3, consulta Migrazione semplice da Amazon S3 a Cloud Storage.

Passaggi successivi