SSH-fájlátviteli protokoll (SFTP) támogatása az Azure Blob Storage-hoz

A Blob Storage mostantól támogatja az SSH-fájlátviteli protokollt (SFTP). Ez a támogatás lehetővé teszi, hogy biztonságosan csatlakozzon a Blob Storage-hoz egy SFTP-ügyfél használatával, lehetővé téve az SFTP használatát a fájlhozzáféréshez, a fájlátvitelhez és a fájlkezeléshez.

Íme egy videó, amely további információkat közöl erről.

Az Azure biztonságos adatátvitelt tesz lehetővé a Blob Storage-fiókokba az Azure Blob Service REST API, az Azure SDK-k és az olyan eszközök használatával, mint az AzCopy. Az örökölt számítási feladatok azonban gyakran használnak hagyományos fájlátviteli protokollokat, például az SFTP-t. Az egyéni alkalmazásokat frissítheti a REST API-k és az Azure SDK-k használatára, de csak jelentős kódmódosításokkal.

A funkció megjelenése előtt, ha SFTP-vel szeretné továbbítani az adatokat az Azure Blob Storage-ba, akkor vagy egy harmadik féltől származó terméket kell vásárolnia, vagy saját megoldást kell vezénylnie. Az egyéni megoldásokhoz virtuális gépeket (VM-eket) kell létrehoznia az Azure-ban egy SFTP-kiszolgáló üzemeltetéséhez, majd egy összetett architektúra frissítéséhez, javításához, kezeléséhez, méretezéséhez és karbantartásához.

Az Azure Blob Storage SFTP-támogatásával mostantól egyetlen kattintással engedélyezheti a Blob Storage-fiókok SFTP-támogatását. Ezután beállíthat helyi felhasználói identitásokat a hitelesítéshez, hogy az SFTP-vel csatlakozzon a tárfiókhoz a 22-s porton keresztül.

Ez a cikk az Azure Blob Storage SFTP-támogatását ismerteti. Az SFTP storage-fiókhoz való engedélyezéséről az SSH-fájlátviteli protokoll (SFTP) használatával Csatlakozás az Azure Blob Storage-ba.

Feljegyzés

Az SFTP egy platformszintű szolgáltatás, így a 22-es port akkor is megnyílik, ha a fiókbeállítás le van tiltva. Ha az SFTP-hozzáférés nincs konfigurálva, akkor minden kérés leválasztódik a szolgáltatásról.

SFTP és a hierarchikus névtér

Az SFTP-támogatáshoz engedélyezni kell a hierarchikus névteret. A hierarchikus névtér ugyanúgy rendezi az objektumokat (fájlokat) könyvtárak és alkönyvtárak hierarchiájába, mint a számítógépen lévő fájlrendszer. A hierarchikus névtér lineárisan skálázható, és nem csökkenti az adatkapacitást vagy a teljesítményt.

A hierarchikus névtér különböző protokollokat támogat. Az SFTP az elérhető protokollok egyike. Az alábbi képen több protokollon és REST API-on keresztüli tárelérés látható. A könnyebb olvashatóság érdekében ez a kép a Gen2 REST kifejezést használja az Azure Data Lake Storage Gen2 REST API-ra való hivatkozáshoz.

hierarchikus névtér

SFTP-engedélymodell

Az SFTP-ügyfelek nem engedélyezhetők Microsoft Entra-identitásokkal. Az SFTP ehelyett az identitáskezelés új, helyi felhasználóknak nevezett formáját használja.

A helyi felhasználóknak jelszóval vagy SSH-val kell hitelesítő adatokat használniuk a hitelesítéshez. Egy tárfiókhoz legfeljebb 2000 helyi felhasználó lehet.

A hozzáférési engedélyek beállításához hozzon létre egy helyi felhasználót, és válassza ki a hitelesítési módszereket. Ezután a fiók minden tárolójához megadhatja, hogy milyen szintű hozzáférést szeretne biztosítani a felhasználónak.

Figyelemfelhívás

A helyi felhasználók nem működnek együtt más Azure Storage-engedélymodellekkel, például az RBAC-vel (szerepköralapú hozzáférés-vezérlés) és az ABAC-vel (attribútumalapú hozzáférés-vezérléssel). A hozzáférés-vezérlési listák (ACL-ek) az előzetes verzió szintjén támogatottak a helyi felhasználók számára.

Jeff például csak olvasási engedéllyel rendelkezik (RBAC-n vagy ABAC-n keresztül szabályozható) a Microsoft Entra-identitáson keresztül a tároló con1-ben tárolt foo.txt fájlhoz. Ha Jeff NFS-en keresztül éri el a tárfiókot (ha nem gyökér-/szuperfelhasználóként van csatlakoztatva), a Blob REST vagy a Data Lake Storage Gen2 REST segítségével, ezek az engedélyek érvénybe lépnek. Ha azonban Jeff rendelkezik egy helyi felhasználói identitással is, amely törlési engedéllyel rendelkezik a tároló con1-ben lévő adatokhoz, akkor a helyi felhasználói identitás használatával törölheti foo.txt az SFTP-vel.

Az SFTP támogatásának engedélyezése nem akadályozza meg, hogy más típusú ügyfelek használják a Microsoft Entra-azonosítót. Azok a felhasználók, amelyek az Azure Portal, az Azure CLI, az Azure PowerShell-parancsok, az AzCopy, valamint az Azure SDK-k és az Azure REST API-k használatával férnek hozzá a Blob Storage-hoz, továbbra is használhatják az Azure Blob Storage biztonsági beállításának teljes szélességét a hozzáférés engedélyezéséhez. További információ: Hozzáférés-vezérlési modell az Azure Data Lake Storage Gen2-ben.

Hitelesítési módszerek

Az SFTP-n keresztül csatlakozó helyi felhasználókat jelszóval vagy egy nyilvános-privát SSH-kulcspair használatával hitelesítheti. A hitelesítés mindkét formáját konfigurálhatja, és lehetővé teheti a helyi felhasználók számára, hogy kiválasszanak egyet. A többtényezős hitelesítés azonban nem támogatott, mivel a sikeres hitelesítéshez érvényes jelszóra és érvényes nyilvános-titkos kulcspárra is szükség van.

Jelszavak

Nem állíthat be egyéni jelszavakat, inkább az Azure hoz létre egyet. Ha a jelszóhitelesítést választja, a rendszer a helyi felhasználó konfigurálásának befejezése után adja meg a jelszót. Győződjön meg arról, hogy másolja a jelszót, és mentse olyan helyre, ahol később megtalálja. Ezt a jelszót nem fogja tudni újból lekérni az Azure-ból. Ha elveszíti a jelszót, létre kell hoznia egy újat. Biztonsági okokból nem állíthatja be a jelszót.

SSH-kulcspárok

A nyilvános-privát kulcspár a Secure Shell (SSH) hitelesítésének leggyakoribb formája. A titkos kulcs titkos, és csak a helyi felhasználó számára ismert. A nyilvános kulcs tárolása az Azure-ban történik. Amikor egy SSH-ügyfél helyi felhasználói identitással csatlakozik a tárfiókhoz, egy nyilvános kulccsal és aláírással ellátott üzenetet küld. Az Azure ellenőrzi az üzenetet, és ellenőrzi, hogy a felhasználót és a kulcsot felismeri-e a tárfiók. További információ: Az SSH és a kulcsok áttekintése.

Ha privát-nyilvános kulcspáros hitelesítést választ, létrehozhat egyet, használhat egy már az Azure-ban tároltat, vagy megadhatja az Azure-nak egy meglévő nyilvános-privát kulcspár nyilvános kulcsát. Helyi felhasználónként legfeljebb 10 nyilvános kulcs lehet.

Tárolóengedélyek

Tárolószintű engedélyek esetén kiválaszthatja, hogy mely tárolókhoz szeretne hozzáférést biztosítani, és milyen hozzáférési szintet szeretne biztosítani (olvasási, írási, listázási, törlési, létrehozási, tulajdonosi és módosítási engedélyek). Ezek az engedélyek a tároló összes könyvtárára és alkönyvtárára vonatkoznak. Minden helyi felhasználónak 100 tárolóhoz adhat hozzáférést. A tárolóengedélyek helyi felhasználó létrehozása után is frissíthetők. Az alábbi táblázat részletesebben ismerteti az egyes engedélyeket.

Engedély Szimbólum Leírás
Olvasás r
  • Fájltartalom olvasása
  • Írás w
  • Fájl feltöltése
  • Könyvtár létrehozása
  • Könyvtár feltöltése
  • Lista l
  • Tartalom listázása a tárolóban
  • Tartalom listázása a címtárban
  • Törlés d
  • Fájl/könyvtár törlése
  • Létrehozás c
  • Fájl feltöltése, ha a fájl nem létezik
  • Címtár létrehozása, ha a címtár nem létezik
  • Tulajdonos módosítása o
  • Fájl vagy könyvtár tulajdonosi vagy tulajdonosi csoportjának módosítása
  • Engedélyek módosítása p
  • Fájl vagy könyvtár ACL-jének módosítása
  • Ha írási műveleteket hajt végre a blobokon az alkönyvtárakban, olvasási engedély szükséges a címtár megnyitásához és a blobtulajdonságok eléréséhez.

    Hozzáférés-vezérlési lista (ACL-ek)

    Fontos

    Ez a funkció jelenleg előzetes verzióban érhető el. A bétaverziójú, előzetes verziójú vagy másként még általánosan nem elérhető Azure-szolgáltatások jogi feltételeit lásd: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

    Az ACL-ek lehetővé teszik a "finomszemcsés" hozzáférés biztosítását, például írási hozzáférést egy adott könyvtárhoz vagy fájlhoz. További információ az ACL-ekről: Hozzáférés-vezérlési listák (ACL-ek) az Azure Data Lake Storage Gen2-ben.

    Ha helyi felhasználót szeretne engedélyezni ACL-ek használatával, először engedélyeznie kell az ACL-engedélyezést a helyi felhasználó számára. Lásd: Engedély megadása tárolókhoz.

    Feljegyzés

    Bár az ACL számos különböző identitástípus jogosultsági szintjét definiálhatja, csak a tulajdonos felhasználó, a tulajdonoscsoport és az összes többi felhasználói identitás használható a helyi felhasználók engedélyezéséhez. Az elnevezett felhasználók és az elnevezett csoportok még nem támogatottak a helyi felhasználói engedélyezéshez.

    Az alábbi táblázat az ACL-engedélyezéshez használt helyi felhasználó tulajdonságait ismerteti.

    Tulajdonság Leírás
    UserId
  • A helyi felhasználó egyedi azonosítója a tárfiókon belül
  • Alapértelmezés szerint a helyi felhasználó létrehozásakor jön létre
  • A felhasználó fájlon/könyvtáron való beállításához használatos
  • Csoportazonosító
  • Helyi felhasználók egy csoportjának azonosítója
  • A fájl/könyvtár tulajdonoscsoportjának beállításához használatos
  • AllowAclAuthorization
  • A helyi felhasználó kéréseinek engedélyezése ACL-ekkel
  • Az ACL-engedélyek kiértékelése

    Az ACL-ek kiértékelése csak akkor történik meg, ha a helyi felhasználó nem rendelkezik a művelet végrehajtásához szükséges tárolóengedélyekkel. A hozzáférési engedélyek rendszer általi kiértékelésének módja miatt nem használhat ACL-t a tárolószintű engedélyek által már megadott hozzáférés korlátozására. Ennek az az oka, hogy a rendszer először kiértékeli a tárolóengedélyeket, és ha ezek az engedélyek megfelelő hozzáférési engedélyt adnak, a rendszer figyelmen kívül hagyja az ACL-eket.

    Fontos

    Ahhoz, hogy egy helyi felhasználó olvasási vagy írási hozzáférést biztosítson egy fájlhoz, a helyi felhasználónak végrehajtási engedélyeket kell adnia a tároló gyökérmappájára és a fájlhoz vezető mappák hierarchiájának minden mappájára. Ha a helyi felhasználó a tulajdonos vagy a tulajdonos csoport, akkor végrehajtási engedélyeket alkalmazhat a tulajdonos felhasználóra vagy a tulajdonoscsoportra. Ellenkező esetben a Végrehajtási engedélyt minden más felhasználóra alkalmaznia kell.

    ACL-ek módosítása SFTP-ügyféllel

    Bár az ACL-engedélyek bármely támogatott Azure-eszközzel vagy SDK-val módosíthatók, a helyi felhasználók is módosíthatják őket. Ahhoz, hogy egy helyi felhasználó módosíthassa az ACL-engedélyeket, először meg kell adnia a helyi felhasználó Modify Permissions engedélyét. Lásd: Engedély megadása tárolókhoz.

    A helyi felhasználók csak a tulajdonos felhasználó, a tulajdonoscsoport és az ACL összes többi felhasználójának engedélyszintje módosíthatók. Az ACL-bejegyzések hozzáadása vagy módosítása nevesített felhasználókhoz, elnevezett csoportokhoz és nevesített biztonsági tagokhoz még nem támogatott.

    A helyi felhasználók módosíthatják a tulajdonos felhasználó és a tulajdonoscsoport azonosítóját is. Valójában csak a helyi felhasználók módosíthatják a tulajdonos felhasználó vagy a tulajdonoscsoport azonosítóját helyi felhasználói azonosítóra. Egy Azure-eszköz vagy SDK használatával még nem hivatkozhat helyi felhasználói azonosítóra az ACL-ben. A címtár vagy blob tulajdonosi vagy tulajdonosi csoportjának módosításához a helyi felhasználónak engedélyt kell adnia Modify Ownership .

    Példák megtekintéséhez tekintse meg egy fájl vagy könyvtár ACL-jének módosítása című témakört.

    Kezdőkönyvtár

    Az engedélyek konfigurálása során beállíthatja a helyi felhasználó otthoni könyvtárát. Ha nincs más tároló megadva egy SFTP-kapcsolatkérésben, akkor a kezdőkönyvtár az a könyvtár, amelyhez a felhasználó alapértelmezés szerint csatlakozik. Vegyük például az Open SSH használatával küldött alábbi kérést. Ez a kérés nem ad meg tároló- vagy könyvtárnevet a sftp parancs részeként.

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

    Ha egy felhasználó mycontainer/mydirectorykezdőkönyvtárát állítja be, akkor az adott könyvtárhoz csatlakoznak. Ezután a logfile.txt fájl fel lesz töltve a fájlba mycontainer/mydirectory. Ha nem állította be a kezdőkönyvtárat, a kapcsolati kísérlet sikertelen lesz. Ehelyett a csatlakozó felhasználóknak meg kell adniuk egy tárolót a kéréssel együtt, majd SFTP-parancsokkal kell navigálniuk a célkönyvtárhoz a fájl feltöltése előtt. Az alábbi példa a következőket mutatja be:

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

    Feljegyzés

    A kezdőkönyvtár csak az a kezdeti könyvtár, amelyben a csatlakozó helyi felhasználó található. A helyi felhasználók a megfelelő tárolóengedélyek birtokában a tároló bármely más elérési útját is elérhetik, amelyhez csatlakoznak.

    Támogatott algoritmusok

    Számos különböző SFTP-ügyfél használatával csatlakozhat biztonságosan és vihet át fájlokat. A csatlakozó ügyfeleknek az alábbi táblázatban megadott algoritmusokat kell használniuk.

    Típus Algoritmus
    Gazdagépkulcs 1 rsa-sha2-256 2
    rsa-sha2-512 2
    ecdsa-sha2-nistp256
    ecdsa-sha2-nistp384
    Kulcscsere ecdh-sha2-nistp384
    ecdh-sha2-nistp256
    diffie-hellman-group14-sha256
    diffie-hellman-group16-sha512
    diffie-hellman-group-exchange-sha256
    Rejtjelek/titkosítás aes128-gcm@openssh.com
    aes256-gcm@openssh.com
    aes128-ctr
    aes192-ctr
    aes256-ctr
    Integritás/MAC hmac-sha2-256
    hmac-sha2-512
    hmac-sha2-256-etm@openssh.com
    hmac-sha2-512-etm@openssh.com
    Nyilvános kulcs ssh-rsa 2
    rsa-sha2-256
    rsa-sha2-512
    ecdsa-sha2-nistp256
    ecdsa-sha2-nistp384
    ecdsa-sha2-nistp521

    1 A közzétett gazdagépkulcsok itt találhatók. 2 RSA kulcsnak legalább 2048 bit hosszúságúnak kell lennie.

    Az Azure Blob Storage-hoz elérhető SFTP-támogatás kriptográfiai algoritmusokra vonatkozó támogatása biztonsági megfontolásokból korlátozott. Nyomatékosan javasoljuk az ügyfelek számára a Microsoft Biztonságfejlesztési életciklus (SDL) jóváhagyott algoritmusainak használatát az adatok biztonságos eléréséhez.

    Jelenleg a Microsoft Security SDL-nek megfelelően nem tervezzük támogatni a következőket: ssh-dss, , diffie-hellman-group14-sha1, diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha1, hmac-sha1hmac-sha1-96. Az algoritmusok támogatása a jövőben változhat.

    Csatlakozás SFTP-vel

    Első lépésként engedélyezze az SFTP-támogatást, hozzon létre egy helyi felhasználót, és rendeljen hozzá engedélyeket a helyi felhasználóhoz. Ezután bármilyen SFTP-ügyféllel biztonságosan csatlakozhat, majd fájlokat továbbíthat. Részletes útmutatásért tekintse meg az Azure Blob Storage-ba való Csatlakozás az SSH-fájlátviteli protokoll (SFTP) használatával.

    Hálózati szempontok

    Az SFTP egy platformszintű szolgáltatás, így a 22-es port akkor is megnyílik, ha a fiókbeállítás le van tiltva. Ha az SFTP-hozzáférés nincs konfigurálva, akkor minden kérés megszakad a szolgáltatástól. Az SFTP használatakor érdemes lehet korlátozni a nyilvános hozzáférést tűzfal, virtuális hálózat vagy privát végpont konfigurációjával. Ezek a beállítások az alkalmazásrétegen vannak kényszerítve, ami azt jelenti, hogy nem az SFTP-hez tartoznak, és hatással lesznek az összes Azure Storage-végponttal való kapcsolatra. További információ a tűzfalakról és a hálózati konfigurációról: Azure Storage-tűzfalak és virtuális hálózatok konfigurálása.

    Feljegyzés

    A protokollréteg TLS-támogatásának meghatározására szolgáló naplózási eszközök a minimálisan szükséges verzió mellett TLS-verziókat is visszaadhatnak, ha közvetlenül a tárfiók végpontján futnak. További információ: A Transport Layer Security (TLS) minimálisan szükséges verziójának kényszerítése tárfiókra irányuló kérelmek esetén.

    Ismert támogatott ügyfelek

    Az alábbi ügyfelek kompatibilis algoritmusokkal rendelkeznek az Azure Blob Storage SFTP-jével. Ha problémát tapasztal a csatlakozással, tekintse meg az Azure Blob Storage SSH-fájlátviteli protokoll (SFTP) támogatásával kapcsolatos korlátozásokat és ismert problémákat. Ez a lista nem teljes, és idővel változhat.

    • 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+
    • Moveit 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+
    • Workday
    • XFB. Átjáró
    • JSCH 0.1.54+
    • curl 7.85.0+
    • AIX1
    • MobaXterm v21.3

    1 A beállítást a következőre kell állítani AllowPKCS12KeystoreAutoOpen : no.

    Korlátozások és ismert problémák

    Az Azure Blob Storage SFTP-támogatásával kapcsolatos korlátozások és problémák teljes listáját a korlátozásokról és az ismert problémákról szóló cikkben találja.

    Árképzés és számlázás

    Az SFTP engedélyezése óránkénti költséggel jár. A legfrissebb díjszabási információkért tekintse meg az Azure Blob Storage díjszabását.

    Tipp.

    A passzív díjak elkerülése érdekében fontolja meg az SFTP engedélyezését csak akkor, ha aktívan használja az adatok átvitelére. Az SFTP-támogatás engedélyezésével és letiltásával kapcsolatos útmutatásért tekintse meg Csatlakozás az Azure Blob Storage-ba az SSH-fájlátviteli protokoll (SFTP) használatával.

    A mögöttes tárfiók tranzakciós, tárolási és hálózati árai érvényesek. A rendszer minden SFTP-tranzakciót olvasási, írási vagy egyéb tranzakcióvá konvertál a tárfiókokon. Ez magában foglalja az összes SFTP-parancsot és API-hívást. További információ: Az Azure Blob Storage teljes számlázási modelljének ismertetése.