Rendere Pubblici i File di un Bucket AWS S3

Introduzione Amazon S3 (Simple Storage Service) è un servizio web di memorizzazione offerto da AWS (Amazon Web Services) che può essere utilizzato per ospitare dati nel cloud. Possiamo utilizzare questo […]

Avatar di GB Factory
GB Factory 18 Luglio 2022

Introduzione

Amazon S3 (Simple Storage Service) è un servizio web di memorizzazione offerto da AWS (Amazon Web Services) che può essere utilizzato per ospitare dati nel cloud. Possiamo utilizzare questo servizio per memorizzare dei dati privati, quindi accessibili solamente a noi o ad altri utenti autorizzati, come per esempio il backup di un nostro sito web, e in questo caso non sarà necessario modificare alcuna informazione dato che di default i bucket sono accessibili solamente dal proprietario.

Tuttavia potremmo voler rendere accessibili i nostri dati ad altre persone, per esempio, nel caso di questo sito web AWS S3 viene utilizzato per memorizzare il codice dei vari tutorial pubblicati che gli utenti possono scaricare. Per questo scopo è necessario rendere i file pubblicamente accessibili.

Modificare i Permessi del Bucket

La prima cosa che dovremmo fare è accedere alla nostra console di gestione di AWS e andare sulla pagina del servizio S3. Da qui clicchiamo sul nome del bucket che ci interessa per aprire la pagina di gestione.

Accediamo ora alla scheda "Permessi" e rimuoviamo la spunta da "Blocca tutti gli accessi pubblici". Una volta eseguita questa operazione premiamo il pulsante "Salva le modifiche".

La configurazione potrebbe essere già stata impostata in questo modo durante la configurazione iniziale del bucket. Se questo è il caso non sarà necessario eseguire questo passaggio.

Modificare la Policy del Bucket

Sempre rimanendo su questa pagina scorriamo verso il basso fino alla sezione "Policy del bucket" e premiamo sul pulsante "Modifica". All'interno dell'area di testo incolliamo il seguente codice che consente l'accesso pubblico in lettura a tutti i file contenuti nel bucket S3.

In questo codice ricordiamoci di modificare la dicitura NOME_DEL_BUCKET sostituendo al suo posto il nome del nostro bucket.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": "arn:aws:s3:::NOME_DEL_BUCKET/*"
    }
  ]
}

Ad esempio, il bucket chiamato gbfactorycode per ospitare i file di questo sito, utilizzerà il seguente codice, in cui ho inserito il nome del bucket:

Una volta terminate le modifiche possiamo premere il pulsante "Salva le modifiche", e a questo punto sul nostro bucket sarà stato abilitato l'accesso pubblico in lettura.

Consentire l'accesso dal browser ai file del Bucket S3

Nel caso si dovesse accedere ai file contenuti all'interno del bucket tramite richiesta HTTP eseguita all'interno del browser, è necessario modificare le opzioni CORS (Cross-Origin Resource Sharing) del bucket per consentire le richieste dal browser.

Sempre rimanendo nella scheda "Permessi" del nostro Bucket, scorriamo in basso fino alla sezione "Condivisione delle risorse multiorigine (CORS)". Qui premiamo il pulsante "Modifica" e inseriamo il seguente codice JSON all'interno dell'area di testo:

[
  {
      "AllowedHeaders": [
          "Authorization",
          "Content-Length"
      ],
      "AllowedMethods": [
          "GET"
      ],
      "AllowedOrigins": [
          "*"
      ],
      "ExposeHeaders": [],
      "MaxAgeSeconds": 3000
  }
]

Una volta terminate le modifiche premiamo il tasto "Salva" per applicare i cambiamenti al nostro bucket.

Verificare che l'Accesso al Bucket sia abilitato

Per controllare che l'accesso pubblico in lettura sia abilitato, accediamo all'elenco degli Oggetti contenuti all'interno del nostro bucket e selezioniamo un file premendo sulla sua casella di controllo. A questo punto copiamo l'URL del file premendo il pulsante "Copia URL".

Ora incolliamo l'URL in una nuova scheda del nostro browser e, nel caso la configurazione sia stata effettuata correttamente, dovremmo vedere il contenuto del file. In alcuni casi invece verrà direttamente scaricato il file, come accade per un file zip.

Conclusione

In questa guida abbiamo visto come abilitare l'accesso in scrittura pubblico per un Bucket S3 di AWS. Dopo questa configurazione tutte le altre persone potranno accedere pubblicamente al bucket solamente in lettura, ma non potranno aggiungere o rimuovere elementi dal bucket.

Tieni presente che AWS saremo subito notificati del fatto che il nostro bucket sia pubblicamente accessibile da un badge rosso riportato sotto il nome del bucket in questione.