Udostępnij za pośrednictwem


Połączenie do usługi 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

  • Włącz obsługę protokołu SFTP dla usługi Azure Blob Storage. Zobacz Włączanie lub wyłączanie obsługi sfTP.

  • Autoryzowanie dostępu do klientów SFTP. Zobacz Autoryzowanie dostępu do klientów.

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

Połą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 wartość to "contoso4", a element username to "contosouser". Połączona 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.

Połączenie 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 żąda żądań serwera proxy, 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.

Połączenie 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, parametry połączenia to myaccount.myuser@myaccount.privatelink.blob.core.windows.net. Jeśli katalog macierzystowy nie jest określony dla użytkownika, jest myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.netto .

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.

Połączenie 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 macierzystowy nie jest określony dla użytkownika, jest myaccount.mycontainer.myuser@myaccount-internetrouting.blob.core.windows.netto .

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 wyświetlany na koncie magazynu.

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.

Modyfikowanie listy ACL pliku lub katalogu

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

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 Przyznawanie uprawnień do kontenerów.

W poniższym przykładzie lista ACL katalogu jest drukowana w konsoli programu . Następnie użyj polecenia chmod , aby ustawić listę ACL na 777. Każda 7 z nich jest postacią liczbową rwx (odczyt, zapis 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 zaktualizowano listę ACL do konsoli. Aby dowiedzieć się więcej na temat liczbowych i krótkich formularzy listy ACL, zobacz Krótkie formularze dotyczące 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.

Zmienianie użytkownika będącego właścicielem

Aby zmienić użytkownika właściciela katalogu lub obiektu blob, użytkownik lokalny musi mieć Modify Ownership uprawnienia. Zobacz Przyznawanie uprawnień do kontenerów.

W poniższym przykładzie lista ACL katalogu jest drukowana w konsoli programu . Identyfikator użytkownika, który jest właścicielem, to 0. W tym przykładzie chown użyto polecenia , aby ustawić identyfikator użytkownika 1234 będącego właścicielem i wyświetli zmianę 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ścicieli

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

W poniższym przykładzie lista ACL katalogu jest drukowana w konsoli programu . Identyfikator grupy właścicieli to 0. W tym przykładzie chgrp użyto polecenia , aby ustawić identyfikator grupy 5678 właścicieli na 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