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.

hiyerarşik ad alanı

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
  • Dosya içeriğini okuma
  • Write w
  • Dosya yükle
  • Dizin oluşturma
  • Dizini karşıya yükleme
  • Liste l
  • Kapsayıcı içindeki içeriği listeleme
  • Dizin içindeki içeriği listeleme
  • Sil d
  • Dosya/dizin silme
  • Oluşturma c
  • Dosya yoksa dosyayı karşıya yükleme
  • Dizin yoksa dizin oluşturma
  • Sahipliği Değiştir o
  • Dosya veya dizinin sahibi olan kullanıcıyı veya sahip olan grubu değiştirme
  • İzinleri Değiştir ös
  • Dosya veya dizinin ACL'sini değiştirme
  • 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
  • Depolama hesabındaki yerel kullanıcının benzersiz tanımlayıcısı
  • Yerel Kullanıcı oluşturulduğunda varsayılan olarak oluşturulur
  • Dosya/dizinde sahibi olan kullanıcıyı ayarlamak için kullanılır
  • GroupId
  • Bir grup yerel kullanıcı için Identifer
  • Dosya/dizinde sahip olan grubu ayarlamak için kullanılır
  • AllowAclAuthorization
  • Bu Yerel Kullanıcının isteklerini ACL'lerle yetkilendirmeye izin ver
  • 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/mydirectorygiriş dizinini olarak ayarlarsanız, bu dizine bağlanır. logfile.txt Ardından, dosya öğesine mycontainer/mydirectoryyü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-sha1diffie-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 noayarlanmalıdırAllowPKCS12KeystoreAutoOpen.

    Sınırlamalar ve bilinen sorunlar

    Azure Blob Depolama için SFTP desteğiyle ilgili sınırlamaların ve sorunların tam listesi için sınırlamalar ve bilinen sorunlar makalesine bakın.

    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.