Aracılığıyla paylaş


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. Azure Blob Depolama'da SSH Dosya Aktarım Protokolü (SFTP) desteğini etkinleştirme veya devre dışı bırakma.

Uyarı

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 hizmet tarafından bağlantı kesme uyarısı alır.

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 25.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.

Önemli

Entra Identities tabanlı yetkilendirme gerektiren senaryolar hakkında geri bildiriminiz varsa lütfen adresinden BlobSFTP@microsoft.combize ulaşın.

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) yerel kullanıcılar için desteklenir.

Örneğin, Jeff'in con1 kapsayıcısında depolanan foo.txt dosyası için Microsoft Entra kimliği üzerinden salt okunur izni (RBAC veya ABAC ile 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 Sembol Açıklama
Okundu r
  • Dosya içeriğini okuma
  • Yazmak w
  • Dosya yükle
  • Dizin oluşturma
  • Klasör Yükle
  • Liste l
  • Kapsayıcı içindeki içeriği listeleme
  • Dizin içindeki içeriği listeleme
  • Sil d
  • Dosya/dizin silme
  • Oluştur c
  • Dosya yoksa dosyayı yükle
  • Dizin yoksa dizin oluşturma
  • Sahipliğini Değiştir o
  • Dosya veya dizinin sahibi olan kullanıcıyı veya sahip olan grubu değiştirme
  • İzinleri Değiştir p
  • 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)

    ACL'ler, belirli bir dizine veya dosyaya yazma erişimi gibi "ayrıntılı" erişim vermenizi sağlar. Yaygın bir ACL kullanım örneği, kullanıcının aynı kapsayıcıdaki diğer dizinlere erişmesine izin vermeden kullanıcının belirli bir dizine erişimini kısıtlamaktır. Bu, birden çok kullanıcı için tekrarlanabilir, böylece her biri kendi dizinlerine ayrıntılı erişime sahip olur. ACL'ler olmadan, yerel kullanıcı başına bir kapsayıcı gerekir. ACL'ler, yöneticilerin grupların yardımıyla birden çok yerel kullanıcının erişimini yönetmesini de kolaylaştırır. 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 ver.

    Uyarı

    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.

    Mülkiyet 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
  • GrupId
  • Bir grup yerel kullanıcı için tanımlayıcı
  • 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 kullanıcı veya sahip grupsa, sahip kullanıcıya veya sahip 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 ver.

    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 giriş dizinini mycontainer/mydirectory olarak ayarlarsanız, bu dizine bağlanır. Ardından, logfile.txt dosyası mycontainer/mydirectory'e yüklenir. Giriş dizinini ayarlamadıysanız bağlantı girişimi başarısız olur. Bunun yerine, kullanıcıların istekle birlikte bir kapsayıcı belirtmesi ve ardından bir dosyayı 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  
    

    Uyarı

    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 grup 14 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 SSH Dosya Aktarım Protokolü (SFTP) kullanarak Azure Blob Depolama'ya bağlanma bölümüne bakın.

    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.

    Uyarı

    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 SSH Dosya Aktarım Protokolü (SFTP) desteğiyle ilgili sınırlamalar ve bilinen sorunlara bakın. Bu liste kapsamlı değildir ve zaman içinde değişebilir.

    • AIX1
    • AsyncSSH 2.1.0+
    • Axway
    • curl 7.85.0+
    • Cyberduck 7.8.2+
    • edtFTPjPRO 7.0.0+
    • FileZilla 3.53.0+
    • Beş9
    • JSCH 0.1.54+
    • libssh 0.9.5+
    • MobaXterm v21.3
    • 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+
    • Ruckus 6.1.2+
    • Salesforce
    • ssh2js 0.1.20+
    • sshj 0.27.0+
    • SSH.NET 2020.0.0+
    • WinSCP 5.10+
    • İş günü
    • XFB.Ağ geçidi
    • Apache NiFi

    1 Seçenek AllowPKCS12KeystoreAutoOpenno olarak ayarlanmalıdır.

    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 Azure Blob Depolama fiyatlandırması kısmına bakın.

    Tavsiye

    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.

    İlgili depolama hesabı için işlem, depolama ve ağ aktarılan 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 için Azure Blob Depolama için tam faturalama modelini öğrenin.