Чи є спосіб підключення до відра Amazon S3 за допомогою FTP або SFTP, а не вбудованого інтерфейсу передачі файлів Amazon в консолі AWS? Здається дивним, що це не доступний варіант.
Чи є спосіб підключення до відра Amazon S3 за допомогою FTP або SFTP, а не вбудованого інтерфейсу передачі файлів Amazon в консолі AWS? Здається дивним, що це не доступний варіант.
Відповіді:
Є три варіанти.
На консолі Amazon AWS перейдіть до AWS Transfer для SFTP та створіть новий сервер.
На сторінці сервера SFTP додайте нового користувача SFTP (або користувачів).
Дозволи користувачів керуються відповідною роллю AWS у сервісі IAM (для швидкого запуску можна скористатися політикою AmazonS3FullAccess ).
Роль повинна мати стосунки довіри transfer.amazonaws.com
.
Докладніше див. У моєму посібнику Налаштування доступу SFTP до Amazon S3 .
Просто встановіть відро за допомогою s3fs
файлової системи (або подібної) до сервера Linux (наприклад, Amazon EC2) і використовуйте вбудований сервер SFTP для доступу до вікна.
s3fs
access-key-id:secret-access-key
до/etc/passwd-s3fs
Додати запис для монтажу відра до fstab
:
<bucket> /mnt/<bucket> fuse.s3fs rw,nosuid,nodev,allow_other 0 0
Докладніше див. У моєму посібнику Налаштування доступу SFTP до Amazon S3 .
Або використовуйте будь-який безкоштовний "FTP / SFTP-клієнт" , це також "клієнт S3" , і у вас нічого не встановлено на стороні сервера. Наприклад, мій WinSCP або Cyberduck .
WinSCP має навіть сценарії та інтерфейс .NET / PowerShell , якщо вам потрібно автоматизувати передачі.
root
дасть пізніше permission denied
проблеми з передачею при з'єднанні з ec2-user
допомогою SFTP. /mnt/<bucket>
Папка належить root
і є групою root
.
allow_other
(або -o allow_other
якщо монтується з командного рядка s3fs) .. працює для мене. Це також гарна ідея записувати файли як дозволи лише для читання (-o default_acl = public-read) у моєму випадку (на приватному відрі).
Оновлення
Тепер S3 пропонує повністю керовану службу шлюзу SFTP для S3, яка інтегрується з IAM і може управлятися за допомогою aws-cli.
Є теоретичні та практичні причини, чому це не ідеальне рішення, але воно працює ...
Ви можете встановити послугу FTP / SFTP (наприклад, proftpd) на Linux-сервер, або в EC2, або у власному центрі даних ..., а потім встановити відро у файлову систему, де ftp-сервер налаштований для хронування , використовуючи s3fs .
У мене є клієнт, який обслуговує вміст поза S3, і вміст надається їм третьою стороною, яка підтримує лише FTP-натискання ... так, з деяким ваганням (через невідповідність імпедансу між S3 та фактичною файловою системою), але не вистачає час, щоб написати належний пакет програмного забезпечення для сервера шлюзів FTP / S3 (який я все-таки маю намір зробити в ці дні), я запропонував і розгорнув це рішення для них кілька місяців тому, і вони не повідомили про проблеми з системою.
Як бонус, оскільки proftpd може вписати кожного користувача у його власний домашній каталог та "зробити вигляд" (наскільки користувач може сказати), що файли, які належать користувачеві proftpd, власне зареєстровані користувачі, це відокремлює кожного користувача ftp у "підкаталог" відра та робить файли інших користувачів недоступними.
Однак існує проблема з конфігурацією за замовчуванням.
Після того, як ви почнете отримувати кілька десятків чи сотень файлів, проблема виявиться, коли ви перетянете список каталогів, оскільки ProFTPd буде намагатися читати .ftpaccess
файли знову і знову, і знову, і для кожного файлу в каталозі, .ftpaccess
перевіряється, чи слід дозволити користувачеві переглядати його.
Ви можете відключити цю поведінку в ProFTPd, але я б сказав, що найбільш правильною конфігурацією є налаштування додаткових параметрів -o enable_noobj_cache -o stat_cache_expire=30
у s3fs:
-o stat_cache_expire
(за замовчуванням термін дії не закінчується)вкажіть час закінчення (секунд) для записів у кеш статі
Без цієї опції ви будете робити менше запитів до S3, але ви також не завжди будете надійно виявляти зміни, внесені до об'єктів, якщо зовнішні процеси або інші екземпляри s3fs також змінюють об'єкти у відрі. Значення "30" у моїй системі було вибрано дещо довільно.
-o enable_noobj_cache
(за замовчуванням вимкнено)включити записи кеша для об'єкта, якого не існує. s3fs завжди повинен перевірити, чи існує файл (або підкаталог) під об'єктом (шлях), коли s3fs виконує якусь команду, оскільки s3fs розпізнав каталог, який не існує, і має файли чи підкаталоги. Це збільшує запит ListBucket і робить продуктивність поганою. Ви можете вказати цей параметр для продуктивності, s3fs запам'ятовує в кеш статі, що об'єкт (файл або каталог) не існує.
Ця опція дозволяє s3fs пам'ятати, що .ftpaccess
його там не було.
Не пов'язані з проблемами продуктивності, які можуть виникнути з ProFTPd, які вирішуються вищезазначеними змінами, вам також потрібно включити -o enable_content_md5
в s3fs.
-o enable_content_md5
(за замовчуванням вимкнено)перевірка завантажених даних без багаточастин заголовок content-md5. Увімкнути надсилання заголовка "Content-MD5" під час завантаження об'єкта без багаточастинної публікації. Якщо цей параметр включений, він має певний вплив на продуктивність s3fs під час завантаження невеликого об’єкта. Оскільки s3fs завжди перевіряє MD5 під час завантаження великого об'єкта, ця опція не впливає на великий об'єкт.
Це варіант, який ніколи не повинен був бути варіантом - він повинен бути завжди увімкнутим, оскільки це не обходить критичну перевірку цілісності лише на незначну користь від продуктивності. Коли об'єкт буде завантажено в S3 із Content-MD5:
заголовком, S3 перевірить контрольну суму і відхилить об'єкт, якщо він пошкоджений під час транзиту. Однак це навряд чи може бути недалеко відключеним перевірку безпеки.
Котирування зі сторінки man в s3fs. Граматичні помилки є в оригінальному тексті.
sudo s3fs bucket-name /local-mount-folder-name/ -o iam_role=sftp-server -o allow_other -o umask=022 -o uid=501 -o gid=501
- я не можу змінити жодних дозволів на папки в папці Mounted S3 після її створення.
Відповідь 2014 року для людей, які мене голосують:
Ну, S3 - це не FTP. Однак є багато і багато клієнтів, які підтримують S3.
Практично кожен помітний FTP-клієнт на OS X має підтримку, включаючи Transmit та Cyberduck .
Якщо у вас є Windows, подивіться на Cyberduck або CloudBerry .
Оновлена відповідь на 2019 рік:
Нещодавно AWS випустила службу передачі AWS для SFTP , яка може робити те, що ви шукаєте.
Або відкрутити екземпляр Linux для шлюзу SFTP у вашій інфраструктурі AWS, який зберігає завантажені файли у відро Amazon S3.
За підтримки Thorntech
Filezilla щойно випустила Pro версію свого FTP-клієнта. Він підключається до відра S3 у впорядкованому досвіді FTP. Я використовую його сам (ніякої приналежності немає), і він чудово працює.
WinSCp тепер підтримує протокол S3
По-перше, переконайтеся, що у вашого користувача AWS з дозволом доступу S3 створено "Ідентифікатор ключа доступу". Ви також повинні знати "секретний ключ доступу". Клавіші доступу створюються та керуються на сторінці Користувачів консолі управління IAM.
Переконайтесь, що вибрано новий вузол сайту.
На вузлі Новий сайт виберіть протокол Amazon S3.
Введіть свій ідентифікатор ключа доступу AWS та секретний ключ доступу
Збережіть налаштування свого сайту за допомогою кнопки «Зберегти».
Увійти за допомогою кнопки Вхід.
Amazon випустив SFTP-сервіси для S3, але вони роблять лише SFTP (не FTP чи FTPES), і вони можуть бути непомірними, залежно від ваших обставин.
Я Засновник DocEvent.io , і ми надаємо FTP / S шлюзи для вашого відра S3 без необхідності спінінгувати сервери та турбуватися про інфраструктуру.
Є також інші компанії, які надають автономний FTP-сервер, який ви платите за місяць, який може підключитися до відра S3 через конфігурацію програмного забезпечення, наприклад brickftp.com .
Нарешті, є також додатки AWS Marketplace, які можуть допомогти, ось посилання на пошук . Багато з цих примірників у вашій власній інфраструктурі - це означає, що вам доведеться самостійно керувати та модернізувати екземпляри, що може важко підтримувати та конфігурувати з часом.
Як вказували інші афіші, існують деякі обмеження щодо передачі AWS для послуги SFTP. Вам потрібно уважно вирівняти вимоги. Наприклад, немає жодних квот, білих списків / чорних списків, обмежень типу файлів та доступу, не заснованих на ключах, потрібні зовнішні служби. Існує також певна накладні витрати, пов'язані з управлінням користувачами та IAM, які можуть бути больовими.
У нас запущений шлюз проксі SFTP S3 близько 5 років використовуємо для своїх клієнтів. Основне рішення загортається в колекцію Docker-сервісів і розгортається в будь-якому контексті, навіть на локальних або локальних серверах розробки. Випадок використання для нас дещо відрізняється, оскільки наше рішення - це орієнтована обробка даних та конвеєри проти спільного використання файлів. У прикладі Salesforce клієнт буде використовувати SFTP як спосіб транспортування відправки електронної пошти, придбання ... даних до точки SFTP / S3. Це відображено об'єктний ключ на S3. Після прибуття дані збираються, обробляються, маршрутизуються та завантажуються на склад. У нас також є досить значні вимоги до аудиту для кожної передачі, те, що журнали Cloudwatch для AWS безпосередньо не передбачені.
Як уже згадували інші, прокатка власних вагонів також є варіантом. Використовуючи AWS Lightsail, ви можете встановити кластер, скажімо, 4, екземпляри $ 10 2 ГБ, використовуючи Route 53 або ELB.
Взагалі, чудово бачити, як AWS пропонує цю послугу, і я очікую, що вона з часом визріє. Однак, залежно від випадку використання, альтернативні рішення можуть бути більш підходящими.