Sdílet prostřednictvím


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 pomocí klienta SFTP, který umožňuje 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 povolit podporu SFTP pro účty Blob Storage jediným kliknutím. 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

Klienti SFTP nemůžou být autorizovaní pomocí identit Microsoft Entra. 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 řízení přístupu (ACL) 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.

Povolení podpory SFTP nezabrání jiným typům klientů v používání Microsoft Entra ID. Pro uživatele, kteří přistupují ke službě Blob Storage pomocí webu Azure Portal, Azure CLI, příkazů Azure PowerShellu, AzCopy a sad Azure SDK a rozhraní Azure REST API, můžete k autorizaci přístupu dál používat úplné nastavení zabezpečení služby Azure Blob Storage. 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, musíte 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 souboru nebo adresáře
  • Upravit oprávnění p
  • Změna seznamu ACL souboru nebo adresáře
  • 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

    Důležité

    Tato funkce je aktuálně ve verzi PREVIEW. Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.

    Seznamy ACL umožňují udělit „jemně odstupňovaný“ přístup, například přístup k zápisu do určitého adresáře nebo souboru. Další informace o seznamech ACL najdete v tématu Seznamy řízení přístupu (ACL) v Azure Data Lake Storage Gen2.

    Pokud chcete autorizovat místního uživatele pomocí seznamů ACL, musíte nejprve povolit autorizaci seznamu ACL pro daného místního uživatele. Viz Udělení oprávnění kontejnerům.

    Poznámka:

    I když seznam ACL může definovat úroveň oprávnění pro mnoho různých typů identit, k autorizaci místního uživatele je možné použít pouze vlastnícího uživatele, vlastnící skupinu a všechny identity ostatních uživatelů. Pojmenovaní uživatelé a pojmenované skupiny se zatím nepodporují pro autorizaci místních uživatelů.

    Následující tabulka popisuje vlastnosti místního uživatele, který se používá k autorizaci seznamu ACL.

    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
  • Vyhodnocení oprávnění seznamu ACL

    Seznamy ACL se vyhodnocují jenom v případě, že místní uživatel nemá potřebná oprávnění ke kontejneru k provedení operace. Vzhledem k tomu, jak systém vyhodnotí přístupová oprávnění, nemůžete pomocí seznamu ACL omezit přístup, který už byl udělen oprávněními na úrovni kontejneru. Důvodem je to, že systém nejprve vyhodnotí oprávnění kontejneru a pokud tato oprávnění udělují dostatečná přístupová oprávnění, seznamy ACL se ignorují.

    Důležité

    Pokud chcete místnímu uživateli udělit přístup ke čtení nebo zápisu k souboru, musíte místnímu uživateli udělit oprávnění spouštět ke kořenové složce kontejneru a ke každé složce v hierarchii složek, které vedou k souboru. Pokud je místní uživatel vlastníkem nebo vlastnící skupinou, můžete použít oprávnění Spustit pro vlastníka nebo vlastnící skupinu. Jinak budete muset použít oprávnění Spustit pro všechny ostatní uživatele.

    Úprava seznamů ACL pomocí klienta SFTP

    I když je možné oprávnění seznamu ACL upravit pomocí libovolného podporovaného nástroje Azure nebo sady SDK, mohou je místní uživatelé také upravovat. Pokud chcete místnímu uživateli povolit úpravy oprávnění seznamu ACL, musíte nejprve udělit oprávnění místního uživatele Modify Permissions . Viz Udělení oprávnění kontejnerům.

    Místní uživatelé můžou změnit úroveň oprávnění pouze vlastnícího uživatele, vlastnícího skupiny a všech ostatních uživatelů seznamu ACL. Přidání nebo úprava položek seznamu ACL pro pojmenované uživatele, pojmenované skupiny a pojmenované objekty zabezpečení se zatím nepodporují.

    Místní uživatelé můžou také změnit ID vlastnícího uživatele a vlastnící skupiny. Ve skutečnosti můžou ID vlastnícího uživatele nebo vlastnící skupiny změnit jenom místní uživatelé na místní ID uživatele. Id místního uživatele v seznamu ACL zatím nejde odkazovat pomocí nástroje Azure nebo sady SDK. Pokud chcete změnit vlastnícího uživatele nebo vlastnící skupinu adresáře nebo objektu blob, musí mít místní uživatel udělená Modify Ownership oprávnění.

    Pokud chcete zobrazit příklady, přečtěte si téma Úprava seznamu ACL souboru nebo adresáře.

    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 délku minimálně 2 048 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).

    Aspekty sítí

    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. Při použití protokolu SFTP můžete chtít omezit veřejný přístup prostřednictvím konfigurace brány firewall, virtuální sítě nebo privátního koncového bodu. Tato nastavení se vynucují na aplikační vrstvě, což znamená, že nejsou specifická pro protokol SFTP a budou mít vliv na připojení ke všem koncovým bodům služby Azure Storage. Další informace o bránách firewall a konfiguraci sítě najdete v tématu Konfigurace bran firewall služby Azure Storage a virtuálních sítí.

    Poznámka:

    Nástroje pro audit, které se pokoušejí určit podporu protokolu TLS ve vrstvě protokolu, můžou kromě minimální požadované verze vracet i minimální požadovanou verzi při přímém spuštění na koncovém bodu účtu úložiště. Další informace najdete v tématu Vynucení minimální požadované verze protokolu TLS (Transport Layer Security) pro požadavky na účet úložiště.

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