Podpora protokolu SFTP (File Transfer Protocol) SSH pro Azure Blob Storage

Úložiště objektů blob teď podporuje protokol SFTP (File Transfer Protocol). Díky této podpoře se můžete bezpečně připojit ke službě Blob Storage přes koncový bod SFTP, abyste mohli používat protokol SFTP pro přístup k souborům, přenos souborů a správu souborů.

Tady je video, které vám o tom řekne víc.

Azure umožňuje zabezpečený přenos dat do účtů Blob Storage pomocí rozhraní REST API služby Azure Blob Service, sad SDK Azure a nástrojů, jako je AzCopy. Starší verze úloh ale často používají tradiční protokoly pro přenos souborů, jako je SFTP. Vlastní aplikace můžete aktualizovat tak, aby používaly rozhraní REST API a sady Azure SDK, ale pouze provedením významných změn kódu.

Před vydáním této funkce byste chtěli použít SFTP k přenosu dat do služby Azure Blob Storage, museli byste si buď koupit produkt třetí strany, nebo orchestrovat vlastní řešení. U vlastních řešení byste museli vytvořit virtuální počítače v Azure, které budou hostitelem serveru SFTP, a pak aktualizovat, opravovat, spravovat, škálovat a udržovat složitou architekturu.

S podporou SFTP pro Azure Blob Storage teď můžete jedním kliknutím povolit koncový bod SFTP pro účty Blob Storage. Pak můžete nastavit místní identity uživatelů pro ověřování pro připojení k účtu úložiště pomocí protokolu SFTP přes port 22.

Tento článek popisuje podporu SFTP pro Azure Blob Storage. Informace o povolení protokolu SFTP pro váš účet úložiště najdete v tématu Připojení do služby Azure Blob Storage pomocí protokolu SFTP (File Transfer Protocol).

Poznámka:

SFTP je služba na úrovni platformy, takže port 22 se otevře i v případě, že je možnost účtu zakázaná. Pokud není nakonfigurovaný přístup SFTP, všechny požadavky obdrží odpojení od služby.

SFTP a hierarchický obor názvů

Podpora SFTP vyžaduje povolení hierarchického oboru názvů. Hierarchický obor názvů uspořádá objekty (soubory) do hierarchie adresářů a podadresářů stejným způsobem jako systém souborů v počítači. Hierarchický obor názvů se škáluje lineárně a nezpůsobí snížení kapacity dat ani výkonu.

Hierarchický obor názvů podporuje různé protokoly. SFTP je jedním z těchto dostupných protokolů. Následující obrázek ukazuje přístup k úložišti prostřednictvím více protokolů a rozhraní REST API. Pro snadnější čtení používá tento obrázek termín Gen2 REST k odkazování na rozhraní REST API Služby Azure Data Lake Storage Gen2.

hierarchický obor názvů

Model oprávnění SFTP

Azure Blob Storage nepodporuje ověřování nebo autorizaci Microsoft Entra prostřednictvím protokolu SFTP. Místo toho SFTP využívá novou formu správy identit označovanou jako místní uživatelé.

Místní uživatelé musí k ověřování použít buď heslo, nebo přihlašovací údaje privátního klíče SSH (Secure Shell). Pro účet úložiště můžete mít maximálně 2 000 místních uživatelů.

Pokud chcete nastavit přístupová oprávnění, vytvoříte místního uživatele a zvolíte metody ověřování. Pro každý kontejner ve vašem účtu pak můžete určit úroveň přístupu, kterou chcete danému uživateli udělit.

Upozornění

Místní uživatelé nekooperují s jinými modely oprávnění azure Storage, jako je RBAC (řízení přístupu na základě role) a ABAC (řízení přístupu na základě atributů). Seznamy ACL (seznamy řízení přístupu) jsou podporovány pro místní uživatele na úrovni Preview.

Jan má například oprávnění jen pro čtení (může být řízeno pomocí RBAC nebo ABAC) prostřednictvím identity Microsoft Entra pro soubor foo.txt uložené v kontejneru con1. Pokud Jan přistupuje k účtu úložiště přes systém souborů NFS (pokud není připojený jako root nebo superuživatel), REST objektu blob nebo rest Data Lake Storage Gen2, tato oprávnění se vynutí. Pokud ale má Jan také místní identitu uživatele s oprávněním k odstranění dat v kontejneru Con1, může odstranit foo.txt přes SFTP pomocí místní identity uživatele.

Pro účty úložiště s podporou SFTP můžete použít úplný rozsah nastavení zabezpečení služby Azure Blob Storage k ověřování a autorizaci uživatelů přistupující ke službě Blob Storage prostřednictvím webu Azure Portal, Azure CLI, příkazů Azure PowerShellu, AzCopy a také sad SDK Azure a rozhraní Azure REST API. Další informace najdete v tématu Model řízení přístupu ve službě Azure Data Lake Storage Gen2.

Metody ověřování

Místní uživatele, kteří se připojují přes SFTP, můžete ověřit pomocí hesla nebo veřejného klíče SSH (Secure Shell). Můžete nakonfigurovat obě formy ověřování a umožnit připojení místních uživatelů, kteří si vyberou, který z nich se má použít. Vícefaktorové ověřování, kdy se pro úspěšné ověření vyžaduje platné heslo i platný pár veřejného a privátního klíče.

Passwords

Nemůžete nastavit vlastní hesla, ale Azure je pro vás vygeneruje. Pokud zvolíte ověřování heslem, po dokončení konfigurace místního uživatele se heslo poskytne. Nezapomeňte heslo zkopírovat a uložit ho do umístění, kde ho později najdete. Toto heslo nebudete moct z Azure znovu načíst. Pokud heslo ztratíte, budete muset vygenerovat nové heslo. Z bezpečnostních důvodů nemůžete heslo nastavit sami.

Páry klíčů SSH

Pár veřejného privátního klíče je nejběžnější formou ověřování pro Secure Shell (SSH). Privátní klíč je tajný klíč a měl by být znám pouze místnímu uživateli. Veřejný klíč je uložený v Azure. Když se klient SSH připojí k účtu úložiště pomocí místní identity uživatele, odešle zprávu s veřejným klíčem a podpisem. Azure ověří zprávu a zkontroluje, že účet úložiště rozpozná uživatele a klíč. Další informace najdete v tématu Přehled SSH a klíčů.

Pokud se rozhodnete ověřit pomocí páru privátních klíčů, můžete ho buď vygenerovat, použít ten, který už je uložený v Azure, nebo zadat veřejný klíč Azure existujícího páru veřejného a privátního klíče. Pro místního uživatele můžete mít maximálně 10 veřejných klíčů.

Oprávnění kontejneru

U oprávnění na úrovni kontejneru můžete zvolit, ke kterým kontejnerům chcete udělit přístup a jakou úroveň přístupu chcete poskytnout (oprávnění ke čtení, zápisu, výpisu, odstranění, vytvoření, úpravě vlastnictví a úpravě oprávnění). Tato oprávnění platí pro všechny adresáře a podadresáře v kontejneru. Každému místnímu uživateli můžete udělit přístup až k 100 kontejnerům. Oprávnění kontejneru je také možné aktualizovat po vytvoření místního uživatele. Následující tabulka popisuje jednotlivá oprávnění podrobněji.

Oprávnění Symbol Popis
Čteno r
  • Čtení obsahu souboru
  • Write w
  • Nahrát soubor
  • Vytvoření adresáře
  • Nahrání adresáře
  • List l
  • Výpis obsahu v rámci kontejneru
  • Výpis obsahu v adresáři
  • Odstranění d
  • Odstranění souboru nebo adresáře
  • Vytvoření c
  • Nahrání souboru, pokud soubor neexistuje
  • Vytvoření adresáře, pokud adresář neexistuje
  • Změnit vlastnictví o
  • Změna vlastnícího uživatele nebo vlastnící skupiny pro soubor nebo adresář
  • Upravit oprávnění p
  • Změna oprávnění pro soubor nebo adresář
  • Při provádění operací zápisu s objekty blob v podadresáři se k otevření adresáře a přístupu k vlastnostem objektu blob vyžaduje oprávnění ke čtení.

    Seznamy ACL

    U oprávnění na úrovni adresáře nebo objektu blob můžete změnit vlastnictví uživatele, vlastnící skupinu a režim, které používají seznamy ADLS Gen2 ACL. Většina klientů SFTP zveřejňuje příkazy pro změnu těchto vlastností. Následující tabulka obsahuje podrobnější popis běžných příkazů.

    Příkaz Požadované oprávnění ke kontejneru Popis
    Chown o
  • Změna vlastnícího uživatele pro soubor nebo adresář
  • Musí zadat číselné ID.
  • chgrp o
  • Změna vlastnící skupiny pro soubor nebo adresář
  • Musí zadat číselné ID.
  • chmod p
  • Změna oprávnění nebo režimu pro soubor nebo adresář
  • Je nutné zadat osmičková oprávnění stylu POSIX.
  • ID potřebná ke změně vlastnícího uživatele a skupiny vlastnictví jsou součástí nových vlastností pro místní uživatele. Následující tabulka podrobněji popisuje každou novou vlastnost Místního uživatele.

    Vlastnost Popis
    ID uživatele
  • Jedinečný identifikátor místního uživatele v rámci účtu úložiště
  • Ve výchozím nastavení se vygeneruje při vytvoření místního uživatele.
  • Používá se k nastavení vlastnícího uživatele v souboru nebo adresáři.
  • Groupid
  • Identifer pro skupinu místních uživatelů
  • Slouží k nastavení vlastnící skupiny v souboru nebo adresáři.
  • AllowAclAuthorization
  • Povolit autorizaci požadavků tohoto místního uživatele pomocí seznamů ACL
  • Jakmile jsou požadované seznamy ACL nakonfigurované a místní uživatel povolí AllowAclAuthorization, může k autorizaci svých požadavků použít seznamy ACL. Podobně jako RBAC můžou oprávnění kontejneru spolupracovat s seznamy ACL. Seznamy ACL se vyhodnotí jenom v případě, že místní uživatel nemá dostatečná oprávnění ke kontejneru. Další informace najdete v tématu Model řízení přístupu ve službě Azure Data Lake Storage Gen2.

    Domovský adresář

    Při konfiguraci oprávnění máte možnost nastavit domovský adresář pro místního uživatele. Pokud není v požadavku na připojení SFTP zadán žádný jiný kontejner, pak je domovský adresář adresář, ke kterému se uživatel ve výchozím nastavení připojuje. Představte si například následující požadavek vytvořený pomocí Open SSH. Tento požadavek v rámci příkazu nezadá název kontejneru sftp ani adresáře.

    sftp myaccount.myusername@myaccount.blob.core.windows.net
    put logfile.txt
    

    Pokud nastavíte domovský adresář uživatele na mycontainer/mydirectory, připojí se k ho. logfile.txt Pak se soubor nahraje do mycontainer/mydirectorysouboru . Pokud jste nenastavili domovský adresář, pokus o připojení se nezdaří. Místo toho by připojení uživatelů muselo zadat kontejner spolu s požadavkem a pak pomocí příkazů SFTP přejít do cílového adresáře před nahráním souboru. Následující příklad ukazuje:

    sftp myaccount.mycontainer.myusername@myaccount.blob.core.windows.net
    cd mydirectory
    put logfile.txt  
    

    Poznámka:

    Domovský adresář je pouze počáteční adresář, do kterého je umístěn připojený místní uživatel. Místní uživatelé můžou přejít na jakoukoli jinou cestu v kontejneru, ke kterému jsou připojení, pokud mají příslušná oprávnění ke kontejneru.

    Podporované algoritmy

    K zabezpečenému připojení a následnému přenosu souborů můžete použít mnoho různých klientů SFTP. Připojující se klienti musí používat algoritmy uvedené v následující tabulce.

    Typ Algoritmus
    Klíč hostitele 1 rsa-sha2-256 2
    rsa-sha2-512 2
    ecdsa-sha2-nistp256
    ecdsa-sha2-nistp384
    Výměna klíčů ecdh-sha2-nistp384
    ecdh-sha2-nistp256
    diffie-hellman-group14-sha256
    diffie-hellman-group16-sha512
    diffie-hellman-group-exchange-sha256
    Šifry/šifrování aes128-gcm@openssh.com
    aes256-gcm@openssh.com
    aes128-ctr
    aes192-ctr
    aes256-ctr
    Integrita/MAC hmac-sha2-256
    hmac-sha2-512
    hmac-sha2-256-etm@openssh.com
    hmac-sha2-512-etm@openssh.com
    Veřejný klíč ssh-rsa 2
    rsa-sha2-256
    rsa-sha2-512
    ecdsa-sha2-nistp256
    ecdsa-sha2-nistp384
    ecdsa-sha2-nistp521

    1 Klíče hostitele jsou publikované tady. 2 Klíče RSA musí mít minimální délku 2048 bitů.

    Podpora SFTP pro Azure Blob Storage v současné době omezuje podporu kryptografických algoritmů na základě aspektů zabezpečení. Důrazně doporučujeme, aby zákazníci k zabezpečenému přístupu ke svým datům používali algoritmy schválené SDL (Microsoft Security Development Lifecycle).

    V tuto chvíli v souladu se službou Microsoft Security SDL neplánujeme podporovat následující: ssh-dss, , diffie-hellman-group14-sha1diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha1, hmac-sha1, . hmac-sha1-96 Podpora algoritmů se může v budoucnu změnit.

    Připojení s využitím SFTP

    Začněte tím, že povolíte podporu SFTP, vytvoříte místního uživatele a přiřadíte mu oprávnění. Pak můžete k bezpečnému připojení a přenosu souborů použít libovolného klienta SFTP. Podrobné pokyny najdete v tématu Připojení do služby Azure Blob Storage pomocí protokolu SSH File Transfer Protocol (SFTP).

    Známá podporovaná klienti

    Následující klienti mají podporu kompatibilních algoritmů s protokolem SFTP pro Azure Blob Storage. Pokud máte potíže s připojením, přečtěte si informace o omezeních a známých problémech s podporou protokolu SFTP (File Transfer Protocol) ve službě Azure Blob Storage . Tento seznam není vyčerpávající a může se v průběhu času měnit.

    • AsyncSSH 2.1.0 nebo novější
    • Axway
    • Cyberduck 7.8.2+
    • edtFTPjPRO 7.0.0+
    • FileZilla 3.53.0+
    • libssh 0.9.5+
    • Starší verze Mavericku 1.7.15 nebo novější
    • Moveit 12.7
    • OpenSSH 7.4 nebo novější
    • 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 nebo novější
    • Workday
    • XFB. Brána
    • JSCH 0.1.54+
    • curl 7.85.0+
    • AIX1
    • MobaXterm v21.3

    1 Musí být nastavena AllowPKCS12KeystoreAutoOpen možnost .no

    Omezení a známé problémy

    Úplný seznam omezení a problémů s podporou SFTP pro Azure Blob Storage najdete v článku o omezeních a známých problémech.

    Ceny a fakturace

    Povolení koncového bodu SFTP má hodinové náklady. Nejnovější informace o cenách najdete v tématu Ceny služby Azure Blob Storage.

    Tip

    Pokud se chcete vyhnout pasivním poplatkům, zvažte povolení SFTP pouze v případě, že ho aktivně používáte k přenosu dat. Pokyny k povolení a zakázání podpory SFTP najdete v tématu Připojení do služby Azure Blob Storage pomocí protokolu SFTP (File Transfer Protocol).

    Platí ceny za transakce, úložiště a sítě pro příslušný účet úložiště. Všechny transakce SFTP se převedou na čtení, zápis nebo jiné transakce v účtech úložiště. To zahrnuje všechny příkazy SFTP a volání rozhraní API. Další informace najdete v tématu Vysvětlení celého fakturačního modelu pro Azure Blob Storage.

    Viz také