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.
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 | |
Write | w | |
List | l | |
Odstranění | d | |
Vytvoření | c | |
Změnit vlastnictví | o | |
Upravit oprávnění | p |
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 | |
chgrp | o | |
chmod | p |
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 | |
Groupid | |
AllowAclAuthorization |
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/mydirectory
souboru . 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-sha1
diffie-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é
- Připojení do Služby Azure Blob Storage pomocí protokolu SFTP (File Transfer Protocol)
- Omezení a známé problémy s podporou protokolu SFTP (File Transfer Protocol) SSH pro Azure Blob Storage
- Klíče hostitele pro podporu protokolu SFTP (File Transfer Protocol) pro Azure Blob Storage
- Důležité informace o výkonu protokolu SFTP (File Transfer Protocol) SSH ve službě Azure Blob Storage