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

Puede conectarse de forma segura al punto de conexión de Blob Storage de una cuenta de Azure Storage mediante un cliente SFTP y, a continuación, cargar y descargar archivos. En este artículo se muestra cómo habilitar SFTP y, a continuación, conectarse a Blob Storage mediante un cliente SFTP.

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

Habilitación de la compatibilidad con SFTP

En esta sección se muestra cómo habilitar la compatibilidad con SFTP para una cuenta de almacenamiento existente. Para ver una plantilla de Azure Resource Manager que habilita la compatibilidad con SFTP como parte de la creación de la cuenta, consulte Creación de una cuenta de Azure Storage y un contenedor de blobs accesible mediante el protocolo SFTP en Azure. Para ver las API REST de usuario local y las referencias de .NET, consulte Usuarios locales y Clase LocalUser.

  1. En Azure Portal, vaya a la cuenta de almacenamiento.

  2. En Configuración, seleccione SFTP.

    Nota:

    Esta opción solo aparece si se ha habilitado la característica de espacio de nombres jerárquico de la cuenta. Para habilitar la característica de espacio de nombres jerárquico, consulte Actualización de Azure Blob Storage con las funcionalidades de Azure Data Lake Storage Gen2.

  3. Seleccione Habilitar SFTP.

    Enable SFTP button

    Nota:

    Si no aparece ningún usuario local en la página de configuración de SFTP, deberá agregar al menos uno de ellos. Para agregar usuarios locales, consulte la sección siguiente.

Deshabilitación de la compatibilidad con SFTP

En esta sección, se muestra cómo deshabilitar la compatibilidad con SFTP para una cuenta de almacenamiento existente. Dado que la compatibilidad con SFTP conlleva un costo por hora, considere la posibilidad de deshabilitar la compatibilidad con SFTP cuando los clientes no usan SFTP activamente para transferir datos.

  1. En Azure Portal, vaya a la cuenta de almacenamiento.

  2. En Configuración, seleccione SFTP.

  3. Seleccione Deshabilitar SFTP.

    Screenshot of the disable SFTP button.

Configuración de permisos

Azure Storage no admite la firma de acceso compartido (SAS) ni la autenticación de Microsoft Entra para acceder al punto de conexión de SFTP. En su lugar, debe usar una identidad denominada "usuario local" que se pueda proteger con una contraseña generada por Azure o un par de claves de Secure Shell (SSH). Para conceder acceso a un cliente que se conecta, la cuenta de almacenamiento debe tener una identidad asociada a la contraseña o par de claves. Esa identidad se denomina usuario local.

En esta sección, aprenderá a crear un usuario local, elegir un método de autenticación y asignar permisos para ese usuario local.

Para obtener más información sobre el modelo de permisos SFTP, consulte Modelo de permisos de SFTP.

Sugerencia

En esta sección se muestra cómo configurar usuarios locales para una cuenta de almacenamiento existente. Para ver una plantilla de Azure Resource Manager que configura un usuario local como parte de la creación de una cuenta, consulte Creación de una cuenta de Azure Storage y un contenedor de blobs accesible mediante el protocolo SFTP en Azure.

  1. En Azure Portal, vaya a la cuenta de almacenamiento.

  2. En Configuración, seleccione SFTP y luego Agregar usuario local.

    Add local users button

  3. En el panel de configuración Agregar usuario local, agregue el nombre de un usuario y, a continuación, seleccione los métodos de autenticación que quiera asociar a ese usuario local. Puede asociar una contraseña o una clave SSH.

    Importante

    Aunque puede habilitar ambas formas de autenticación, los clientes SFTP pueden conectarse usando solo uno de ellos. Sin embargo, no se admite la autenticación multifactor, por lo que son necesarias una contraseña válida y un par de claves pública y privada válidas para realizar una autenticación correcta.

    Si selecciona contraseña SSH, la contraseña aparecerá cuando haya completado todos los pasos del panel de configuración Agregar usuario local. Azure genera las contraseñas SSH y la longitud mínima de estas es de 32 caracteres.

    Si selecciona SSH public key (Proteger con clave pública SSH), seleccione Origen de clave pública para especificar un origen de clave.

    Local user configuration pane

    En la tabla siguiente se describe cada opción de origen de clave:

    Opción Guía
    Generación de un nuevo par de claves Use esta opción para crear un nuevo par de claves pública y privada. La clave pública se almacena en Azure con el nombre de clave que proporcione. La clave privada se puede descargar después de que el usuario local se haya agregado correctamente.
    Uso de la clave existente almacenada en Azure Use esta opción si quiere usar una clave pública que ya esté almacenada en Azure. Para buscar claves existentes en Azure, consulte Enumeración de claves. Cuando los clientes SFTP se conectan a Azure Blob Storage, esos clientes deben proporcionar la clave privada asociada a esta clave pública.
    Use la clave pública existente. Use esta opción si quiere cargar una clave pública almacenada fuera de Azure. Si no tiene una clave pública, pero quiere generar una fuera de Azure, consulte Generación de claves con ssh-keygen.

    Nota

    La opción de clave pública existente solo admite actualmente claves públicas con formato OpenSSH. La clave proporcionada debe seguir este formato: <key type> <key data>. Por ejemplo, las claves RSA tendrían un aspecto similar al siguiente: ssh-rsa AAAAB3N.... Si su clave tiene otro formato, se puede usar una herramienta como ssh-keygen para convertirla al formato OpenSSH.

  4. Seleccione Siguiente para abrir la pestaña Permisos de contenedor del panel de configuración.

  5. En la pestaña Permisos de contenedor, seleccione los contenedores que quiere que estén disponibles para este usuario local. A continuación, seleccione los tipos de operaciones que quiere permitir que realice este usuario local.

    Container permissions tab

    Importante

    El usuario local debe tener al menos un permiso de contenedor para el contenedor al que se conecta; de lo contrario, se producirá un error en el intento de conexión.

  6. En el cuadro de edición Directorio principal, escriba el nombre del contenedor o la ruta de acceso del directorio (incluido el nombre del contenedor) que será la ubicación predeterminada asociada a este usuario local.

    Para obtener más información sobre el directorio principal, consulte Directorio principal.

  7. Seleccione el botón Agregar para agregar el usuario local.

    Si ha habilitado la autenticación de contraseña, la contraseña generada por Azure aparece en un cuadro de diálogo después de que se haya agregado el usuario local.

    Importante

    Tenga en cuenta que no podrá recuperar esta contraseña más adelante, así que asegúrese de copiarla y, a continuación, almacenarla en un lugar donde pueda encontrarla.

    Si decide generar un nuevo par de claves, se le pedirá que descargue la clave privada de ese par de claves después de que se haya agregado el usuario local.

    Nota

    Los usuarios locales tienen una propiedad sharedKey que se usa solo para la autenticación de SMB.

Conexión de un cliente SFTP

Puede usar cualquier cliente SFTP para conectarse y transferir archivos de forma segura. En la captura de pantalla siguiente se muestra una sesión de Windows PowerShell que usa la autenticación de Open SSH y una contraseña para conectarse y, a continuación, cargar un archivo denominado logfile.txt.

Connect with Open SSH

Nota:

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 para el comando SFTP.

Nota:

Es posible que se le pida que confíe en una clave de host. Las claves de host válidas se publican aquí.

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

Uploaded file appears in storage account

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.

Conexión mediante un dominio personalizada

Cuando se usan dominios personalizados, la cadena de conexión es myaccount.myuser@customdomain.com. Si no se ha especificado el directorio principal para el usuario, es myaccount.mycontainer.myuser@customdomain.com.

Importante

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

Conexión mediante un punto de conexión privado

Cuando se usa un punto de conexión privado, la cadena de conexión es myaccount.myuser@myaccount.privatelink.blob.core.windows.net. Si no se ha especificado 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 SFTP normal seguirá siendo accesible públicamente.

Consideraciones sobre redes

SFTP es un servicio de nivel de plataforma, por lo que el puerto 22 se abrirá incluso si la opción de la cuenta está deshabilitada. Si el acceso SFTP no está configurado, todas las solicitudes se desconectarán del servicio. Si usa SFTP, es posible que quiera limitar el acceso público mediante la configuración de un firewall, una red virtual o un punto de conexión privado. Esta configuración se aplica en la capa de aplicación, lo que significa que no es específica de SFTP y afectará a la conectividad con todos los puntos de conexión de Azure Storage. Para más información sobre la configuración de firewalls y de la red, consulte Configuración de redes virtuales y firewalls de Azure Storage.

Nota

Herramientas de auditoría que intentan determinar la compatibilidad de TLS en la capa de protocolo pueden devolver versiones de TLS además de la versión mínima necesaria cuando se ejecutan directamente en el punto de conexión de la cuenta de almacenamiento. Para obtener más información, consulte Aplicación de una versión mínima necesaria de Seguridad de la capa de transporte (TLS) para las solicitudes a una cuenta de almacenamiento.

Vea también