Amazon S3 Bölümüne FTP / SFTP erişimi [kapalı]


146

AWS konsolundaki yerleşik Amazon dosya aktarım arabirimi yerine FTP veya SFTP ile bir Amazon S3 grubuna bağlanmanın bir yolu var mı? Bunun hazır bir seçenek olmaması garip görünüyor.


2
Kasım 2018'de yayımlanan AWS , dosyaların doğrudan Amazon S3'e ve dışına aktarılmasını sağlayan tamamen yönetilen SFTP Hizmetini yayınladı . SFTP için AWS Transferi
mitaka

Yanıtlar:


101

Üç seçenek vardır.

  • Amazon tarafından yakın zamanda eklenen yerel bir SFTP hizmetini kullanabilirsiniz (kurulumu daha kolaydır).
  • Veya, grubu bir Linux sunucusundaki bir dosya sistemine bağlayabilir ve SFTP'yi sunucudaki diğer dosyalar gibi kullanarak dosyalara erişebilirsiniz (bu da size daha fazla kontrol sağlar).
  • Veya S3 protokolünü (ücretsiz olan) yerel olarak destekleyen bir (GUI) istemcisi kullanabilirsiniz.

Yönetilen SFTP Hizmeti

  • Amazon AWS Konsolunuzda, SFTP için AWS Aktarımı'na gidin ve yeni bir sunucu oluşturun.

  • SFTP sunucusu sayfasında yeni bir SFTP kullanıcısı (veya kullanıcıları) ekleyin.

    • Kullanıcıların izinleri, IAM hizmetindeki ilişkili bir AWS rolü tarafından yönetilir (hızlı bir başlangıç ​​için AmazonS3FullAccess ilkesini kullanabilirsiniz ).

    • Rolün bir güven ilişkisi olmalıdır transfer.amazonaws.com.

Ayrıntılar için Amazon S3'e SFTP erişimi kurma kılavuzum'a bakın .


Linux Server'a Kova Montajı

Sadece kova kullanarak monte s3fsLinux sunucusuna (örneğin Amazon EC2) dosya sistemini (veya benzeri) ve erişim için kova sunucunun yerleşik SFTP sunucusu kullanmak.

  • Yükle s3fs
  • Bir forma güvenlik kimlik ekleyin access-key-id:secret-access-keyetmek/etc/passwd-s3fs
  • Bir kova montaj girişi ekleyin fstab:

    <bucket> /mnt/<bucket> fuse.s3fs rw,nosuid,nodev,allow_other 0 0
    

Ayrıntılar için Amazon S3'e SFTP erişimi kurma kılavuzum'a bakın .


S3 İstemcisini Kullan

Veya herhangi bir "S3 istemcisi" olan herhangi bir ücretsiz "FTP / SFTP istemcisi" kullanın ve sunucu tarafında herhangi bir kurulum yapmanız gerekmez. Örneğin, benim WinSCP veya Cyberduck .

Transferleri otomatikleştirmeniz gerekiyorsa WinSCP'nin komut dosyası ve .NET / PowerShell arayüzü bile vardır .


2
Kovanın monte edilmesi root, SFTP permission deniedile ec2-userbağlanırken daha sonra aktarım sorunları sağlar . /mnt/<bucket>klasörün sahibi rootve grubu rootda var.
elvismdev

1
@elvismdev / others - ftp kullanıcısı olarak bağla (uid / gid seçeneklerini kullanarak) ve monte edildiğinden emin olun allow_other(veya -o allow_others3fs komut satırından montaj yapılıyorsa) benim için çalışıyor. Dosyaları, benim durumumda (özel bir grupta) salt okunur izinler (-o default_acl = public-read) olarak yazmak da iyi bir fikirdir.
bshea

66

Güncelleme

S3 artık S3 için IAM ile entegre olan ve aws-cli kullanılarak yönetilebilen tam yönetilen bir SFTP Ağ Geçidi Hizmeti sunuyor .


Bunun mükemmel bir çözüm olmamasının teorik ve pratik nedenleri var, ama işe yarıyor ...

EC2'de veya kendi veri merkezinizde bir linux sunucusuna bir FTP / SFTP hizmeti (proftpd gibi) yükleyebilirsiniz ... daha sonra ftp sunucusunun s3fs kullanarak chot için yapılandırıldığı dosya sistemine bir kova monte edebilirsiniz .

S3 dışında içerik sunan bir istemcim var ve içerik onlara yalnızca ftp itmelerini destekleyen bir 3. taraf tarafından sağlanıyor ... yani, biraz tereddütle (S3 ile gerçek bir dosya sistemi arasındaki empedans uyumsuzluğu nedeniyle) ama eksik uygun bir FTP / S3 ağ geçidi sunucusu yazılım paketi yazma zamanı (hala bu günlerden birini yapmak niyetindeyim), birkaç ay önce bu çözümü önerdim ve dağıttım ve sistemle ilgili herhangi bir sorun bildirmediler.

Bonus olarak, proftpd her kullanıcıyı kendi giriş dizinine bağlayabildiğinden ve proftpd kullanıcısının sahip olduğu dosyaların oturum açmış kullanıcının sahip olduğunu "taklit" edebildiğinden, bu her ftp kullanıcısını grubun bir "alt dizini" olarak adlandırılır ve diğer kullanıcıların dosyalarına erişilemez hale gelir.


Ancak varsayılan yapılandırmada bir sorun var.

Onlarca veya yüzlerce dosya almaya başladığınızda, bir dizin listesini çektiğinizde sorun kendini gösterecektir, çünkü ProFTPd .ftpaccessdosyaları tekrar tekrar ve tekrar tekrar ve dizindeki her dosya için okumaya çalışacaktır. .ftpaccesskullanıcının görüntülemesine izin verilip verilmeyeceğini görmek için işaretlenir.

ProFTPd'de bu davranışı devre dışı bırakabilirsiniz, ancak en doğru yapılandırmanın -o enable_noobj_cache -o stat_cache_expire=30s3fs'de ek seçenekleri yapılandırmak olduğunu öneririm:

-o stat_cache_expire (varsayılan süre dolmaz)

stat önbelleğindeki girişler için sona erme süresini (saniye) belirtme

Bu seçenek olmadan, S3'e daha az istekte bulunursunuz, ancak harici işlemler veya diğer s3fs örnekleri de kovadaki nesneleri değiştiriyorsa, nesnelerde yapılan değişiklikleri her zaman güvenilir bir şekilde keşfedemezsiniz. Sistemimdeki "30" değeri biraz keyfi seçildi.

-o enable_noobj_cache (varsayılan devre dışıdır)

var olmayan nesne için önbellek girdilerini etkinleştirin. s3fs her zaman komut (s3fs) komutunu verdiğinde dosya (ya da alt dizinin) var olup olmadığını kontrol etmelidir, çünkü s3fs mevcut olmayan ve kendi altında dosya ya da alt dizinleri olan bir dizini tanıdı. ListBucket isteğini artırır ve performansı kötü yapar. Performans için bu seçeneği belirleyebilirsiniz, s3fs stat önbelleğinde nesnenin (dosya veya dizin) mevcut olmadığını ezberler.

Bu seçenek s3fs'nin orada .ftpaccessolmadığını hatırlamasını sağlar .


Yukarıdaki değişikliklerle çözülen ProFTPd ile ortaya çıkabilecek performans sorunları ile ilgili olarak, s3fs'de de etkinleştirmeniz gerekir -o enable_content_md5.

-o enable_content_md5 (varsayılan devre dışıdır)

content-md5 üstbilgisine göre çok parçalı olmadan yüklenen verilerin doğrulanması. Çok parçalı yayın olmadan bir nesne yüklerken "Content-MD5" başlığını göndermeyi etkinleştirin. Bu seçenek etkinleştirilirse, küçük nesne yüklerken s3fs'nin performansı üzerinde bazı etkileri vardır. Büyük nesne yüklerken s3fs her zaman MD5'i kontrol ettiğinden, bu seçenek büyük nesneyi etkilemez.

Bu, hiçbir zaman bir seçenek olmaması gereken bir seçenektir - her zaman etkinleştirilmelidir, çünkü bunu yapmamak sadece ihmal edilebilir bir performans avantajı için kritik bir bütünlük kontrolünü atlar. Bir nesne bir Content-MD5:başlık ile S3'e yüklendiğinde , S3 sağlama toplamını doğrular ve taşıma sırasında bozulmuşsa nesneyi reddeder. Her ne kadar olası olmasa da, bu güvenlik kontrolünü devre dışı bırakmak kısa görüşlü gibi görünüyor.

Alıntılar s3fs'in man sayfasından. Dilbilgisi hataları orijinal metindir.


4
bu çözümün ideal olmamasının nedenlerini açıklayabilir misiniz?
fernio

2
@ MarcoMarsala cevaba büyük dizinler için düzeltmeler eklendi.
Michael - sqlbot

1
@ Michael-sqlbot ".ftpaccess" dosyalarını tamamen okumaya çalışmayı durdurmak için ProFTPd yapılandırmada "AllowOverride off" yönergesini kullanmaya çalıştınız mı?
Greg Dubicki

1
Her şeyi denedim ve sadece kullanıcı: grup / izinler S3 kova monte klasör düzeyinde ayarlayabilirsiniz. Ardından bu izinler S3'teki her klasöre yayılır. Bu S3FS komutunda birçok varyasyon da dahil olmak üzere birçok şeyi denedim 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- Oluşturulduktan sonra Mounted S3 klasöründeki klasörlerde herhangi bir izni değiştiremiyorum.
T. Brian Jones,

1
@Sverre Bu çözümü hala üretimde kullanıyorum. Bana hiç problem vermiyor.
Michael - sqlbot

24

2014'ten aşağı oy kullanan insanlar için cevap:

S3 FTP değil. Bununla birlikte, S3'ü destekleyen çok sayıda istemci var.

OS X'teki kayda değer her FTP istemcisinin Transmit ve Cyberduck dahil olmak üzere desteği vardır .

Windows kullanıyorsanız, Cyberduck veya CloudBerry'ye bakın .

2019 için cevap güncellendi:

AWS yakın zamanda aradığınız şeyi yapabilen AWS için AWS Aktarımı hizmetini yayınladı .


2
Benim gibi bir sunucu acemi iseniz Cyberduck fevkalade kolay çalışır. Bağlantı Aç'a tıklamanız, açılır menüden S3'ü seçmeniz ve kimlik bilgilerimi girmeniz yeterlidir. Yukarıda belirtilen seçeneklerden çok daha kolay!
Marquizzo

7

Veya AWS altyapınızda yüklenen dosyaları Amazon S3 grubunuza kaydeden SFTP Gateway için Linux örneğini döndürün .

Thorntech tarafından desteklenmektedir


2
SFTP Ağ Geçidi'ni birkaç yıldır büyük projeler için üretiyoruz. Bunu s3fs'den daha güvenilir bulduk
Jeff

3

Filezilla , FTP istemcilerinin Pro sürümünü yayınladı . Kolaylaştırılmış bir FTP benzeri deneyimde S3 kovalarına bağlanır. Kendim kullanıyorum (hiçbir bağlantı yok) ve harika çalışıyor.


3

WinSCp artık S3 protokolünü destekliyor

İlk olarak, S3 erişim izinlerine sahip AWS kullanıcınızda bir "Erişim anahtarı kimliği" oluşturulduğundan emin olun. Ayrıca “Gizli erişim anahtarı” nı da bilmeniz gerekir. Erişim anahtarları IAM Yönetim Konsolu'nun Kullanıcılar sayfasında oluşturulur ve yönetilir.

Yeni site düğümü seçildiğinden emin olun.

Yeni site düğümünde Amazon S3 protokolünü seçin.

AWS kullanıcı Erişim anahtarı kimliğinizi ve Gizli erişim anahtarınızı girin

Kaydet düğmesini kullanarak site ayarlarınızı kaydedin.

Giriş düğmesini kullanarak giriş yapın.


2

Amazon, S3 için SFTP hizmetleri yayınladı, ancak yalnızca SFTP (FTP veya FTPES değil) yapıyorlar ve koşullarınıza bağlı olarak maliyet engelleyici olabilirler.

DocEvent.io'nun Kurucusuyum ve sunucuları döndürmek veya altyapı hakkında endişelenmek zorunda kalmadan S3 grubunuz için FTP / S Ağ Geçitleri sağlıyoruz.

Yazılım yapılandırması yoluyla bir S3 grubuna bağlanabilen aya göre ödediğiniz bağımsız bir FTP sunucusu sağlayan başka şirketler de vardır, örneğin brickftp.com .

Son olarak, yardımcı olabilecek bazı AWS Marketplace uygulamaları da var, işte bir arama bağlantısı . Bu altyapılardaki bu örneklerin çoğu - bu, zaman içinde bakımı ve yapılandırılması zor olabilecek örnekleri kendiniz yönetmeniz ve yükseltmeniz gerektiği anlamına gelir.


DocEvents iyi görünüyor ama ücretsiz plan üzerinde çok fazla kısıtlama var ... Ben bile hizmet
deneyemedim

1

Diğer posterlerin de işaret ettiği gibi, SFTP hizmeti için AWS Transferi ile ilgili bazı sınırlamalar vardır. Gereksinimleri yakından hizalamanız gerekir. Örneğin, kotalar, beyaz listeler / kara listeler, dosya türü sınırları yoktur ve anahtar tabanlı olmayan erişim için harici hizmetler gerekir. Ayrıca, kullanıcı yönetimi ve IAM ile ilgili, belirli bir acıya neden olabilecek belirli bir ek yük de vardır.

Müşterilerimiz için yaklaşık 5 yıldır SFTP S3 Proxy Gateway çalıştırıyoruz . Temel çözüm, bir Docker hizmetleri koleksiyonuna sarılır ve şirket içi veya yerel geliştirme sunucuları dahil olmak üzere, ihtiyaç duyulan her bağlamda dağıtılır. Bizim için kullanım durumu biraz farklıdır çünkü çözümümüz veri işleme ve dosya paylaşımına karşı boru hatlarıdır. Salesforce örneğinde, müşteri SFTP / S3 enpoint'e e-posta, satın alma ... verileri gönderme aktarım yöntemi olarak SFTP'yi kullanacaktır. Bu, S3'te bir nesne anahtarı ile eşlenir. Varışta, veriler alınır, işlenir, yönlendirilir ve bir depoya yüklenir. Ayrıca, AWS için Cloudwatch günlüklerinin doğrudan sağlamadığı her transfer için oldukça önemli denetim gereksinimlerimiz var.

Diğerlerinin de belirttiği gibi, kendiniz haddeleme de bir seçenektir. AWS Lightsail'i kullanarak Route 53 veya ELB kullanarak 4 $ 'lık 10GB'lık 2GB'lık bir küme oluşturabilirsiniz.

Genel olarak, AWS'nin bu hizmeti sunduğunu görmek harika ve zaman içinde olgunlaşmasını bekliyorum. Bununla birlikte, kullanım durumunuza bağlı olarak, alternatif çözümler daha uygun olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.