¿Necesitás que un proveedor, un sistema legado o un socio suban archivos por SFTP, pero no querés mantener un servidor con sshd? Azure Blob Storage soporta SFTP de forma nativa: obtenés un endpoint SFTP estándar respaldado por almacenamiento en la nube, sin máquinas virtuales que parchar. En esta guía lo configurás paso a paso.

Cómo funciona

Azure expone el protocolo SFTP directamente sobre una cuenta de almacenamiento. Los clientes se conectan con cualquier cliente SFTP (FileZilla, WinSCP, el comando sftp) y los archivos quedan como blobs en tus contenedores. La autenticación es con usuarios locales propios del storage (no Azure AD), cada uno con su directorio y permisos.

Requisitos

  • Una cuenta de almacenamiento StorageV2 (general purpose v2) o BlockBlobStorage.
  • Espacio de nombres jerárquico (hierarchical namespace / Data Lake Gen2) habilitado — es obligatorio para SFTP y se define al crear la cuenta (no se puede activar después fácilmente).
  • Un contenedor que servirá de directorio raíz para el usuario.

Paso 1 — Crear la cuenta con SFTP y namespace jerárquico

# Crea la cuenta con hierarchical namespace + SFTP en un solo comando
az storage account create 
  --name MIACCOUNT 
  --resource-group MIGRUPO 
  --location eastus2 
  --sku Standard_LRS 
  --kind StorageV2 
  --enable-hierarchical-namespace true 
  --enable-sftp true

# (Si la cuenta ya existe y tiene namespace jerárquico, solo activá SFTP:)
az storage account update -n MIACCOUNT -g MIGRUPO --enable-sftp true

Creá también el contenedor que será el “home” del usuario, por ejemplo uploads.

Paso 2 — Crear un usuario local

Cada usuario SFTP es un “usuario local” del storage, con un directorio raíz y permisos sobre un contenedor. Los permisos se expresan con letras: r leer, c crear, w escribir, d borrar, l listar.

az storage account local-user create 
  --account-name MIACCOUNT 
  --resource-group MIGRUPO 
  --name proveedor1 
  --home-directory uploads 
  --permission-scope permissions=rcwdl service=blob resource-name=uploads 
  --has-ssh-password true

Para autenticación con llave SSH (más seguro que contraseña), usá --has-ssh-key true --ssh-authorized-key key="ssh-rsa AAAA..." en lugar de la contraseña. Si usás contraseña, generala con:

az storage account local-user regenerate-password 
  --account-name MIACCOUNT -g MIGRUPO --name proveedor1

Paso 3 — Conectarse

El usuario para SFTP tiene el formato cuenta.usuariolocal y el host es cuenta.blob.core.windows.net (puerto 22):

sftp MIACCOUNT.proveedor1@MIACCOUNT.blob.core.windows.net
# luego: put archivo.csv  /  ls  /  get reporte.xlsx

En FileZilla/WinSCP usás el mismo host, usuario MIACCOUNT.proveedor1 y la contraseña o la llave privada correspondiente.

Consideraciones importantes

  • Costo: tener SFTP habilitado tiene un cargo por hora (aprox. US$0.30/h), esté o no en uso — son cientos de dólares al mes si lo dejás siempre encendido. Si el SFTP es esporádico (cargas mensuales), conviene activarlo y desactivarlo con az storage account update --enable-sftp alrededor del proceso.
  • Seguridad: preferí llaves SSH sobre contraseñas; restringí el acceso con reglas de firewall de la cuenta (IPs permitidas); dá a cada usuario solo los permisos y el contenedor que necesita.
  • Namespace jerárquico: recordá que debe activarse al crear la cuenta. Si tu cuenta no lo tiene, hay que crear una nueva y migrar los datos.
  • Limitaciones: SFTP en Blob no soporta todos los comandos del protocolo (por ejemplo, algunas operaciones de renombrado/symlink) y no reemplaza a FTPS; revisá la compatibilidad de tu cliente.

Conclusión

Azure Blob Storage como SFTP te da un endpoint familiar para socios y sistemas legados sin administrar servidores — pagás por almacenamiento y por el tiempo que SFTP esté activo. Para cargas recurrentes, automatizá el encendido/apagado y vigilá el costo.

Seguí leyendo: Soporte a Infraestructura · Conectar Claude con Odoo.

En Grupo TANDEM diseñamos e implementamos infraestructura en Azure de forma segura y a tu medida. Si necesitás montar intercambio de archivos o cualquier servicio cloud, conversemos.