Поделиться через


Подключение к объектному хранилищу Azure Blob с использованием протокола передачи файлов SSH (SFTP)

В этой статье показано, как безопасно подключиться к конечной точке Blob-хранилища учетной записи службы хранения Azure с помощью клиента SFTP. После подключения вы можете отправлять и скачивать файлы, а также изменять списки управления доступом (ACL) в файлах и папках.

Дополнительную информацию о поддержке SFTP в Хранилище BLOB-объектов Azure см. в разделе Протокол SFTP в Хранилище BLOB-объектов Azure.

Предпосылки

Подключение SFTP-клиента

Для безопасного подключения и передачи файлов можно использовать любой клиент SFTP. В следующем примере показан сеанс Windows PowerShell, использующий Open SSH.

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

Имя пользователя SFTP — storage_account_name.username. В приведенном storage_account_name выше примере используется contoso4, а username также contosouser. Объединенное имя пользователя становится contoso4.contosouser. Конечная точка службы BLOB-объектов — "contoso4.blob.core.windows.net".

Чтобы завершить подключение, может потребоваться ответить на один или несколько запросов. Например, если вы настроили локального пользователя с проверкой подлинности паролем, вам будет предложено ввести этот пароль. Вам также может быть предложено доверять ключу узла. Допустимые ключи узла публикуются здесь.

Примечание.

SFTP работает через конечную точку Blob Storage (blob.core.windows.net) и НЕ конечную точку Data Lake Storage (dfs.core.windows.net). Поэтому конечные точки Data Lake Storage, такие как contoso4.contosouser@contoso4.dfs.core.windows.net, не поддерживаются.

Подключение с помощью личного домена

Если вы хотите подключиться к конечной точке службы BLOB-объектов с использованием пользовательского домена, строка подключения — это myaccount.myuser@customdomain.com. Если для пользователя не указан домашний каталог, то строка подключения — myaccount.mycontainer.myuser@customdomain.com.

Внимание

Убедитесь, что поставщик DNS не запрашивает прокси-запросы, так как это может привести к истечении времени ожидания подключения.

Сведения о сопоставлении пользовательского домена с конечной точкой службы Azure Blob Storage см. в статье "Сопоставление пользовательского домена с конечной точкой службы Azure Blob Storage".

Подключение с помощью частной конечной точки

Если вы хотите подключиться к конечной точке службы BLOB при помощи частной конечной точки, то строка подключения — myaccount.myuser@myaccount.privatelink.blob.core.windows.net. Если домашний каталог не указан для пользователя, то он myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.net.

Примечание.

Убедитесь, что вы измените конфигурацию сети на "Включено из выбранных виртуальных сетей и IP-адресов", а затем выберите частную конечную точку. В противном случае конечная точка службы Blob останется общедоступной.

Подключение с помощью маршрутизации через Интернет

Если вы хотите подключиться к конечной точке службы BLOB-объектов с помощью маршрутизации через Интернет, используйте строку подключения myaccount.myuser@myaccount-internetrouting.blob.core.windows.net. Если домашний каталог не указан для пользователя, то он myaccount.mycontainer.myuser@myaccount-internetrouting.blob.core.windows.net.

Передача данных

После подключения можно отправить и скачать файлы. В следующем примере отправляется файл с именем logfile.txt с помощью активного сеанса Open SSH.

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

После завершения переноса вы сможете просматривать файл и управлять им на портале Azure.

Снимок экрана: загруженный файл, отображаемый в учетной записи хранения.

Примечание.

Портал Azure использует REST API для объектов BLOB и Storage Data Lake. Возможность взаимодействия с загруженным файлом на портале Azure демонстрирует взаимодействие между SFTP и REST.

Инструкции по подключению и передаче файлов см. в документации клиента SFTP.

Изменение ACL файла или каталога

Вы можете изменить уровень разрешений собственного пользователя, группы владения и всех других пользователей ACL с помощью клиента SFTP. Вы также можете изменить владельца пользователя и владельца группы. Дополнительные сведения о поддержке ACL для клиентов SFTP см. в разделе ACLs.

Примечание.

Теперь пользователи могут изменять собственные группы и разрешения большого двоичного объекта или каталога без разрешений контейнера. Это новое усовершенствование функции, добавленное на этапе общедоступной доступности списков управления доступом для локальных пользователей. Для любого пользователя, который не является владельцем, разрешения контейнера по-прежнему требуются.

Изменение разрешений

Чтобы изменить уровень разрешений собственного пользователя, группы владения или всех других пользователей ACL, локальный пользователь должен иметь Modify Permission разрешение. См. раздел "Предоставление разрешений контейнерам".

Пример ниже выводит в консоль список управления доступом (ACL) каталога. Затем использует chmod команду, чтобы задать для ACL значение 777. Каждый 7 — это числовая форма rwx (чтение, запись и выполнение). Таким образом 777 предоставляет пользователю, владеющей группе и всем остальным пользователям разрешения на чтение, запись и выполнение. Затем в этом примере выводится обновленный список ACL в консоль. Чтобы узнать больше о числовых и кратких формах ACL, смотрите Краткие формы разрешений.

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

Примечание.

Добавление или изменение записей ACL для именованных пользователей, именованных групп и именованных субъектов безопасности еще не поддерживается.

Изменение пользователя-владельца

Чтобы изменить владельца каталога или блоба, локальный пользователь должен иметь Modify Ownership разрешение. См. раздел "Предоставление разрешений контейнерам".

Пример ниже выводит в консоль список управления доступом (ACL) каталога. Идентификатор собственного пользователя 0. В этом примере используется команда chown для установки идентификатора пользователя-владельца в 1234 и выводит изменение на консоль.

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>

Изменение группы владельцев

Чтобы изменить группу владельцев каталога или большого двоичного объекта, локальный пользователь должен иметь Modify Ownership разрешение. См. раздел "Предоставление разрешений контейнерам".

Пример ниже выводит в консоль список управления доступом (ACL) каталога. Идентификатор группы владельцев 0. В этом примере используется команда chgrp для задания идентификатора группы владельцев 5678 и вывода изменений в консоль.

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