Bu yazıda IAM kullanıcı bilgilerini kullanarak WinSCP üzerinden AWS S3 dosyalarını görüntülemeyi ve indirmeyi anlatıyorum. Orijinal anlatım public ve private S3 bucket davranışını da karşılaştırdığı için önce iki bucket hazırlanıyor, ardından IAM access key bilgileriyle WinSCP bağlantısı kuruluyor.
Temel fikir şu: dosyalar S3 üzerinde durur, kimin erişeceğini IAM belirler, WinSCP ise IAM access key ID ve secret access key bilgilerini kullanarak S3 istemcisi gibi bağlanır.
İçindekiler
İçindekileri aç
S3 Bucket Oluşturma
Amazon S3 Buckets sayfasından başlayıp public erişim testi için bir bucket oluşturun. S3 bucket adları global olarak benzersiz olmalıdır; bu yüzden ekran görüntüsündeki örnek ad yerine kendi bucket adınızı kullanmanız gerekir.
Bu ekranda S3 bucket adı girme ve AWS region seçme adımını görüyoruz.
Public bucket testi için Block all public access seçeneğini kapatıp uyarıyı onaylayın. Bu adım yalnızca public object access davranışını görmek içindir. Gerçek projelerde bucket gerçekten public asset sunmuyorsa public access kapalı kalmalıdır.
Bu ekranda Bucket versioning, tags, encryption ayarlarını inceleyip S3 bucket oluşturma adımını görüyoruz.
Bucket oluşturulduktan sonra bucket listesinden açın ve Permissions sekmesine geçin. Bir bucket’ın public olarak okunabilmesi için public access ayarı ile bucket policy birlikte doğru yapılandırılmalıdır.
Bu ekranda S3 bucket Permissions sekmesini açma adımını görüyoruz.
Bu ekranda Public S3 bucket için bucket policy editor ekranını açma adımını görüyoruz.
Örnek policy, bucket içindeki tüm objeler için public read izni verir. example-bucket-ex kısmını kendi bucket adınızla değiştirmelisiniz:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::example-bucket-ex/*"]
}
]
}
Bu ekranda Boş S3 bucket policy editor ekranını açma adımını görüyoruz.
Bu ekranda S3 objeleri için public read bucket policy ekleme adımını görüyoruz.
Bu ekranda S3 bucket policy değişikliklerini kaydetme adımını görüyoruz.
Policy kaydedildiğinde bucket permissions ekranında bucket’ın public erişilebilir olduğu görünür.
Karşılaştırma için ikinci bir bucket oluşturun. Bu kez Block all public access ayarını açık bırakın. Böylece daha sonra biri public, biri private olmak üzere iki bucket üzerinden erişim farkını görebilirsiniz.
Bu ekranda Private S3 bucket için Block all public access ayarını açık bırakma adımını görüyoruz.
Bu ekranda Public ve private S3 bucket’ları bucket listesinde görüntüleme adımını görüyoruz.
S3 Erişimi İçin IAM Kullanıcısı Oluşturma
WinSCP’nin S3’e bağlanabilmesi için kimlik doğrulaması yapabilecek credential bilgilerine ihtiyacı vardır. Bu örnekte programmatic access için bir IAM kullanıcısı oluşturup S3 policy bağlıyorum.
Bu ekranda IAM Users sayfasını açma adımını görüyoruz.
Bu ekranda IAM Add users akışını başlatma adımını görüyoruz.
Bir user name girin ve access key tabanlı programmatic access seçeneğini işaretleyin. İşlem sonunda oluşacak access key ID ve secret access key bilgileri WinSCP içinde kullanılacaktır.
Gerekli S3 izinlerini ekleyin. Orijinal örnekte demo kolaylığı için AmazonS3FullAccess kullanılmış. Gerçek bir projede ise yalnızca gerekli bucket ve action izinlerini içeren daha dar bir policy tercih edilmelidir.
Bu ekranda Demo IAM kullanıcısı için AmazonS3FullAccess policy seçme adımını görüyoruz.
Bu ekranda IAM user tags adımını boş geçme adımını görüyoruz.
IAM kullanıcı ayarlarını gözden geçirip kullanıcıyı oluşturun. Oluşturma sonrasında credential bilgilerini hemen indirin veya kopyalayın. Secret access key hassastır; source control’e eklenmemeli, ekran görüntülerinde paylaşılmamalı ve düz metin olarak korunmasız saklanmamalıdır.
Bu ekranda Oluşturulan IAM kullanıcı credential dosyasını indirme adımını görüyoruz.
Bu ekranda Hassas değerleri gizlenmiş IAM access key CSV dosyasını görüntüleme adımını görüyoruz.
S3 Objelerini Yükleme ve Test Etme
Bucket’lara küçük bir test dosyası yükleyin. Ekran görüntülerinde abc.zip kullanılmış; S3 object access ve WinSCP download davranışını test etmek için herhangi bir küçük dosya yeterlidir.
Bu ekranda Zip dosyasını S3 bucket’a yükleme adımını görüyoruz.
Yükleme tamamlandıktan sonra object detaylarını açın. Public bucket için Object URL doğrudan tarayıcıdan açılabilir; çünkü bucket policy s3:GetObject izni veriyor.
Bu ekranda Yüklenen S3 object detaylarını açma adımını görüyoruz.
Bu ekranda Public S3 object URL bilgisini kopyalama veya açma adımını görüyoruz.
Bu ekranda Public S3 object URL adresini tarayıcıdan test etme adımını görüyoruz.
Aynı yükleme veya erişim testini private bucket için de tekrarlayın. Private bucket public URL ile objeyi açmamalıdır; fakat IAM kullanıcısı yetkiliyse WinSCP gibi authenticated S3 client üzerinden objelere erişebilir.
Bu ekranda Yüklenen S3 dosyası için object URL bilgisini kontrol etme adımını görüyoruz.
Bu ekranda S3 object erişim davranışını tarayıcıda test etme adımını görüyoruz.
WinSCP ile S3’e Bağlanma
WinSCP’yi açıp yeni site oluşturun. File protocol olarak Amazon S3 seçin ve CSV dosyasındaki IAM access key bilgilerini girin.
Kullanılacak bağlantı ayarları:
- File protocol:
Amazon S3 - Host name:
s3.amazonaws.com - Port number:
443 - Access key ID: IAM access key ID değeriniz
- Secret access key: IAM secret access key değeriniz
Bu ekranda IAM bilgileriyle WinSCP içinde Amazon S3 bağlantısı yapılandırma adımını görüyoruz.
Login sonrası WinSCP, IAM kullanıcısının erişebildiği S3 bucket’ları listeler. Buradan bucket içine girip object seçebilir ve local dosya sistemine indirebilirsiniz.
Özet
IAM access key ve doğru S3 izinleriyle WinSCP, S3 objelerini görüntülemek ve indirmek için masaüstü istemcisi olarak kullanılabilir. Public bucket erişimi bucket public access ayarları ve bucket policy ile belirlenirken private bucket’lar authenticated IAM credentials üzerinden erişilebilir kalır.
Yorumlar