Panoramica del controllo degli accessi

Controlli 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 granularmente controllato.

  • Uniforme (consigliato): l'accesso uniforme a livello di bucket ti consente di utilizzare Identity and Access Management (IAM) da solo per gestire le autorizzazioni. IAM applica le autorizzazioni a tutti gli oggetti contenuti nel bucket o a gruppi di oggetti con prefissi di nome comuni. IAM ti consente inoltre di utilizzare funzionalità non disponibili quando lavori con le 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 ed 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. Le ACL consentono anche di specificare l'accesso in base all'oggetto.

    Poiché l'accesso granulare richiede il coordinamento tra due diversi sistemi di controllo dell'accesso'accesso, aumenta la possibilità 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 di identificazione personale, ti consigliamo di archiviarli in un bucket con 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 tuoi bucket e oggetti: IAM ed elenchi di controllo dell'accesso (ACL). Questi sistemi operano in parallelo: affinché un utente possa accedere a una risorsa Cloud Storage, solo uno dei sistemi deve concedere l'autorizzazione. Ad esempio, se il criterio IAM del bucket consente 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 quell'oggetto specifico è esposto al pubblico.

Nella maggior parte dei casi, IAM è il metodo consigliato per controllare l'accesso alle tue risorse. IAM controlla le autorizzazioni in tutto Google Cloud e consente di concedere autorizzazioni a livello di bucket e 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 impedire l'utilizzo degli 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 consentono di concedere autorizzazioni per singoli oggetti. Probabilmente vorrai utilizzare gli ACL per i seguenti casi d'uso:

  • Personalizza l'accesso ai singoli oggetti all'interno di un bucket.
  • Esegui la migrazione dei dati da Amazon S3.

Opzioni di controllo dell'accesso dell'accesso aggiuntive

Oltre a IAM e agli elenchi di controllo dell'accesso, sono disponibili i seguenti strumenti per aiutarti a controllare l'accesso alle tue risorse:

URL firmati (autenticazione della stringa di query)

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

Puoi utilizzare gli URL firmati in aggiunta a IAM e agli elenchi di controllo dell'accesso. 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 di criteri con firma 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 su Cloud Storage.

Puoi utilizzare documenti di policy firmati oltre a IAM e ACL. Ad esempio, puoi utilizzare IAM per consentire agli utenti della tua organizzazione di caricare qualsiasi oggetto, quindi creare un documento di policy 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 di Firebase per fornire controllo dell'accesso granulare e basato sugli attributi alle app mobile e web utilizzando gli SDK Firebase per Cloud Storage. Ad esempio, puoi specificare chi può caricare o scaricare oggetti, le dimensioni massime 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 a bucket e oggetti. Quando abiliti la prevenzione dell'accesso pubblico, agli utenti che ottengono l'accesso tramite allUsers e allAuthenticatedUsers viene negato l'accesso ai dati.

Confini per l'accesso con credenziali

Utilizza i confini di accesso delle credenziali per ridurre le autorizzazioni disponibili per un token di accesso OAuth 2.0. Innanzitutto, definisci un limite di accesso alle credenziali che specifica a quali bucket può accedere il token, nonché un limite superiore per le autorizzazioni disponibili per quel bucket. A questo punto puoi creare un token di accesso OAuth 2.0 e scambiarlo con un nuovo token di accesso che rispetti il limite di accesso alle 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 ognuna di queste persone abbia. 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 un'organizzazione di grandi dimensioni o per un gruppo numeroso di utenti. Quando valuti e pianifichi le impostazionicontrollo dell'accesso'accesso, tieni presente le seguenti best practice:

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

    Il principio del privilegio minimo è una linea guida per la sicurezza per concedere l'accesso alle tue 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 concedergli il ruolo IAM Visualizzatore oggetti Storage o l'autorizzazione ACL READER e non il ruolo IAM Amministratore Storage o l'autorizzazione ACL OWNER.

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

    La concessione dell'autorizzazione IAM setIamPolicy o delle autorizzazioni ACL OWNER consente a un utente di modificare le autorizzazioni e 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, ad esempio le autorizzazioni IAM setIamPolicy, update, create o delete o l'autorizzazione ACL OWNER.

  • Assicurati di delegare il controllo amministrativo dei tuoi bucket.

    Devi assicurarti che le tue risorse possano comunque essere gestite da altri membri del team nel caso in cui un utente con accesso amministrativo abbandoni il gruppo.

    Per evitare che le risorse diventino inaccessibili, puoi procedere in uno dei seguenti modi:

    • Concedi il ruolo IAM Amministratore archiviazione per il tuo progetto a un gruppo anziché a un singolo utente.

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

    • Concedi l'autorizzazione OWNER ACL 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 utilizzi effettua una richiesta a Cloud Storage per recuperare gli ACL e la richiesta utilizza l'identificatore della firma di un altro provider di spazio di archiviazione, Cloud Storage restituisce un documento XML che utilizza la sintassi ACL del provider di spazio di archiviazione corrispondente. Se lo strumento o la libreria che utilizzi effettua una richiesta a Cloud Storage per applicare gli ACL e la richiesta utilizza l'identificatore della firma di un altro fornitore di spazio di archiviazione, Cloud Storage prevede di ricevere un documento XML che utilizza la sintassi ACL del fornitore di spazio di archiviazione corrispondente.

    Per saperne di più sull'utilizzo dell'API XML per l'interoperabilità con Amazon S3, consulta Migrazione semplice da Amazon S3 a Cloud Storage.

Passaggi successivi