Azure Blob Depolama için SSH Dosya Aktarım Protokolü (SFTP) desteği
Blob depolama artık SSH Dosya Aktarım Protokolü'ne (SFTP) destek veriyor. Bu destek bir SFTP istemcisi kullanarak Blob Depolama'ya güvenli bir şekilde bağlanmanızı sağlar ve dosya erişimi, dosya aktarımı ve dosya yönetimi için SFTP'yi kullanmanıza olanak tanır.
Burada size bu konuda daha fazla bilgi veren bir video bulabilirsiniz.
Azure, Azure Blob hizmeti REST API'sini, Azure SDK'larını ve AzCopy gibi araçları kullanarak Blob Depolama hesaplarına güvenli veri aktarımına olanak tanır. Ancak eski iş yükleri genellikle SFTP gibi geleneksel dosya aktarım protokollerini kullanır. Rest API ve Azure SDK'larını kullanmak için özel uygulamaları güncelleştirebilirsiniz, ancak yalnızca önemli kod değişiklikleri yaparak.
Bu özelliğin yayımlanmasından önce verileri Azure Blob Depolama aktarmak için SFTP kullanmak istiyorsanız üçüncü taraf bir ürün satın almak veya kendi çözümünüzü düzenlemeniz gerekirdi. Özel çözümler için, SFTP sunucusunu barındırmak için Azure'da sanal makineler (VM) oluşturmanız ve ardından karmaşık bir mimariyi güncelleştirmeniz, düzeltme eki uygulamanız, yönetmeniz, ölçeklendirmeniz ve korumanız gerekir.
Artık Azure Blob Depolama için SFTP desteğiyle Blob Depolama hesapları için SFTP desteğini tek bir tıklamayla etkinleştirebilirsiniz. Ardından, 22 numaralı bağlantı noktası üzerinden SFTP ile depolama hesabınıza bağlanmak üzere kimlik doğrulaması için yerel kullanıcı kimlikleri ayarlayabilirsiniz.
Bu makalede Azure Blob Depolama için SFTP desteği açıklanmaktadır. Depolama hesabınız için SFTP'yi etkinleştirmeyi öğrenmek için bkz. SSH Dosya Aktarım Protokolü(SFTP) kullanarak Azure Blob Depolama bağlanma.
Not
SFTP platform düzeyinde bir hizmet olduğundan, hesap seçeneği devre dışı bırakılsa bile 22 numaralı bağlantı noktası açılır. SFTP erişimi yapılandırılmamışsa, tüm istekler hizmetle bağlantıyı keser.
SFTP ve hiyerarşik ad alanı
SFTP desteği hiyerarşik ad alanının etkinleştirilmesini gerektirir. Hiyerarşik ad alanı, nesneleri (dosyaları) bilgisayarınızdaki dosya sisteminin düzenleyeceği şekilde bir dizin ve alt dizin hiyerarşisi halinde düzenler. Hiyerarşik ad alanı doğrusal olarak ölçeklendirilir ve veri kapasitesini veya performansını düşürmez.
Hiyerarşik ad alanı tarafından farklı protokoller desteklenir. SFTP bu kullanılabilir protokollerden biridir. Aşağıdaki görüntüde birden çok protokol ve REST API aracılığıyla depolama erişimi gösterilmektedir. Daha kolay okunması için bu görüntü, Azure Data Lake Storage REST API'sine başvurmak için REST terimini kullanır.
SFTP izin modeli
SFTP istemcileri Microsoft Entra kimlikleri kullanılarak yetkilendirilemez. Bunun yerine, SFTP yerel kullanıcılar adlı yeni bir kimlik yönetimi biçimi kullanır.
Yerel kullanıcıların kimlik doğrulaması için parola veya Secure Shell (SSH) özel anahtar kimlik bilgisi kullanması gerekir. Depolama hesabı için en fazla 8.000 yerel kullanıcınız olabilir.
Erişim izinlerini ayarlamak için yerel bir kullanıcı oluşturur ve kimlik doğrulama yöntemlerini seçersiniz. Ardından, hesabınızdaki her kapsayıcı için bu kullanıcıya vermek istediğiniz erişim düzeyini belirtebilirsiniz.
Dikkat
Yerel kullanıcılar RBAC (rol tabanlı erişim denetimi) ve ABAC (öznitelik tabanlı erişim denetimi) gibi diğer Azure Depolama izin modelleriyle birlikte çalışmaz. Erişim denetim listeleri (ACL' ler) önizleme düzeyinde yerel kullanıcılar için desteklenir.
Örneğin, Jeff'in kapsayıcı con1'de depolanan dosya foo.txt için Microsoft Entra kimliği aracılığıyla salt okunur izni (RBAC veya ABAC aracılığıyla denetlenebilir) vardır. Jeff depolama hesabına NFS (kök/süper kullanıcı olarak bağlanmadığında), Blob REST veya Data Lake Storage REST aracılığıyla erişiyorsa, bu izinler uygulanır. Ancak, Jeff'in con1 kapsayıcısı içindeki veriler için silme iznine sahip bir yerel kullanıcı kimliği de varsa, yerel kullanıcı kimliğini kullanarak SFTP aracılığıyla foo.txt silebilir.
SFTP desteğinin etkinleştirilmesi, diğer istemci türlerinin Microsoft Entra Id kullanmasını engellemez. Azure portalını, Azure CLI'yı, Azure PowerShell komutlarını, AzCopy'yi, Azure SDK'larını ve Azure REST API'lerini kullanarak Blob Depolama'ya erişen kullanıcılar için erişimi yetkilendirmek için Azure Blob Depolama güvenlik ayarının tamamını kullanmaya devam edebilirsiniz. Daha fazla bilgi edinmek için bkz . Azure Data Lake Storage'da erişim denetimi modeli.
Kimlik doğrulama yöntemleri
Parola veya Secure Shell (SSH) ortak-özel anahtar bölmesi kullanarak SFTP aracılığıyla bağlanan yerel kullanıcıların kimliğini doğrulayabilirsiniz. Her iki kimlik doğrulama türünü de yapılandırabilir ve hangisinin kullanılacağını yerel kullanıcıların seçmesine izin vekleyebilirsiniz. Ancak, başarılı kimlik doğrulaması için hem geçerli bir parola hem de geçerli bir ortak-özel anahtar çifti gereken çok faktörlü kimlik doğrulaması desteklenmez.
Parolalar
Özel parolalar ayarlayamazsınız; Azure sizin için bir parola oluşturur. Parola kimlik doğrulamasını seçerseniz, yerel kullanıcı yapılandırmayı tamamladıktan sonra parolanız sağlanır. Bu parolayı kopyalayıp daha sonra bulabileceğiniz bir konuma kaydettiğinizden emin olun. Bu parolayı Azure'dan yeniden alamazsınız. Parolayı kaybederseniz yeni bir parola oluşturmanız gerekir. Güvenlik nedeniyle parolayı kendiniz ayarlayamazsınız.
SSH anahtar çiftleri
Ortak-özel anahtar çifti, Secure Shell (SSH) için en yaygın kimlik doğrulama biçimidir. Özel anahtar gizlidir ve yalnızca yerel kullanıcı tarafından bilinmelidir. Ortak anahtar Azure'da depolanır. Bir SSH istemcisi yerel kullanıcı kimliği kullanarak depolama hesabına bağlandığında, ortak anahtar ve imza içeren bir ileti gönderir. Azure iletiyi doğrular ve kullanıcının ve anahtarın depolama hesabı tarafından tanındığını denetler. Daha fazla bilgi edinmek için bkz . SSH ve anahtarlara genel bakış.
Özel-ortak anahtar çifti ile kimlik doğrulaması yapmayı seçerseniz, bir anahtar oluşturabilir, Azure'da zaten depolanmış bir anahtar kullanabilir veya Azure'a mevcut ortak-özel anahtar çiftinin ortak anahtarını sağlayabilirsiniz. Yerel kullanıcı başına en fazla 10 ortak anahtara sahip olabilirsiniz.
Kapsayıcı izinleri
Kapsayıcı düzeyinde izinler için, erişim vermek istediğiniz kapsayıcıları ve hangi erişim düzeyini sağlamak istediğinizi seçebilirsiniz (Okuma, Yazma, Listeleme, Silme, Oluşturma, Sahipliği Değiştirme ve İzinleri Değiştirme). Bu izinler kapsayıcıdaki tüm dizinlere ve alt dizinlere uygulanır. Her yerel kullanıcıya en fazla 100 kapsayıcıya erişim vekleyebilirsiniz. Kapsayıcı izinleri, yerel kullanıcı oluşturulduktan sonra da güncelleştirilebilir. Aşağıdaki tabloda her izin daha ayrıntılı olarak açıklanmaktadır.
İzin | Simge | Açıklama |
---|---|---|
Okundu | r | |
Write | w | |
Liste | l | |
Sil | d | |
Oluşturma | c | |
Sahipliği Değiştir | o | |
İzinleri Değiştir | ös |
Alt dizinlerdeki bloblarda yazma işlemleri gerçekleştirirken, dizini açmak ve blob özelliklerine erişmek için Okuma izni gerekir.
Erişim denetim listeleri (ACL’ler)
Önemli
Bu özellik şu anda ÖNİzLEME aşamasındadır. Beta veya önizleme aşamasında olan ya da başka bir şekilde henüz genel kullanıma sunulmamış olan Azure özelliklerinde geçerli olan yasal koşullar için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.
ACL'ler, belirli bir dizine veya dosyaya yazma erişimi gibi "ayrıntılı" erişim vermenizi sağlar. ACL'ler hakkında daha fazla bilgi edinmek için bkz . Azure Data Lake Storage'da erişim denetim listeleri (ACL'ler).
Yerel kullanıcıyı ACL'leri kullanarak yetkilendirmek için önce bu yerel kullanıcı için ACL yetkilendirmesini etkinleştirmeniz gerekir. Bkz. Kapsayıcılara izin verme.
Not
Bir ACL birçok farklı kimlik türü için izin düzeyini tanımlayabilir ancak yerel kullanıcıyı yetkilendirmek için yalnızca sahibi olan kullanıcı, sahip olan grup ve diğer tüm kullanıcı kimlikleri kullanılabilir. Adlandırılmış kullanıcılar ve adlandırılmış gruplar henüz yerel kullanıcı yetkilendirmesi için desteklenmiyor.
Aşağıdaki tabloda, ACL yetkilendirmesi için kullanılan yerel kullanıcının özellikleri açıklanmaktadır.
Özellik | Açıklama |
---|---|
Kullanıcı Kimliği | |
GroupId | |
AllowAclAuthorization |
ACL izinleri nasıl değerlendirilir?
ACL'ler yalnızca yerel kullanıcının bir işlemi gerçekleştirmek için gerekli kapsayıcı izinlerine sahip olmaması durumunda değerlendirilir. Erişim izinlerinin sistem tarafından değerlendirilme şekli nedeniyle, kapsayıcı düzeyinde izinler tarafından zaten verilmiş olan erişimi kısıtlamak için ACL kullanamazsınız. Bunun nedeni sistemin önce kapsayıcı izinlerini değerlendirmesidir ve bu izinler yeterli erişim izni verirse ACL'ler yoksayılır.
Önemli
Yerel kullanıcıya bir dosyaya okuma veya yazma erişimi vermek için, bu yerel kullanıcıya kapsayıcının kök klasörü ve dosyaya yol açan klasör hiyerarşisindeki her klasör için Yürütme izinleri vermeniz gerekir. Yerel kullanıcı sahip olan kullanıcı veya sahip olan grupsa, sahip olan kullanıcıya veya sahip olan gruba Yürütme izinleri uygulayabilirsiniz. Aksi takdirde, diğer tüm kullanıcılara Yürütme iznini uygulamanız gerekir.
SFTP istemcisiyle ACL'leri değiştirme
ACL izinleri desteklenen herhangi bir Azure aracı veya SDK kullanılarak değiştirilebilir ancak yerel kullanıcılar da bunları değiştirebilir. Yerel kullanıcının ACL izinlerini değiştirmesini sağlamak için önce yerel kullanıcıya Modify Permissions
izin vermeniz gerekir. Bkz. Kapsayıcılara izin verme.
Yerel kullanıcılar yalnızca sahip olan kullanıcının, sahip olan grubun ve ACL'nin diğer tüm kullanıcılarının izin düzeyini değiştirebilir. Adlandırılmış kullanıcılar, adlandırılmış gruplar ve adlandırılmış güvenlik sorumluları için ACL girdilerinin eklenmesi veya değiştirilmesi henüz desteklenmemektedir.
Yerel kullanıcılar, sahip olan kullanıcının ve sahip olan grubun kimliğini de değiştirebilir. Aslında, yalnızca yerel kullanıcılar sahip olan kullanıcının veya sahip olan grubun kimliğini yerel kullanıcı kimliği olarak değiştirebilir. Azure aracını veya SDK'sı kullanarak ACL'deki yerel kullanıcı kimliğine başvuramazsınız. Bir dizin veya blobun sahibi olan kullanıcıyı veya sahip olan grubu değiştirmek için yerel kullanıcıya izin verilmelidir Modify Ownership
.
Örnekleri görüntülemek için bkz . Dosya veya dizinin ACL'sini değiştirme.
Giriş dizini
İzinleri yapılandırdıkça, yerel kullanıcı için bir giriş dizini ayarlama seçeneğiniz vardır. SFTP bağlantı isteğinde başka bir kapsayıcı belirtilmezse, giriş dizini kullanıcının varsayılan olarak bağlandığı dizindir. Örneğin, Open SSH kullanılarak yapılan aşağıdaki isteği göz önünde bulundurun. Bu istek, komutun sftp
bir parçası olarak bir kapsayıcı veya dizin adı belirtmez.
sftp myaccount.myusername@myaccount.blob.core.windows.net
put logfile.txt
Kullanıcının mycontainer/mydirectory
giriş dizinini olarak ayarlarsanız, bu dizine bağlanır. logfile.txt
Ardından, dosya öğesine mycontainer/mydirectory
yüklenir. Giriş dizinini ayarlamadıysanız bağlantı girişimi başarısız olur. Bunun yerine, bağlantı kullanıcılarının istekle birlikte bir kapsayıcı belirtmesi ve ardından bir dosyayı karşıya yüklemeden önce hedef dizine gitmek için SFTP komutlarını kullanması gerekir. Aşağıdaki örnekte bu gösterilmektedir:
sftp myaccount.mycontainer.myusername@myaccount.blob.core.windows.net
cd mydirectory
put logfile.txt
Not
Giriş dizini yalnızca bağlanan yerel kullanıcının yerleştirildiği ilk dizindir. Yerel kullanıcılar, uygun kapsayıcı izinlerine sahipse bağlandıkları kapsayıcıda başka herhangi bir yola gidebilir.
Desteklenen algoritmalar
Güvenli bir bağlantı kurup dosyaları aktarmak için birçok farklı SFTP istemcisi kullanabilirsiniz. Bağlanan istemcilerin aşağıdaki tabloda belirtilen algoritmaları kullanması gerekir.
Tür | Algoritma |
---|---|
Konak anahtarı 1 | rsa-sha2-256 2 rsa-sha2-512 2 ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 |
Anahtar değişimi | ecdh-sha2-nistp384 ecdh-sha2-nistp256 diffie-hellman-group14-sha256 diffie-hellman-group16-sha512 diffie-hellman-group-exchange-sha256 |
Şifreleme | aes128-gcm@openssh.com aes256-gcm@openssh.com aes128-ctr aes192-ctr aes256-ctr |
Bütünlük/MAC | hmac-sha2-256 hmac-sha2-512 hmac-sha2-256-etm@openssh.com hmac-sha2-512-etm@openssh.com |
Ortak anahtar | ssh-rsa 2 rsa-sha2-256 rsa-sha2-512 ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 ecdsa-sha2-nistp521 |
1 Konak anahtarları burada yayımlanır. 2 RSA anahtarı en az 2.048 bit uzunluğunda olmalıdır.
Azure Blob Depolama için SFTP desteği şu anda şifreleme algoritması desteğini güvenlikle ilgili önemli noktalara dayanarak sınırlar. Müşterilerin verilerine güvenle erişmek için Microsoft Security Development Lifecycle (SDL) onaylı algoritmaları kullanmasını kesinlikle öneririz.
Şu anda, Microsoft Güvenlik SDL'sine uygun olarak şunları desteklemeyi planlamıyoruz: ssh-dss
, , diffie-hellman-group14-sha1
diffie-hellman-group1-sha1
, diffie-hellman-group-exchange-sha1
, , hmac-sha1
, hmac-sha1-96
. Algoritma desteği gelecekte değiştirilebilir.
SFTP ile bağlanma
Başlamak için SFTP desteğini etkinleştirin, yerel bir kullanıcı oluşturun ve bu yerel kullanıcı için izinler atayın. Ardından, dosyaları güvenli bir şekilde bağlamak ve aktarmak için herhangi bir SFTP istemcisini kullanabilirsiniz. Adım adım yönergeler için bkz. SSH Dosya Aktarım Protokolü(SFTP) kullanarak Azure Blob Depolama bağlanma.
Ağ konusunda dikkat edilmesi gerekenler
SFTP platform düzeyinde bir hizmet olduğundan, hesap seçeneği devre dışı bırakılsa bile 22 numaralı bağlantı noktası açılır. SFTP erişimi yapılandırılmamışsa, tüm istekler hizmetle bağlantıyı keser. SFTP kullanırken güvenlik duvarı, sanal ağ veya özel uç nokta yapılandırması aracılığıyla genel erişimi sınırlamak isteyebilirsiniz. Bu ayarlar uygulama katmanında zorunlu kılındığından SFTP'ye özgü değildir ve tüm Azure Depolama Uç Noktalarına bağlantıyı etkiler. Güvenlik duvarları ve ağ yapılandırması hakkında daha fazla bilgi için bkz . Azure Depolama güvenlik duvarlarını ve sanal ağları yapılandırma.
Not
Protokol katmanında TLS desteğini belirlemeye çalışan denetim araçları, depolama hesabı uç noktasında doğrudan çalıştırıldığında gereken en düşük sürüme ek olarak TLS sürümlerini döndürebilir. Daha fazla bilgi için bkz . Depolama hesabına yönelik istekler için Aktarım Katmanı Güvenliği'nin (TLS) en düşük sürümünü zorunlu kılma.
Bilinen desteklenen istemciler
Aşağıdaki istemciler Azure Blob Depolama için SFTP ile uyumlu algoritma desteğine sahiptir. Bağlanırken sorun yaşıyorsanız Azure Blob Depolama için bkz. SSH Dosya Aktarım Protokolü (SFTP) desteğiyle ilgili sınırlamalar ve bilinen sorunlar. Bu liste kapsamlı değildir ve zaman içinde değişebilir.
- AsyncSSH 2.1.0+
- Axway
- Cyberduck 7.8.2+
- edtFTPjPRO 7.0.0+
- FileZilla 3.53.0+
- Five9
- libssh 0.9.5+
- Maverick Legacy 1.7.15+
- Taşıma 12.7
- Katır 2.1.2+
- OpenSSH 7.4+
- paramiko 2.8.1+
- phpseclib 1.0.13+
- PuTTY 0.74+
- QualysML 12.3.41.1+
- RebexSSH 5.0.7119.0+
- Salesforce
- ssh2js 0.1.20+
- sshj 0.27.0+
- SSH.NET 2020.0.0+
- WinSCP 5.10+
- İş günü
- XFB. Ağ geçidi
- JSCH 0.1.54+
- curl 7.85.0+
- AIX1
- MobaXterm v21.3
1 seçeneği olarak no
ayarlanmalıdırAllowPKCS12KeystoreAutoOpen
.
Sınırlamalar ve bilinen sorunlar
Fiyatlandırma ve faturalama
SFTP'yi etkinleştirmenin saatlik maliyeti vardır. En son fiyatlandırma bilgileri için bkz. fiyatlandırma Azure Blob Depolama.
İpucu
Pasif ücretlerden kaçınmak için SFTP'yi yalnızca verileri aktarmak için etkin bir şekilde kullandığınızda etkinleştirmeyi göz önünde bulundurun. SFTP desteğini etkinleştirme ve devre dışı bırakma hakkında yönergeler için bkz. SSH Dosya Aktarım Protokolü(SFTP) kullanarak Azure Blob Depolama bağlanma.
Temel alınan depolama hesabı için işlem, depolama ve ağ fiyatları geçerlidir. Tüm SFTP işlemleri depolama hesaplarınızdaki Okuma, Yazma veya Diğer işlemlere dönüştürülür. Bu, tüm SFTP komutlarını ve API çağrılarını içerir. Daha fazla bilgi edinmek için bkz. Azure Blob Depolama için tam faturalama modelini anlama.
İlgili içerik
- Azure Blob Depolama için SSH Dosya Aktarım Protokolü (SFTP) desteği
- Azure Blob Depolama'de SSH Dosya Aktarım Protokolü (SFTP) desteğini etkinleştirme veya devre dışı bırakma
- SSH Dosya Aktarım Protokolü (SFTP) istemcisinden Azure Blob Depolama erişimi yetkilendirme
- SSH Dosya Aktarım Protokolü(SFTP) kullanarak Azure Blob Depolama bağlanma
- Azure Blob Depolama için SSH Dosya Aktarım Protokolü (SFTP) desteğiyle ilgili sınırlamalar ve bilinen sorunlar
- Azure Blob Depolama için SSH Dosya Aktarım Protokolü (SFTP) desteği için konak anahtarları
- Azure Blob depolamada SSH Dosya Aktarım Protokolü (SFTP) performans konuları