Compartir vía


Conexión a Azure Blob Storage mediante el protocolo de transferencia de archivos SSH (SFTP)

En este artículo se muestra cómo conectarse de forma segura al punto de conexión de Blob Storage de una cuenta de Azure Storage mediante un cliente SFTP. Después de conectarse, puede cargar y descargar archivos, así como modificar listas de control de acceso (ACL) en archivos y carpetas.

Para más información sobre la compatibilidad de SFTP con Azure Blob Storage, consulte Protocolo de transferencia de archivos SSH (SFTP) en Azure Blob Storage.

Requisitos previos

Conexión de un cliente SFTP

Puede usar cualquier cliente SFTP para conectarse y transferir archivos de forma segura. En el ejemplo siguiente se muestra una sesión de Windows PowerShell que usa Open SSH.

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

El nombre de usuario de SFTP es storage_account_name.username. En el ejemplo anterior, storage_account_name es "contoso4" y username es "contosouser". El nombre de usuario combinado se convierte en "contoso4.contosouser". El punto de conexión de Blob service es "contoso4.blob.core.windows.net".

Para completar la conexión, es posible que tenga que responder a una o varias solicitudes. Por ejemplo, si configuró el usuario local con autenticación de contraseña, se le pedirá que escriba esa contraseña. Es posible que se le pida que confíe en una clave de host. Las claves de host válidas se publican aquí.

Conexión mediante un dominio personalizada

Si desea conectarse al punto de conexión de Blob service mediante un dominio personalizado, la cadena de conexión es myaccount.myuser@customdomain.com. Si no se especifica el directorio principal para el usuario, la cadena de conexión es myaccount.mycontainer.myuser@customdomain.com.

Importante

Asegúrese de que el proveedor de DNS no realiza solicitudes de proxy, ya que esto puede provocar que se agote el tiempo de espera del intento de conexión.

Para obtener información sobre cómo asignar un dominio personalizado a un punto de conexión de Blob service, consulte Asignación de un dominio personalizado a un punto de conexión de Azure Blob Storage.

Conexión mediante un punto de conexión privado

Si desea conectarse al punto de conexión de Blob service mediante un punto de conexión privado, la cadena de conexión es myaccount.myuser@myaccount.privatelink.blob.core.windows.net. Si no se especifica el directorio principal para el usuario, es myaccount.mycontainer.myuser@myaccount.privatelink.blob.core.windows.net.

Nota:

Asegúrese de cambiar la configuración de red a "Habilitado desde redes virtuales y direcciones IP seleccionadas" y seleccione el punto de conexión privado. De lo contrario, el punto de conexión de Blob service seguirá siendo accesible públicamente.

Conexión mediante el enrutamiento de Internet

Si desea conectarse al punto de conexión de servicio de blob mediante el enrutamiento de Internet, la cadena de conexión es myaccount.myuser@myaccount-internetrouting.blob.core.windows.net. Si no se especifica el directorio principal para el usuario, es myaccount.mycontainer.myuser@myaccount-internetrouting.blob.core.windows.net.

Transferencia de datos

Después de conectarse, puede cargar y descargar archivos. En el ejemplo siguiente se carga un archivo denominado logfile.txt mediante una sesión de Open SSH activa.

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

Una vez completada la transferencia, puede ver y administrar el archivo en Azure Portal.

Captura de pantalla del archivo cargado que aparece en la cuenta de almacenamiento.

Nota:

Azure Portal usa la API de REST de blob y la API de REST de Data Lake Storage Gen2. La capacidad de interactuar con un archivo cargado en Azure Portal muestra la interoperabilidad entre SFTP y REST.

Consulte la documentación del cliente SFTP para obtener instrucciones sobre cómo conectar y transferir archivos.

Modifique la ACL de un archivo o directorio.

Puede modificar el nivel de permiso del usuario propietario, el grupo propietario y todos los demás usuarios de una ACL mediante un cliente SFTP. También puede cambiar el identificador del usuario propietario y el grupo propietario. Para obtener más información sobre la compatibilidad de ACL con los clientes SFTP, consulte ACL.

Modificar permisos

Para cambiar el nivel de permiso del usuario propietario, el grupo propietario o todos los demás usuarios de una ACL, el usuario local debe tener permiso Modify Permission. Consulte la sección sobre cómo conceder permiso a los contenedores.

En el ejemplo siguiente se imprime la ACL de un directorio en la consola. A continuación, usa el comando chmod para establecer la ACL en 777. Cada 7 es la forma numérica de rwx (lectura, escritura y ejecución). Por lo tanto, 777 concede permiso de lectura, escritura y ejecución al usuario propietario, al grupo propietario y a todos los demás usuarios. A continuación, en este ejemplo se imprime la ACL actualizada en la consola. Para obtener más información sobre las formas numéricas y abreviadas de una ACL, consulte Formas abreviadas de los permisos.

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

Nota:

Todavía no se admite la adición o modificación de entradas de ACL para usuarios con nombre, grupos con nombre y entidades de seguridad con nombre.

Cambio del usuario propietario

Para cambiar el usuario propietario de un directorio o blob, el usuario local debe tener permiso Modify Ownership. Consulte la sección sobre cómo conceder permiso a los contenedores.

En el ejemplo siguiente se imprime la ACL de un directorio en la consola. El identificador del usuario propietario es 0. En este ejemplo se usa el comando chown para establecer el identificador del usuario propietario en 1234 e imprime el cambio en la consola.

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>

Cambio del grupo propietario

Para cambiar el grupo propietario de un directorio o blob, el usuario local debe tener permiso Modify Ownership. Consulte la sección sobre cómo conceder permiso a los contenedores.

En el ejemplo siguiente se imprime la ACL de un directorio en la consola. El identificador del grupo propietario es 0. En este ejemplo se usa el comando chgrp para establecer el identificador del grupo propietario en 5678 e imprime el cambio en la consola.

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