Nell’articolo scritto precedentemente abbiamo visto gli argomenti generali del servizio di Amazon S3 come il bucket, gli objects, le regioni, il Reduced Redundancy Storage e le politiche di sicurezza, ma dato che lo scopo di questo percorso di articoli dedicato al sistema S3 è quello di sviluppare da soli delle applicazioni tramite degli scripts come ad esempio PHP adesso dobbiamo affrontare il primo passo necessario e cioè quello della autenticazione al servizio. Ovviamente come già detto dobbiamo avere un’account su Amazon AWS.
Credenziali di accesso: In questo momento esistono tre tipologie di accesso quella tramite Account Amazon che è quella più usata, un’altra tramite IAM user ed infine la possibilità di creare una chiave di accesso temporanea che scade da sola dopo un periodo di tempo prestabilito.
- Account Amazon: vengono usate le chiavi di accesso del tuo account personale che possono essere prelevate una volta loggati su amazon aws sul tab “Account” e selezionato la voce “Security Credentials”, qui troverete l’Access Key ID (20 caratteri) e la Secret Acces Key (40 caratteri) ad esempio: kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct.
- IAM User Security Credentials: Se hai un account aziendale dove gestisci diversi utenti puoi usare nei programmi di autenticazione le chiavi di uno specifico utente, in maniera tale da controllare gli accessi su S3 in maniera differente in base all’utilizzatore del tuo script. Per usare il servizio IAM seleziona la tab apposita che trovi sulla barra orizzontale principale del tuo pannello di amministrazione su amazon aws console.
- Temporary Security Credentials: Sempre tramite il servizio IAM puoi creare delle chiavi di accesso da far utilizzare per il servizio S3 agli account di accesso che durano solo per un periodo di tempo. Per documentazione -> ( AWS Identity and Access Management ).
Adesso che abbiamo le chiavi di accesso e sappiamo come prenderle eseguiamo il primo programma di accesso s3 per ottenere una lista di oggetti dentro un bucket. In questo esempio userò SDK PHP per amazon web service che puoi scaricare da –> ( questo link ). In ogni caso se utilizzi linguaggi di programmazione diversi troverai a disposizione pacchetti per Java, PHP, Python, Ruby, Windows & .NET e Mobile. Insomma una bella varietà di scelta.
/* Accesso ad un bucket S3 */ $s3 = new AmazonS3($AccessKeyId, $SecretAccessKey); $response = $s3->get_object_list($bucket); /* Accesso ad un bucket S3 pubblico non necessita di chiavi */ $s3 = new AmazonS3(); $response = $s3->get_object_list($bucketpublic);
REST API: Vi riporto anche un esempio della documentazione ufficiale di una richiesta S3 per vedere dove vengono specificate le chiavi di accesso utilizzando il protocollo REST API. Questa procedura è sicuramente più complessa ma permette di effettuare delle richieste ai servizi di amazon senza avere a disposizione un pacchetto di framework specifico. Ovviamente dato che la richiesta viaggia in chiaro le chiavi sono specificate tramite una “signature”.
DELETE /puppy.jpg HTTP/1.1 User-Agent: dotnet Host: mybucket.s3.amazonaws.com Date: Tue, 15 Jan 2008 21:20:27 +0000 x-amz-date: Tue, 15 Jan 2008 21:20:27 +0000 Authorization: AWS 0PN5J17HBGZHT7JJ3X82:k3nL7gH3+PadhTEVn5EXAMPLE <-- Qui
Di seguito vi riporto lo schema di flusso della documentazione ufficiale di amazon per la creazione di una richiesta REST e delle fasi di elaborazione necessarie:


Browser-Based Uploads Using POST: Nella maggior parte delle volte l’accesso avviene nella seguente maniera: il browser fa una richiesta al server, il server elabora un operazione S3 e rimanda il risultato dell’operazione al browser, però ci possono essere dei casi dove il browser potrebbe eseguire un comando di scrittura su S3 direttamente senza passare dal server, se volete approfondire questo aspetto andate su Browser-Based Uploads Using POST.
Indice dei capitoli per argomento Amazon S3 Sviluppatori
- Amazon AWS – Servizio S3 (Sviluppatori – introduzione)
- Amazon AWS – Servizio S3 (Sviluppatori – credenziali di accesso)
- Amazon AWS – Servizio S3 (Sviluppatori – buckets)
- Amazon AWS – Servizio S3 (Sviluppatori – objects)
- Amazon AWS – Servizio S3 (Sviluppatori – hosting website)
- Amazon AWS – Servizio S3 (Sviluppatori – usare BitTorrent)
Risorse ed articoli di approfondimento sul servizio Amazon S3
- Amazon AWS – Guida generale dei servizi
- Amazon AWS – Servizio S3 (Simple Storage Service)
- Amazon AWS – Servizio S3 (Simple Storage Service – incominciare)
- Amazon AWS – Object Expiration S3 per scadenza oggetto
- Amazon AWS – Gestire il servizio S3 da linea di comando con s3cmd
- Amazon AWS – Gestire le API con lo Zend Framework in PHP
- Amazon AWS – Documentazione ufficiale in formato HTML o PDF
- Amazon AWS – Articoli presenti nel blog con tag S3
