Połączenie do usługi Azure Blob Storage przy użyciu protokołu SSH File Transfer Protocol (SFTP)

Możesz bezpiecznie nawiązać połączenie z punktem końcowym usługi Blob Storage konta usługi Azure Storage przy użyciu klienta SFTP, a następnie przekazać i pobrać pliki. W tym artykule przedstawiono sposób włączania protokołu SFTP, a następnie nawiązywania połączenia z usługą Blob Storage przy użyciu klienta SFTP.

Aby dowiedzieć się więcej o obsłudze protokołu SFTP dla usługi Azure Blob Storage, zobacz Protokół SSH File Transfer Protocol (SFTP) w usłudze Azure Blob Storage.

Wymagania wstępne

  • Standardowe konto magazynu blokowych obiektów blob ogólnego przeznaczenia w wersji 2 lub Premium. Możesz również włączyć sfTP podczas tworzenia konta. Aby uzyskać więcej informacji na temat tych typów kont magazynu, zobacz Omówienie konta magazynu.

  • Należy włączyć funkcję hierarchicznej przestrzeni nazw konta. Aby włączyć funkcję hierarchicznej przestrzeni nazw, zobacz Uaktualnianie usługi Azure Blob Storage przy użyciu funkcji usługi Azure Data Lake Storage Gen2.

  • Jeśli łączysz się z sieci lokalnej, upewnij się, że klient zezwala na komunikację wychodzącą za pośrednictwem portu 22 używanego przez protokół SFTP.

Włączanie obsługi protokołu SFTP

W tej sekcji pokazano, jak włączyć obsługę sfTP dla istniejącego konta magazynu. Aby wyświetlić szablon usługi Azure Resource Manager, który umożliwia obsługę protokołu SFTP w ramach tworzenia konta, zobacz Tworzenie konta usługi Azure Storage i kontenera obiektów blob dostępnych przy użyciu protokołu SFTP na platformie Azure. Aby wyświetlić interfejsy API REST użytkownika lokalnego i odwołania do platformy .NET, zobacz Local Users and LocalUser Class (Użytkownicy lokalni i Klasa LocalUser).

  1. W witrynie Azure Portal przejdź do swojego konta magazynu.

  2. W obszarze Ustawienia wybierz pozycję SFTP.

    Uwaga

    Ta opcja jest wyświetlana tylko wtedy, gdy włączono funkcję hierarchicznej przestrzeni nazw konta. Aby włączyć funkcję hierarchicznej przestrzeni nazw, zobacz Uaktualnianie usługi Azure Blob Storage przy użyciu funkcji usługi Azure Data Lake Storage Gen2.

  3. Wybierz pozycję Włącz SFTP.

    Enable SFTP button

    Uwaga

    Jeśli na stronie konfiguracji SFTP nie ma żadnych użytkowników lokalnych, musisz dodać co najmniej jeden z nich. Aby dodać użytkowników lokalnych, zobacz następną sekcję.

Wyłączanie obsługi SFTP

W tej sekcji pokazano, jak wyłączyć obsługę sfTP dla istniejącego konta magazynu. Ponieważ obsługa SFTP wiąże się z kosztami godzinowymi, rozważ wyłączenie obsługi SFTP, gdy klienci nie aktywnie używają protokołu SFTP do transferu danych.

  1. W witrynie Azure Portal przejdź do swojego konta magazynu.

  2. W obszarze Ustawienia wybierz pozycję SFTP.

  3. Wybierz pozycję Wyłącz SFTP.

    Screenshot of the disable SFTP button.

Konfiguracja uprawnień

Usługa Azure Storage nie obsługuje sygnatury dostępu współdzielonego (SAS) ani uwierzytelniania firmy Microsoft Entra na potrzeby uzyskiwania dostępu do punktu końcowego SFTP. Zamiast tego należy użyć tożsamości o nazwie „użytkownik lokalny”, która może być zabezpieczona przy użyciu hasła wygenerowanego przez platformę Azure lub pary kluczy Secure Shell (SSH). Aby udzielić dostępu do klienta łączącego, konto magazynu musi mieć tożsamość skojarzona z hasłem lub parą kluczy. Ta tożsamość jest nazywana użytkownikiem lokalnym.

W tej sekcji dowiesz się, jak utworzyć użytkownika lokalnego, wybrać metodę uwierzytelniania i przypisać uprawnienia dla tego użytkownika lokalnego.

Aby dowiedzieć się więcej na temat modelu uprawnień SFTP, zobacz Model uprawnień SFTP.

Napiwek

W tej sekcji przedstawiono sposób konfigurowania użytkowników lokalnych dla istniejącego konta magazynu. Aby wyświetlić szablon usługi Azure Resource Manager, który konfiguruje użytkownika lokalnego w ramach tworzenia konta, zobacz Tworzenie konta usługi Azure Storage i kontenera obiektów blob dostępnych przy użyciu protokołu SFTP na platformie Azure.

  1. W witrynie Azure Portal przejdź do swojego konta magazynu.

  2. W obszarze Ustawienia wybierz pozycję SFTP, a następnie wybierz pozycję Dodaj użytkownika lokalnego.

    Add local users button

  3. W okienku Dodawanie konfiguracji użytkownika lokalnego dodaj nazwę użytkownika, a następnie wybierz metody uwierzytelniania, które chcesz skojarzyć z tym użytkownikiem lokalnym. Możesz skojarzyć hasło i / lub klucz SSH.

    Ważne

    Chociaż można włączyć obie formy uwierzytelniania, klienci SFTP mogą łączyć się przy użyciu tylko jednego z nich. Uwierzytelnianie wieloskładnikowe, w przypadku gdy zarówno prawidłowe hasło, jak i prawidłowa para kluczy publicznych i prywatnych są wymagane do pomyślnego uwierzytelnienia, nie jest obsługiwana.

    Jeśli wybierzesz pozycję Hasło SSH, hasło zostanie wyświetlone po zakończeniu wszystkich kroków w okienku Dodawanie konfiguracji użytkownika lokalnego. Hasła SSH są generowane przez platformę Azure i mają długość co najmniej 32 znaków.

    Jeśli wybierzesz parę kluczy SSH, wybierz pozycję Źródło klucza publicznego, aby określić źródło klucza.

    Local user configuration pane

    W poniższej tabeli opisano każdą opcję źródła klucza:

    Opcja Wskazówki
    Generowanie nowej pary kluczy Użyj tej opcji, aby utworzyć nową parę kluczy publicznych/prywatnych. Klucz publiczny jest przechowywany na platformie Azure przy użyciu podanej nazwy klucza. Klucz prywatny można pobrać po pomyślnym dodaniu użytkownika lokalnego.
    Używanie istniejącego klucza przechowywanego na platformie Azure Użyj tej opcji, jeśli chcesz użyć klucza publicznego, który jest już przechowywany na platformie Azure. Aby znaleźć istniejące klucze na platformie Azure, zobacz Wyświetlanie listy kluczy. Gdy klienci SFTP łączą się z usługą Azure Blob Storage, ci klienci muszą podać klucz prywatny skojarzony z tym kluczem publicznym.
    Użyj istniejącego klucza publicznego Użyj tej opcji, jeśli chcesz przekazać klucz publiczny przechowywany poza platformą Azure. Jeśli nie masz klucza publicznego, ale chcesz wygenerować klucz poza platformą Azure, zobacz Generowanie kluczy za pomocą narzędzia ssh-keygen.

    Uwaga

    Istniejąca opcja klucza publicznego obsługuje obecnie tylko sformatowane klucze publiczne OpenSSH. Podany klucz musi mieć następujący format: <key type> <key data>. Na przykład klucze RSA będą wyglądać mniej więcej tak: ssh-rsa AAAAB3N.... Jeśli klucz jest w innym formacie, można ssh-keygen go użyć do przekonwertowania go na format OpenSSH.

  4. Wybierz pozycję Dalej , aby otworzyć kartę Uprawnienia kontenera w okienku konfiguracji.

  5. Na karcie Uprawnienia kontenera wybierz kontenery, które chcesz udostępnić temu użytkownikowi lokalnemu. Następnie wybierz typy operacji, które chcesz włączyć dla tego użytkownika lokalnego.

    Container permissions tab

    Ważne

    Użytkownik lokalny musi mieć co najmniej jedno uprawnienie kontenera dla kontenera, z którego nawiązuje połączenie, w przeciwnym razie próba połączenia zakończy się niepowodzeniem.

  6. W polu Edycja katalogu głównego wpisz nazwę kontenera lub ścieżkę katalogu (w tym nazwę kontenera), która będzie domyślną lokalizacją skojarzona z tym użytkownikiem lokalnym.

    Aby dowiedzieć się więcej na temat katalogu macierzystego, zobacz Katalog główny.

  7. Wybierz przycisk Dodaj, aby dodać użytkownika lokalnego.

    Jeśli włączono uwierzytelnianie haseł, po dodaniu użytkownika lokalnego zostanie wyświetlone wygenerowane hasło platformy Azure w oknie dialogowym.

    Ważne

    Tego hasła nie można uzyskać później, dlatego pamiętaj, aby skopiować to hasło, a następnie zapisać je gdzieś, gdzie będzie można je znaleźć.

    Jeśli zdecydujesz się wygenerować nową parę kluczy, zostanie wyświetlony monit o pobranie klucza prywatnego tej pary kluczy po dodaniu użytkownika lokalnego.

    Uwaga

    Użytkownicy lokalni mają sharedKey właściwość, która jest używana tylko do uwierzytelniania protokołu SMB.

Połączenie klienta SFTP

Aby bezpiecznie nawiązać połączenie, a następnie przesłać pliki, możesz użyć dowolnego klienta SFTP. Poniższy zrzut ekranu przedstawia sesję programu Windows PowerShell, która używa uwierzytelniania Za pomocą protokołu Open SSH i uwierzytelniania hasłem w celu nawiązania połączenia, a następnie przekazania pliku o nazwie logfile.txt.

Connect with Open SSH

Uwaga

Nazwa użytkownika SFTP to storage_account_name.username. W powyższym przykładzie storage_account_name wartość to "contoso4", a element username to "contosouser". Połączona nazwa użytkownika staje się contoso4.contosouser dla polecenia SFTP.

Uwaga

Może zostać wyświetlony monit o zaufanie do klucza hosta. Prawidłowe klucze hosta są publikowane tutaj.

Po zakończeniu transferu możesz wyświetlić plik i zarządzać nim w witrynie Azure Portal.

Uploaded file appears in storage account

Uwaga

Witryna Azure Portal używa interfejsu API REST obiektów blob i interfejsu API REST usługi Data Lake Storage Gen2. Możliwość interakcji z przekazanym plikiem w witrynie Azure Portal pokazuje współdziałanie między sfTP i REST.

Zapoznaj się z dokumentacją klienta SFTP, aby uzyskać wskazówki dotyczące nawiązywania połączeń i transferowania plików.

Połączenie przy użyciu domeny niestandardowej

W przypadku używania domen niestandardowych parametry połączenia to myaccount.myuser@customdomain.com. Jeśli dla użytkownika nie został określony katalog główny, jest to myaccount.mycontainer.myuser@customdomain.com.

Ważne

Upewnij się, że dostawca DNS nie żąda żądań serwera proxy. Korzystanie z serwera proxy może spowodować, że dojdzie do przekroczenia limitu czasu przy próbie połączenia.

Połączenie przy użyciu prywatnego punktu końcowego

W przypadku korzystania z prywatnego punktu końcowego parametry połączenia to myaccount.myuser@myaccount.privatelink.blob.core.windows.net. Jeśli dla użytkownika nie został określony katalog główny, jest to myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.net.

Uwaga

Upewnij się, że zmienisz konfigurację sieci na "Włączone z wybranych sieci wirtualnych i adresów IP" i wybierz prywatny punkt końcowy. W przeciwnym razie zwykły punkt końcowy SFTP będzie nadal publicznie dostępny.

Zagadnienia dotyczące pracy w sieci

SFTP to usługa na poziomie platformy, więc port 22 zostanie otwarty, nawet jeśli opcja konta jest wyłączona. Jeśli dostęp SFTP nie jest skonfigurowany, wszystkie żądania otrzymają rozłączenie z usługą. W przypadku korzystania z protokołu SFTP możesz ograniczyć dostęp publiczny za pośrednictwem konfiguracji zapory, sieci wirtualnej lub prywatnego punktu końcowego. Te ustawienia są wymuszane w warstwie aplikacji, co oznacza, że nie są specyficzne dla protokołu SFTP i będą miały wpływ na łączność ze wszystkimi punktami końcowymi usługi Azure Storage. Aby uzyskać więcej informacji na temat zapór i konfiguracji sieci, zobacz Konfigurowanie zapór i sieci wirtualnych usługi Azure Storage.

Uwaga

Narzędzia inspekcji, które próbują określić obsługę protokołu TLS w warstwie protokołu, mogą zwracać wersje protokołu TLS oprócz minimalnej wymaganej wersji podczas uruchamiania bezpośrednio względem punktu końcowego konta magazynu. Aby uzyskać więcej informacji, zobacz Wymuszanie minimalnej wymaganej wersji protokołu Transport Layer Security (TLS) dla żądań do konta magazynu.

Zobacz też