Come montare Amazon S3 come unità per la condivisione di file nel cloud
In Amazon S3, i dati vengono archiviati in “bucket”, l’unità di base dell’archiviazione dati. È possibile configurare le autorizzazioni per consentire agli utenti di accedere ai bucket tramite l’interfaccia web di AWS. Se si desidera che l’accesso ad AWS S3 sia disponibile senza un browser web, è possibile consentire agli utenti di utilizzare l’interfaccia di un sistema operativo come Linux, Windows o macOS.
L’accesso allo storage sul cloud di Amazon S3 dalla riga di comando può rivelarsi utile in diversi scenari. Ciò risulta particolarmente utile con i sistemi operativi privi di interfaccia grafica (GUI), in particolare le VM in esecuzione su un cloud pubblico, e per automatizzare attività quali la copia di file o la creazione di backup dei dati su cloud.
Continua a leggere per scoprire come montare un bucket Amazon S3 come filesystem su una macchina Linux e come unità in una directory locale su macchine Windows e macOS, in modo da poter utilizzare AWS S3 senza un browser web.
Come montare un bucket S3 come filesystem in Linux
AWS mette a disposizione un’API per gestire i bucket Amazon S3 tramite applicazioni di terze parti. È persino possibile sviluppare un’applicazione personalizzata in grado di interagire con i bucket S3 utilizzando l’API di Amazon. È possibile creare un’applicazione che utilizzi lo stesso percorso per caricare i file sul storage sul cloud Amazon S3 e fornire lo stesso percorso su ogni computer montando il bucket S3 nella stessa directory tramite S3FS. In questo tutorial utilizziamo S3FS per montare un bucket Amazon S3 come unità disco in una directory Linux.
S3FS è una soluzione specifica basata su FUSE (file system in user space), sviluppata per montare i bucket S3 nelle directory dei sistemi operativi Linux, in modo simile a come si monta Condivisione CIFS/NFS come unità di rete. S3FS è una soluzione gratuita e open source.
Dopo aver montato l’archivio di storage sul cloud Amazon S3 con S3FS sul proprio computer Linux, è possibile utilizzare cp , mv , rm e altri comandi nella console Linux per gestire i file proprio come si farebbe con unità locali o di rete montate.
Montiamo un bucket Amazon S3 in una directory Linux utilizzando Ubuntu 18.04 LTS come esempio. In questa guida viene utilizzata un’installazione nuova di Ubuntu. È possibile applicare lo stesso principio alle versioni più recenti.
- Aggiornare l’albero dei repository:
sudo apt-get update - Se sul sistema Linux è già installato un FUSE, rimuoverlo prima di configurare l’ambiente e installare fuse-f3fs per evitare conflitti. Poiché stiamo utilizzando un’installazione nuova di Ubuntu, non eseguiamo il comando
sudo apt-get remove fuseper rimuovere FUSE. - Installare s3fs dai repository software online:
sudo apt-get install s3fs - È necessario generare l’ID della chiave di accesso e la chiave segreta di accesso nell’interfaccia web di AWS per il proprio account (utente IAM). L’utente IAM deve disporre dell’accesso completo a S3. È possibile utilizzare questo link:
https://console.aws.amazon.com/iam/home?#/security_credentialsNOTA: Si raccomanda di montare i bucket Amazon S3 come utente standard con permessi limitati e di utilizzare utenti con permessi amministrativi solo per la generazione delle chiavi.
- Queste chiavi sono necessarie per l’accesso all’API AWS. È necessario disporre di permessi amministrativi per generare l’ID chiave di accesso AWS e la chiave segreta di accesso AWS. Se non si dispone di permessi sufficienti, chiedere all’amministratore di sistema di generare le chiavi AWS per conto proprio. L’amministratore può generare le chiavi AWS per un account utente nella sezione Utenti della console AWS, nella scheda Credenziali di sicurezza , facendo clic sul pulsante Crea chiave di accesso .

- Nella finestra pop-up Crea chiave di accesso , fare clic su Scarica file .csv oppure fare clic su Mostra sotto il nome della riga Chiave di accesso segreta . Questo è l’unico caso in cui è possibile visualizzare la chiave di accesso segreta nell’interfaccia web di AWS. Conservare l’ID della chiave di accesso AWS e la chiave di accesso segreta in un luogo sicuro.

- È possibile aprire il file CSV scaricato contenente le chiavi di accesso, ad esempio, in Microsoft Office 365 Excel.

- Tornare alla console di Ubuntu per creare un file di configurazione in cui memorizzare la chiave di accesso AWS e la chiave di accesso segreta necessarie per montare un bucket S3 con S3FS. Il comando da utilizzare è:
echo ACCESS_KEY:SECRET_ACCESS_KEY > PATH_TO_FILEModificare ACCESS_KEY con la propria chiave di accesso AWS e SECRET_ACCESS_KEY con la propria chiave di accesso segreta.
In questo esempio, salveremo il file di configurazione con le chiavi AWS nella directory home del nostro utente. Assicurati di salvare il file contenente le chiavi in un luogo sicuro, non accessibile a persone non autorizzate.
echo AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzP > ~/.passwd-s3fs - Verifica che le chiavi siano state scritte nel file:
cat ~/.passwd-s3fs - Imposta i permessi corretti per il passwd-s3fs file in cui sono memorizzate le chiavi di accesso:
chmod 600 ~/.passwd-s3fs - Crea la directory (punto di montaggio) che verrà utilizzata come punto di montaggio per il tuo bucket S3. In questo esempio, creiamo la directory Amazon cloud drive S3 nella directory home dell’utente.
mkdir ~/s3-bucketÈ anche possibile utilizzare una directory vuota già esistente.
- Il nome del bucket utilizzato in questa guida è blog-bucket01 . Il file text1.txt viene caricato nel nostro blog-bucket01 su Amazon S3 prima di montare il bucket su una directory Linux. Si sconsiglia di utilizzare un punto (.) nei nomi dei bucket.

- Montiamo il bucket. Utilizzare il seguente comando per impostare il nome del bucket, il percorso della directory utilizzata come punto di montaggio e il file che contiene la chiave di accesso AWS e la chiave di accesso segreta.
s3fs bucket-name /path/to/mountpoint -o passwd_file=/path/passwd-s3fsNel nostro caso, il comando che utilizziamo per montare il nostro bucket è:
s3fs blog-bucket01 ~/s3-bucket -o passwd_file=~/.passwd-s3fs - Il bucket è montato. Possiamo eseguire i comandi per verificare se il nostro bucket ( blog-bucket-01 ) è stato montato nella directory s3-bucket :
mount | grep bucketdf -h | grep bucket - Controlliamo il contenuto della directory in cui è stato montato il bucket:
ls -al ~/s3-bucketCome si può vedere nella schermata qui sotto, i file test1.txt caricati in precedenza tramite l’interfaccia web sono presenti e visualizzati nell’output della console.

- Ora è possibile provare a creare un nuovo file sul disco rigido e copiarlo nel bucket S3 dalla console Linux.
echo test2 > test2.txtcp test2.txt ~/s3-bucket/ - Aggiornare la pagina web di AWS in cui vengono visualizzati i file presenti nel bucket. Dovresti vedere il nuovo test2.txt file copiato nel bucket S3 nella console Linux utilizzando la directory in cui è montato il bucket.

Come montare automaticamente un bucket S3 all’avvio di Linux
Se si desidera configurare il montaggio automatico di un bucket S3 con S3FS sulla propria macchina Linux, è necessario creare il file passwd-s3fs in /etc/passwd-s3fs , che è l’ubicazione standard. Dopo aver creato questo file, non è necessario utilizzare il comando -o passwd_file per impostare manualmente l’ubicazione del file con le proprie chiavi AWS.
- Creare il file /etc/passwd-s3fs :
vim /etc/passwd-s3fsNOTA: Se vim l’editor di testo non è ancora stato installato sul proprio sistema Linux, eseguire il comando
apt-get install vim. - Inserire la chiave di accesso AWS e la chiave di accesso segreta come spiegato sopra.
AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzcP
In alternativa, puoi memorizzare le chiavi nel file /etc/passwd-s3fs con il comando:
echo AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzcP > /etc/passwd-s3fs - Impostare i requisiti obbligatori per il file /etc/passwd-s3fs :
chmod 640 /etc/passwd-s3fs - Modificare il file di configurazione FUSE:
vim /etc/fuse.conf - Rimuovere il commento dalla stringa user_allow_other se si desidera consentire l’utilizzo di Amazon S3 per la condivisione di file da parte di altri utenti (utenti non root) sulla propria macchina Linux.

- Apri /etc/fstab con un editor di testo:
vim /etc/fstab - Aggiungi la riga alla fine del file:
s3fs#blog-bucket01 /home/user1/s3-bucket/ fuse _netdev,allow_other,url=https://s3.amazonaws.com 0 0
- Salva il file modificato /etc/fstab e chiudi l’editor di testo.
Nota: Se si desidera impostare il proprietario e il gruppo, è possibile utilizzare i
-o uid=1001 -o gid=1001 -o mp_umask=002parametri (modificare i valori numerici dell’ID utente, dell’ID gruppo e dell’umask in base alla propria configurazione). Se desideri abilitare la cache, utilizza il parametro-ouse_cache=/tmp(imposta una directory personalizzata al posto di /tmp/ se necessario). Puoi impostare il numero di volte in cui tentare il montaggio di un bucket, nel caso in cui questo non fosse stato montato inizialmente, utilizzando il parametro retries. Ad esempio,retries=5imposta cinque volte. - Riavvia la macchina Ubuntu per verificare se il bucket S3 viene montato automaticamente all’avvio del sistema:
init 6 - Attendi che la tua macchina Linux si avvii.
- È possibile eseguire dei comandi per verificare se il bucket AWS S3 è stato montato automaticamente nella s3-bucket directory all’avvio di Ubuntu.
mount | grep bucket
df -h | grep bucket
ls -al /home/user1/s3-bucket/
Nel nostro caso, l’unità cloud Amazon S3 è stata montata automaticamente nella directory Linux specificata all’avvio di Ubuntu (vedi lo screenshot qui sotto). La configurazione è stata applicata con successo.
S3FS supporta anche l’utilizzo di rsync e la memorizzazione dei file nella cache per ridurre il traffico.
Montaggio dello storage sul cloud Amazon S3 in Windows
È possibile provare wins3fs , una soluzione equivalente a S3FS per il montaggio dello storage sul cloud Amazon S3 come disco di rete in Windows. Tuttavia, in questa sezione utilizzeremo rclone . Rclone è uno strumento da riga di comando che può essere utilizzato per montare e sincronizzare servizi di storage sul cloud, come i bucket Amazon S3, Storage sul cloud di Google, Google Drive, Microsoft OneDrive, DropBox e così via.
Rclone è uno strumento gratuito e open source che può essere scaricato dal sito web ufficiale e da GitHub. È possibile scaricare la versione necessaria di rclone utilizzando uno di questi link:
Utilizziamo il link diretto dal sito web ufficiale:
È possibile utilizzare questa procedura per le versioni più recenti di rclone dopo il loro rilascio. Le seguenti azioni vengono eseguite nell’interfaccia a riga di comando e possono essere utili per gli utenti che utilizzano Windows senza interfaccia grafica su server o macchine virtuali.
- Aprire Windows PowerShell come Amministratore .
- Creare la directory in cui scaricare e archiviare rclone i file:
mkdir c:rclone - Passare alla directory creata:
cd c:rclone - Scaricare rclone utilizzando il link diretto menzionato sopra. Modifica il numero di versione nel link se scarichi un’altra versione.
Invoke-WebRequest -Uri "https://downloads.rclone.org/v1.51.0/rclone-v1.51.0-windows-amd64.zip" -OutFile "c:rclonerclone.zip" - Estrai i file dall’archivio scaricato:
Expand-Archive -path 'c:rclonerclone.zip' -destinationpath '.' - Controlla il contenuto della directory:
dir - I file vengono estratti in C:rclonerclone-v1.51.0-windows-amd64 in questo caso.
NOTA: In questo esempio, il nome della rclone directory dopo l’estrazione dei file è rclone-v1.51.0-windows-amd64 . Tuttavia, non è consigliabile utilizzare i punti (.) nei nomi delle directory. È possibile rinominare la directory in rclone-v1-51-win64 , ad esempio.
- Copiamo i file estratti in C:rclone per evitare punti nel nome della directory:
cp C:rclonerclone-v1.51.0-windows-amd64*.* C:rclone - Eseguiamo rclone in modalità di configurazione:
.rclone.exe config - Il configuratore funziona come una procedura guidata in modalità riga di comando. È necessario selezionare i parametri richiesti in ogni fase della procedura guidata.
- Digitiamo
ne premiamoEnterper selezionare l’opzione Nuovo remoto .n/s/q >
n
- Inseriamo il nome del nostro bucket S3: nome >
blog-bucket01 - Dopo aver inserito il nome, selezionare il tipo di storage sul cloud da configurare. Digitare
4per selezionare l’storage sul cloud Amazon S3.Storage >
4 - Scegliere il proprio provider S3. Digitare
1per selezionare Amazon Web Services S3.provider >
1 - Recupera le credenziali AWS dal runtime (vero o falso).
1(falso) è l’impostazione predefinita. PremereEntersenza digitare nulla per utilizzare il valore predefinito.env_auth >
1 - Inserire la chiave di accesso AWS:
access_key_id >
AKIA4SK3HPQ9FLWO8AMB - Inserire la chiave di accesso segreta:
secret_access_key >
esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzcP

- Regione a cui connettersi. UE (Irlanda) eu-west-1 viene utilizzato per il nostro bucket in questo esempio e dovremmo digitare
6. - Endpoint per l’API S3. Lasciare vuoto se si utilizza AWS per impiegare l’endpoint predefinito per la regione. Premere
Enter.Endpoint >
- Il vincolo di ubicazione deve essere impostato in modo da corrispondere alla regione. Digitare
6per selezionare la regione UE (Irlanda) “eu-west-1”.location_constraint >
6 - ACL predefinita utilizzata durante la creazione di bucket e l’archiviazione o la copia di oggetti. Premere
Enterper utilizzare le impostazioni predefinite.acl >
- Specificare l’ algoritmo di crittografia lato server utilizzata durante l’archiviazione di questo oggetto in S3. Nel nostro caso la crittografia è disabilitata e dobbiamo digitare 1 (Nessuno).
- Se si utilizza un ID KMS, è necessario fornire l’ARN della chiave. Poiché la crittografia non viene utilizzata, digitare
1(Nessuno).sse_kms_key_id >
1 - Selezionare la classe di storage da utilizzare durante l’archiviazione di nuovi oggetti in S3. Immettere un valore di tipo stringa. Nel nostro caso è adatta l’opzione della classe di archiviazione standard (
2). - Modifica la configurazione avanzata? (y/n)
y/n >
n - Controlla la configurazione e digita
y(sì) se tutto è corretto. - Digita
qper uscire dalla procedura guidata di configurazione.e/n/d/r/c/s/q >
q - Rclone è ora configurato per funzionare con l’storage sul cloud Amazon S3. Assicurati che le impostazioni di data e ora sul tuo computer Windows siano corrette. In caso contrario, potrebbe verificarsi un errore durante il montaggio di un bucket S3 come unità di rete sul tuo computer Windows: L’ora potrebbe essere impostata in modo errato. La differenza tra l’ora della richiesta e l’ora corrente è troppo grande .
- Esegui rclone nella directory in cui si trova
rclone.exee visualizza l’elenco dei bucket disponibili per il tuo account AWS:.rclone.exe lsd blog-bucket01: - Puoi inserire
c:rclonenella variabile d’ambientePath. Ciò ti consente di eseguire rclone da qualsiasi directory senza dover passare alla directory in cui è memorizzato rclone.exe. - Come si può vedere nella schermata qui sopra, l’accesso allo storage sul cloud Amazon S3 è configurato correttamente e viene visualizzato un elenco di bucket (incluso il blog-bucket01 utilizzato in questo tutorial).
- Installate Chocolatey , un gestore di pacchetti per Windows che consente di installare applicazioni da repository online:
Set-ExecutionPolicy Bypass -Scope Process -Force; `iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) - WinFSP (Windows File System Proxy) è l’equivalente per Windows del FUSE di Linux: è veloce, stabile e permette di creare file system in modalità utente.
Installate WinFSP dai repository di Chocolatey:
choco install winfsp -y - Ora potete montare il vostro bucket Amazon S3 sul sistema Windows come unità di rete. Montiamo il blog-bucket01 come S:
.rclone mount blog-bucket01:blog-bucket01/ S: --vfs-cache-mode fullDove il primo “blog-bucket” è il nome del bucket inserito nel primo passaggio della procedura guidata di configurazione di rclone e il secondo “blog-bucket”, definito dopo “:”, è il nome del bucket Amazon S3 impostato nell’interfaccia web di AWS.

- Elenca tutti i dischi e le partizioni collegati:
gdr -PSProvider 'FileSystem' - Controlla il contenuto dell’unità di rete mappata:
ls S: - Il bucket S3 è ora montato come unità di rete (S:). Puoi visualizzare tre file txt archiviati nel blog-bucket01 nell’archivio di storage sul cloud Amazon S3 utilizzando un’altra istanza di Windows PowerShell o della riga di comando di Windows.

Se il sistema Windows dispone di un’interfaccia utente grafica, è possibile utilizzarla per scaricare e caricare file sul proprio storage sul cloud Amazon S3. Se si copia un file utilizzando un’interfaccia di Windows (sia essa grafica o a riga di comando), i dati verranno sincronizzati in pochi istanti e il nuovo file sarà visibile sia nell’interfaccia di Windows che nell’interfaccia web di AWS.
Se premi Ctrl+C o chiudi la finestra di CMD o PowerShell in cui rclone è in esecuzione (in quell’istanza di CMD o PowerShell viene visualizzato il messaggio “The service clone has been started”), il tuo bucket Amazon S3 verrà disconnesso dal punto di montaggio (S: in questo caso).
Come automatizzare il montaggio di un bucket S3 all’avvio di Windows
È utile che il bucket venga montato automaticamente come unità di rete all’avvio di Windows. Scopriamo come configurare il montaggio automatico del bucket S3 in Windows.
- Creare il file rclone-S3.cmd nella directory C:rclone .
- Aggiungere la stringa al file rclone-S3.cmd :
C:rclonerclone.exe mount blog-bucket01:blog-bucket01/ S: –vfs-cache-mode full
- Salvare il file CMD. È possibile eseguire questo file CMD invece di digitare manualmente il comando per montare il bucket S3.
- Copiare il file rclone-S3.cmd nella cartella di avvio per tutti gli utenti:
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp
- In alternativa, è possibile creare un collegamento a C:WindowsSystem32cmd.exe e impostare gli argomenti necessari per montare un bucket S3 nelle impostazioni di destinazione:
C:WindowsSystem32cmd.exe /k cd c:rclone e rclone mount blog-bucket01:blog-bucket01/ S: –vfs-cache-mode full
- Aggiungere quindi il collegamento modificato alla cartella di avvio di Windows:
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp
C’è un piccolo inconveniente: dopo aver collegato un bucket S3 al computer Windows come unità di rete, viene visualizzata una finestra della riga di comando con il messaggio “ Il servizio rclone è stato avviato ”. È possibile provare a configurare il montaggio automatico del bucket S3 utilizzando lo scheduler di Windows o NSSM, uno strumento gratuito per creare e configurare i servizi Windows e il loro avvio automatico.
Montaggio di un bucket S3 come file system su macOS
È possibile montare un bucket Amazon S3 su macOS allo stesso modo di Linux. È necessario installare S3FS da macOS e impostare i permessi e le chiavi Amazon.
In questo esempio viene utilizzato macOS 10.15 Catalina. È possibile applicare questo principio di configurazione anche alle versioni più recenti. Il nome del bucket S3 è blog-bucket01 , il nome utente di macOS è user1 , e la directory utilizzata come punto di montaggio per il bucket è /Volumes/s3-bucket/.
Esaminiamo la configurazione passo dopo passo.
-
<li> Installa homebrew , che è un gestore di pacchetti per macOS utilizzato per installare applicazioni da repository software online:
- Installa osxfuse :
brew cask install osxfuse - Riavvia il sistema:
sudo shutdown -r now - Installa S3FS:
brew install s3fs - Una volta installato S3FS, imposta la chiave di accesso e la chiave segreta per il tuo bucket Amazon S3. Puoi definire le chiavi per la sessione corrente se devi montare il bucket una sola volta o se prevedi di farlo solo occasionalmente:
export AWSACCESSKEYID=AKIA4SK3HPQ9FLWO8AMBexport AWSSECRETACCESSKEY=esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzP - Se intendi utilizzare un bucket montato regolarmente, imposta le tue chiavi AWS nel file di configurazione utilizzato da S3FS per il tuo account utente macOS:
echo AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzP > ~/.passwd-s3fs - Se si dispone di più bucket e chiavi per accedervi, definirli nel formato:
echo bucket-name:access-key:secret-key > ~/.passwd-s3fs - Impostare i permessi corretti per consentire l’accesso in lettura e scrittura solo al proprietario:
chmod 600 ~/.passwd-s3fs - Creare una directory da utilizzare come punto di montaggio per il bucket Amazon S3:
sudo mkdir -p /Volumes/s3-bucket/ - Il proprio account utente deve essere impostato come proprietario della directory creata:
sudo chown user1 /Volumes/s3-bucket/

- Montare il bucket con S3FS:
s3fs blog-bucket01 /Volumes/s3-bucket/ - Nella finestra di dialogo viene visualizzata l’avvertenza di sicurezza di macOS. Fare clic su
Open System Preferencesper autorizzare l’applicazione S3FS e le connessioni correlate.

- Nella finestra Sicurezza e privacy fare clic sul lucchetto per apportare modifiche, quindi premere il pulsante
Allow.
- Eseguire nuovamente il comando di montaggio:
s3fs blog-bucket01 /Volumes/s3-bucket/ - Viene visualizzato un messaggio di avvertenza: Terminal desidera accedere ai file su un volume di rete .
- Verificare se il bucket è stato montato:
mount | grep bucket - Controllare il contenuto del bucket:
ls -al /Volumes/s3-bucket/ - Il bucket è stato montato correttamente. È possibile visualizzare, copiare ed eliminare i file presenti nel bucket.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
È possibile provare a configurare il montaggio di un bucket S3 all’accesso dell’utente con launchd .
Conclusione
Una volta appreso come montare l’archivio cloud Amazon S3 come file system sui sistemi operativi più diffusi, la condivisione dei file con Amazon S3 diventa più comoda. Un bucket Amazon S3 può essere montato utilizzando S3FS su Linux e macOS e utilizzando rclone o wins3fs su Windows. Automatizzare il processo di copia dei dati nei bucket Amazon S3 dopo averli montati nelle directory locali del proprio sistema operativo è più pratico rispetto all’utilizzo dell’interfaccia web.
È possibile copiare i propri dati su Amazon S3 per creare un backup utilizzando l’interfaccia del proprio sistema operativo. Si può provare a utilizzare applicazioni di backup dedicate che utilizzano le API AWS per accedere ai bucket S3. NAKIVO Backup & Replication è una soluzione completa per la protezione dei dati con supporto integrato per i bucket S3 come destinazioni di backup. È possibile utilizzare questa soluzione per eseguire il backup dei dati presenti nelle macchine virtuali VMware, Hyper-V e nelle istanze di EC2 su Amazon S3.














