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 uç noktası aracılığıyla Blob Depolama güvenli bir şekilde bağlanmanıza olanak tanıyarak dosya erişimi, dosya aktarımı ve dosya yönetimi için SFTP 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ı sağlar. 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 Tek bir tıklamayla Blob Depolama hesapları için SFTP uç noktasını 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ğlan.

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 2. Nesil REST API'sine başvurmak için 2. Nesil REST terimini kullanır.

hiyerarşik ad alanı

SFTP izin modeli

Azure Blob Depolama, SFTP aracılığıyla Microsoft Entra kimlik doğrulamasını veya yetkilendirmesini desteklemez. 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 2000 yerel kullanıcınız olabilir.

Erişim izinlerini ayarlamak için yerel bir kullanıcı oluşturacak ve kimlik doğrulama yöntemlerini seçeceksiniz. 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. ACL'ler (erişim denetim listeleri) ö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 2. Nesil REST üzerinden 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 özellikli depolama hesaplarında Azure portalı, Azure CLI, Azure PowerShell komutları, AzCopy, Azure SDK'ları ve Azure REST API'leri aracılığıyla Blob Depolama erişen kullanıcıların kimliğini doğrulamak ve yetkilendirmek için Azure Blob Depolama güvenlik ayarlarının tamamını kullanabilirsiniz. Daha fazla bilgi edinmek için bkz. Azure Data Lake Storage 2. Nesil'de 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/dizin için sahip olan kullanıcıyı veya sahip olan grubu değiştirme
  • İzinleri Değiştir ös
  • Dosya/dizin izinlerini 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.

    ACL'ler

    Dizin veya blob düzeyi izinleri için, ADLS 2. Nesil ACL'ler tarafından kullanılan sahip olan kullanıcıyı, sahip olan grubu ve modu değiştirebilirsiniz. Çoğu SFTP istemcisi bu özellikleri değiştirmek için komutları kullanıma sunar. Aşağıdaki tabloda yaygın komutlar daha ayrıntılı olarak açıklanmaktadır.

    Command Gerekli Kapsayıcı İzni Açıklama
    Çolak o
  • Dosya/dizin için sahip olan kullanıcıyı değiştirme
  • Sayısal kimlik belirtilmelidir
  • chgrp o
  • Dosya/dizin için sahip olan grubu değiştirme
  • Sayısal kimlik belirtilmelidir
  • chmod ös
  • Dosya/dizin için izinleri/modu değiştirme
  • POSIX stili sekizli izinleri belirtmelidir
  • Sahibi olan kullanıcıyı ve sahip olan grubu değiştirmek için gereken kimlikler, Yerel Kullanıcılar için yeni özelliklerin bir parçasıdır. Aşağıdaki tabloda her yeni Yerel Kullanıcı özelliği daha ayrıntılı olarak açıklanmaktadır.

    Özellik Açıklama
    Kullanıcı Kimliği
  • Depolama hesabındaki Yerel Kullanıcı için benzersiz tanımlayıcı
  • Yerel Kullanıcı oluşturulduğunda varsayılan olarak oluşturulur
  • Dosya/dizinde sahibi olan kullanıcıyı ayarlamak için kullanılır
  • Groupıd
  • 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
  • İstenen ACL'ler yapılandırıldıktan ve Yerel Kullanıcı etkinleştirildikten AllowAclAuthorizationsonra, isteklerini yetkilendirmek için ACL'leri kullanabilir. RBAC'ye benzer şekilde, kapsayıcı izinleri ACL'lerle birlikte çalışabilir. Yalnızca yerel kullanıcı yeterli kapsayıcı izinlerine sahip değilse ACL'ler değerlendirilir. Daha fazla bilgi edinmek için bkz. Azure Data Lake Storage 2. Nesil'de erişim denetimi modeli.

    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 anahtarlarının uzunluğu en az 2048 bit 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ğlan

    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ğlan.

    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+
    • libssh 0.9.5+
    • Maverick Legacy 1.7.15+
    • Taşıma 12.7
    • 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 uç noktasını 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ğlan.

    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.

    Ayrıca bkz.