Differences
This shows you the differences between the selected revisions of the page.
guide_amazon_s3_sftp 2018-11-27 | guide_amazon_s3_sftp 2023-05-30 (current) | ||
Line 2: | Line 2: | ||
//Note that WinSCP supports a [[guide_amazon_s3|direct access to S3 storage]]//. | //Note that WinSCP supports a [[guide_amazon_s3|direct access to S3 storage]]//. | ||
- | If you need to access/manage files stored on Amazon S3 (Simple Storage Service) bucket via SFTP, you can mount the bucket to a file system on a Linux server and access the files using the SFTP as any other files on the server. | + | If you need to access/manage files stored on Amazon S3 (Simple Storage Service) bucket via SFTP, there are two options. You can use a native managed SFTP service recently added by Amazon (which is easier to set up). Or you can mount the bucket to a file system on a Linux server and access the files using the SFTP as any other files on the server (which gives you greater control). |
+ | |||
+ | ===== [[managed]] Managed SFTP Service ===== | ||
+ | |||
+ | ==== Creating Managed SFTP Server ==== | ||
+ | |||
+ | * To create a Managed SFTP server for S3, in your Amazon AWS Console, go to [[https://console.aws.amazon.com/transfer|AWS Transfer for SFTP]] and create a new server (you can keep server options to their defaults for a start). | ||
+ | * In SFTP server page, add a new SFTP user (or users). | ||
+ | * Permissions of users are governed by an associated [[https://console.aws.amazon.com/iamv2/#/roles|AWS role]] in IAM service. To create a role which has a full access to all your S3 buckets, just create an //S3// service role with //AmazonS3FullAccess// policy. \\ The role must have trust relationship to ''transfer.amazonaws.com''. On a role page, select //Trust relationships// tab, click //Edit trust relationship// button, and in the access control policy JSON document, change ''Statement[].Principal.Service'' value to ''transfer.amazonaws.com'':((Based on the answer by @ChristopherTull to [[https://stackoverflow.com/q/53642132/850848#53648926|Connecting to AWS Transfer for SFTP]] on Stack Overflow.)) \\ <code php> | ||
+ | { | ||
+ | "Version": "2012-10-17", | ||
+ | "Statement": [ | ||
+ | { | ||
+ | "Effect": "Allow", | ||
+ | "Principal": { | ||
+ | "Service": "transfer.amazonaws.com" | ||
+ | }, | ||
+ | "Action": "sts:AssumeRole" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </code> | ||
+ | * [[public_key#generate|Generate a key pair]] for your new user and paste public key fingerprint to //%%SSH%% public keys// box (use the format you would otherwise use for [[guide_public_key#configure_openssh|OpenSSH ''authorized_keys'' file]]). | ||
+ | |||
+ | ==== Connecting to Managed SFTP Server ==== | ||
+ | |||
+ | You can connect to the managed SFTP server as to any other SFTP server. | ||
+ | |||
+ | The host name of the server can be found on the server page as //Endpoint// in a format ''server_id.server.transfer.region.amazonaws.com''. | ||
+ | |||
+ | ===== [[mounting]] Mounting Bucket to Linux Server ===== | ||
This guide shows how to mount the %%S3%% bucket using [[https://github.com/s3fs-fuse/s3fs-fuse|''s3fs'' file system]] to an Amazon EC2 server and access it using WinSCP. | This guide shows how to mount the %%S3%% bucket using [[https://github.com/s3fs-fuse/s3fs-fuse|''s3fs'' file system]] to an Amazon EC2 server and access it using WinSCP. | ||
- | ===== Creating Access Server ===== | + | ==== Creating Access Server ==== |
- | If you do not have a Linux server available for the mounting, [[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html|launch a new Amazon EC2 server]]. | + | If you do not have a Linux server available for the mounting, [[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html|launch a new Amazon EC2 server]]. |
A basic Amazon Linux AMI (free tier eligible) server will generally suffice and the following instructions are tested on this distribution. Instructions for other distributions may differ. | A basic Amazon Linux AMI (free tier eligible) server will generally suffice and the following instructions are tested on this distribution. Instructions for other distributions may differ. | ||
- | ===== Installing s3fs ===== | + | ==== Installing s3fs ==== |
- | Start by [[https://github.com/s3fs-fuse/s3fs-fuse#user-content-installation-from-pre-built-packages|installing ''s3fs'' file system]]. | + | Start by [[https://github.com/s3fs-fuse/s3fs-fuse#installation|installing ''s3fs'' file system]]. |
- | ===== Mounting S3 Bucket to File System ===== | + | ==== Mounting S3 Bucket to File System ==== |
* Switch to ''root'': \\ ''sudo su'' | * Switch to ''root'': \\ ''sudo su'' | ||
Line 23: | Line 53: | ||
* Mount the bucket: \\ ''mount -a'' | * Mount the bucket: \\ ''mount -a'' | ||
- | ===== Connecting to the Access Server to Manage the Bucket ===== | + | ==== Connecting to the Access Server to Manage the Bucket ==== |
* Learn how to [[guide_amazon_ec2|connect securely to Amazon EC2 server with SFTP]]. | * Learn how to [[guide_amazon_ec2|connect securely to Amazon EC2 server with SFTP]]. |