Udostępnij za pomocą


Nawiązywanie połączenia z usługą Azure Blob Storage przy użyciu protokołu SSH File Transfer Protocol (SFTP)

W tym artykule pokazano, jak bezpiecznie nawiązać połączenie z punktem końcowym usługi Blob Storage konta usługi Azure Storage przy użyciu klienta SFTP. Po nawiązaniu połączenia można przekazywać i pobierać pliki, a także modyfikować listy kontroli dostępu (ACL) w plikach i folderach.

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

Łączenie klienta SFTP

Aby bezpiecznie nawiązać połączenie, a następnie przesłać pliki, możesz użyć dowolnego klienta SFTP. W poniższym przykładzie pokazano sesję programu Windows PowerShell korzystającą z protokołu Open SSH.

PS C:\Users\temp> sftp contoso4.contosouser@contoso4.blob.core.windows.net

Nazwa użytkownika SFTP to storage_account_name.username. W powyższym przykładzie storage_account_name to "contoso4", a username to "contosouser". Łącznie nazwa użytkownika staje się "contoso4.contosouser". Punkt końcowy usługi blob to "contoso4.blob.core.windows.net".

Aby ukończyć połączenie, może być konieczne odpowiadanie na co najmniej jeden monit. Jeśli na przykład skonfigurowano użytkownika lokalnego z uwierzytelnianiem haseł, zostanie wyświetlony monit o wprowadzenie tego hasła. Może zostać również wyświetlony monit o zaufanie do klucza hosta. Prawidłowe klucze hosta są publikowane tutaj.

Uwaga

SfTP działa za pośrednictwem punktu końcowego usługi Blob Storage (blob.core.windows.net) i NIE punktu końcowego usługi Data Lake Storage (dfs.core.windows.net). W związku z tym punkty końcowe usługi Data Lake Storage, takie jak contoso4.contosouser@contoso4.dfs.core.windows.net nie są obsługiwane.

Nawiązywanie połączenia przy użyciu domeny niestandardowej

Jeśli chcesz nawiązać połączenie z punktem końcowym usługi obiektów blob przy użyciu domeny niestandardowej, parametry połączenia to myaccount.myuser@customdomain.com. Jeśli katalog główny nie jest określony dla użytkownika, parametry połączenia to myaccount.mycontainer.myuser@customdomain.com.

Ważne

Upewnij się, że dostawca DNS nie wykorzystuje serwera proxy do obsługi żądań, ponieważ może to spowodować przekroczenie limitu czasu połączenia.

Aby dowiedzieć się, jak zamapować domenę niestandardową na punkt końcowy usługi blob, zobacz Mapowanie domeny niestandardowej na punkt końcowy usługi Azure Blob Storage.

Nawiązywanie połączenia przy użyciu prywatnego punktu końcowego

Jeśli chcesz nawiązać połączenie z punktem końcowym usługi obiektów blob przy użyciu prywatnego punktu końcowego, ciąg połączenia to myaccount.myuser@myaccount.privatelink.blob.core.windows.net. Jeśli katalog domowy nie jest określony dla użytkownika, to jest myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.net.

Uwaga

Upewnij się, że zmieniono konfigurację sieci na "Włączone z wybranych sieci wirtualnych i adresów IP", a następnie wybierz prywatny punkt końcowy. W przeciwnym razie punkt końcowy usługi blob będzie nadal publicznie dostępny.

Nawiązywanie połączenia przy użyciu routingu internetowego

Jeśli chcesz nawiązać połączenie z punktem końcowym usługi blob przy użyciu routingu internetowego, parametry połączenia to myaccount.myuser@myaccount-internetrouting.blob.core.windows.net. Jeśli katalog domowy nie jest określony dla użytkownika, to jest myaccount.mycontainer.myuser@myaccount-internetrouting.blob.core.windows.net.

Transfer danych

Po nawiązaniu połączenia możesz przekazywać i pobierać pliki. Poniższy przykład przekazuje plik o nazwie logfile.txt przy użyciu aktywnej sesji Open SSH.

sftp> put logfile.txt
Uploading logfile.txt to /mydirectory/logfile.txt
logfile.txt
        100%    19    0.2kb/S    00.00

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

Zrzut ekranu przedstawiający przekazany plik widoczny na koncie przechowywania.

Uwaga

Portal Azure korzysta z interfejsu API REST Blob oraz interfejsu API REST Data Lake Storage. Możliwość interakcji z przesłanym plikiem w Portalu Azure 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.

Wznów przesyłanie

Funkcja ponownego przekazywania dla usługi Azure Blob Storage SFTP jest teraz ogólnie dostępna. Ta funkcja umożliwia użytkownikom wznawianie przekazywania plików z punktu awarii w przypadku częściowych awarii transferu, co pozwala zaoszczędzić czas i zmniejszyć użycie przepustowości sieci. Poniżej przedstawiono tryby transferu SFTP obsługiwane przez usługę Azure Blob Storage SFTP.

  • Zapis: ten tryb umożliwia klientowi kontynuowanie przekazywania przez dodanie danych do istniejącego pliku z określonego punktu bez tworzenia nowego pliku.
  • Pisanie i tworzenie: ten tryb umożliwia klientowi wznowienie przesyłania, dodając do istniejącego pliku lub tworząc nowy, jeśli nie istnieje, zapewniając elastyczność, gdy plik nie jest początkowo obecny.
  • Dołączanie: ten tryb dodaje dane na końcu istniejącego pliku bez zastępowania bieżącej zawartości. Wcześniej ta funkcja obsługiwała tylko tryb dołączania w publicznej wersji zapoznawczej, co ograniczało wznawianie przesyłania za pomocą klientów SFTP, którzy nie obsługiwali trybu dołączania. Dzięki publicznej dostępności obsługujemy tryby zapisu oraz zapisu i tworzenia, co zapewnia korzyści użytkownikom korzystającym z klientów SFTP bez trybu dopisywania.

Uwaga

Wznawialne przesyłanie jest obsługiwane tylko w przypadku obiektów blob utworzonych przy użyciu protokołu SFTP. Nie można wznowić przekazywania istniejących obiektów blob utworzonych przy użyciu protokołu innego niż SFTP, takiego jak REST.

Modyfikowanie listy ACL pliku lub katalogu

Możesz zmodyfikować poziom uprawnień właściciela użytkownika, grupy właściciela i wszystkich innych użytkowników listy kontroli dostępu za pomocą klienta SFTP. Możesz również zmienić użytkownika i grupę będącą właścicielem. Aby dowiedzieć się więcej na temat obsługi ACL dla klientów SFTP, zobacz ACLs.

Uwaga

Użytkownicy będący właścicielami mogą teraz również modyfikować właściciela grupy i uprawnienia obiektu blob lub katalogu bez posiadania uprawnień do kontenera. Jest to nowe ulepszenie funkcji dodane w fazie pełnego udostępnienia list ACL dla użytkowników lokalnych. W przypadku każdego użytkownika, który nie jest właścicielem, uprawnienia kontenera są nadal wymagane.

Modyfikuj uprawnienia

Aby zmienić poziom uprawnień użytkownika, właściciela grupy lub wszystkich innych użytkowników listy ACL, użytkownik lokalny musi mieć Modify Permission uprawnienia. Zobacz Udostępnij uprawnienia dla kontenerów.

W poniższym przykładzie ACL katalogu jest wyświetlana na konsolę. Następnie używa polecenia chmod, aby ustawić listę ACL na 777. Każdy 7 jest formą liczbową rwx (czytanie, pisanie i wykonywanie). Daje więc 777 uprawnienia do odczytu, zapisu i wykonywania dla użytkownika, właściciela grupy i wszystkich innych użytkowników. W tym przykładzie zaktualizowana lista ACL jest wyświetlana na konsoli. Aby dowiedzieć się więcej na temat liczbowych i krótkich form ACL, zobacz Krótkie formy uprawnień.

sftp> ls -l
drwxr-x---     1234     5678                0 Mon, 08 Jan 2024 16:53:25 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chmod 777 dir1
Changing mode on /dir1
sftp> ls -l
drwxrwxrwx     1234     5678                0 Mon, 08 Jan 2024 16:54:06 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2

Uwaga

Dodawanie lub modyfikowanie wpisów listy ACL dla nazwanych użytkowników, nazwanych grup i nazwanych podmiotów zabezpieczeń nie jest jeszcze obsługiwane.

Zmień użytkownika właściciela

Aby zmienić użytkownika będącego właścicielem katalogu lub obiektu blob, użytkownik lokalny musi mieć uprawnienia Modify Ownership. Zobacz Udostępnij uprawnienia dla kontenerów.

W poniższym przykładzie ACL katalogu jest wyświetlana na konsolę. Identyfikator właściciela to 0. W tym przykładzie polecenie chown używane jest do ustawienia identyfikatora użytkownika będącego właścicielem na 1234 oraz do wyświetlenia tej zmiany w konsoli.

sftp> ls -l
drwxr-x---        0        0                0 Mon, 08 Jan 2024 16:00:12 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chown 1234 dir1
Changing owner on /dir1
sftp> ls -l
drwxr-x---     1234        0                0 Mon, 08 Jan 2024 16:52:52 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp>

Zmienianie grupy właścicielskiej

Aby zmienić grupę będącą właścicielem katalogu lub obiektu blob, użytkownik lokalny musi mieć Modify Ownership uprawnienia. Zobacz Udostępnij uprawnienia dla kontenerów.

W poniższym przykładzie ACL katalogu jest wyświetlana na konsolę. Identyfikator grupy właścicieli to 0. W tym przykładzie użyto polecenia chgrp, aby ustawić identyfikator grupy właściciela na 5678 i wyświetlić zmianę w konsoli.

sftp> ls -l
drwxr-x---     1234        0                0 Mon, 08 Jan 2024 16:52:52 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2
sftp> chgrp 5678 dir1
Changing group on /dir1
sftp> ls -l
drwxr-x---     1234     5678                0 Mon, 08 Jan 2024 16:53:25 GMT dir1
drwxr-x---        0        0                0 Mon, 16 Oct 2023 12:18:08 GMT dir2