Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Blob Storage SFTP admite el acceso basado en Microsoft Entra ID. Anteriormente, SFTP de Azure Blob Storage solo admite el acceso basado en el usuario local, lo que requiere una contraseña o una clave privada SSH para la autenticación. Con esta característica, los usuarios pueden aplicar su Microsoft Entra ID para conectarse a Azure cuentas de almacenamiento a través de SFTP sin necesidad de crear y mantener usuarios locales.
El acceso basado en ID de Microsoft Entra aporta muchas ventajas a SFTP de Azure Blob Storage, incluido el control de acceso basado en rol (RBAC), la autenticación multifactor (MFA) y las listas de control de acceso (ACL) de Microsoft Entra ID.
Ventajas principales
Eliminar la administración de usuarios locales : mediante el acceso basado en identificadores de Microsoft Entra, no es necesario crear, rotar ni mantener usuarios locales de SFTP para cada cuenta de almacenamiento. Microsoft Entra ID controla la autenticación, lo que reduce significativamente la sobrecarga operativa y la complejidad de la configuración.
Identidad y seguridad de nivel empresarial : el acceso SFTP usa el identificador de Microsoft Entra, que permite:
- Administración centralizada del ciclo de vida de la identidad
- Autenticación segura, incluida MFA a través de Microsoft Entra ID
- Posición de seguridad coherente alineada con los estándares de IAM empresariales
- Este enfoque mejora la seguridad en comparación con las credenciales locales estáticas y de larga duración.
Integración nativa de Azure RBAC, ABAC y ACL : la autorización para SFTP coincide con el modelo de control de acceso existente de Azure Blob Storage:
- Control de acceso basado en rol (RBAC)
- Control de acceso basado en atributos (ABAC)
- Listas de control de acceso (ACL) de estilo POSIX
- Los usuarios pueden aplicar los mismos roles y permisos que se usan para el acceso REST, SDK y Portal a SFTP.
Incorporación más rápida de SFTP - Dado que las cuentas de Microsoft Entra ID son omnipresentes, los usuarios pueden:
- Reutilización de usuarios, grupos y entidades de servicio existentes
- Evitar la creación de usuarios locales y la distribución de claves que consumen mucho tiempo
- Poner SFTP en funcionamiento más rápido con menos pasos de configuración
- Reducir significativamente el tiempo a valor de los flujos de trabajo basados en SFTP
Colaboración externa segura : mediante el uso de identidades externas de Microsoft Entra ID, los clientes pueden conceder de forma segura acceso SFTP a asociados y proveedores sin administrar sistemas de identidad independientes, a la vez que mantienen el control total y la auditabilidad.
Visión general
En la información general de alto nivel siguiente se describen los pasos clave implicados en este proceso. Primero se autentica mediante el identificador de Entra de Microsoft y, a continuación, se obtiene un certificado OpenSSH y, por último, se conecta a SFTP de Azure Blob Storage mediante un cliente o SDK compatibles. En las secciones siguientes se describe cada uno de estos pasos con más detalle.
Autentíquese con el identificador de Microsoft Entra a través de la CLI de Azure, PowerShell, SDK y mucho más.
Obtenga un certificado OpenSSH de Microsoft Entra ID pasando una clave pública.
Use cualquier cliente o SDK SFTP que admita certificados OpenSSH para conectarse a Azure Storage con el certificado OpenSSH y la clave pública del paso 2.
Nota:
No se admite la autenticación basada en contraseña porque ningún cliente SFTP tiene integración nativa de Id. de Microsoft Entra para proporcionar una experiencia de usuario de Id. de Microsoft Entra para la entrada de contraseña.
Conexión a Azure Blob Storage con identificadores de Microsoft Entra
Generación de un certificado openSSH
Genere el certificado OpenSSH con el comando az sftp de la CLI de Azure, como se muestra en el ejemplo siguiente.
az login
az sftp cert --file ~/.ssh/my_cert.pub
Por motivos de seguridad, el certificado solo es válido durante 65 minutos. Una vez expirado, debe volver a ejecutar el comando para obtener un nuevo certificado.
Opcionalmente, puede generar su propio par de claves SSH y usarlo al descargar el certificado.
Generar par de claves SSH: debe usar claves RSA, ya que Microsoft Entra ID solo admite certificados RSA.
ssh-keygen -t rsa
Se generarán los siguientes archivos de clave:
| Nombre del archivo | Tipo de clave |
|---|---|
| id_rsa | Clave privada |
| id_rsa.pub | Clave pública |
Use el comando siguiente para generar el certificado SSH con las claves generadas:
az login
az sftp cert --public-key-file ~/.ssh/id_rsa.pub --file ~/.ssh/my_cert.pub
Si está utilizando una entidad de servicio, puede iniciar sesión mediante un secreto de cliente o un certificado.
Para iniciar sesión con un certificado, use el siguiente comando:
az login --service-principal -u <application_id_or_client_id> --tenant <tenant_id> --certificate <path_to_certificate>
Para iniciar sesión con un secreto de cliente, use el siguiente comando:
az login --service-principal -u <application_id_or_client_id> -p <secret_value> --tenant <tenant_id>
Después de la autenticación, ejecute el mismo comando para descargar el certificado:
az sftp cert --public-key-file ~/.ssh/id_rsa.pub --file ~/.ssh/my_cert.pub
Compruebe el contenido del certificado OpenSSH [Opcional]
Use el siguiente comando para ver el certificado OpenSSH:
ssh-keygen -L -f ~/.ssh/my_cert.pub
En la salida, la sección Principals contiene el nombre de usuario.
Por motivos de seguridad, el certificado OpenSSH es válido durante 65 minutos. Después de este período, debe solicitar un nuevo certificado para iniciar otras transacciones.
Conexión a la cuenta de almacenamiento mediante OpenSSH
Conexión mediante un comando SFTP
sftp -o PubkeyAcceptedKeyTypes="[email protected],rsa-sha2-256" -o IdentityFile="~/.ssh/id_rsa" -o CertificateFile="~/.ssh/my_cert.pub" <storageaccountname>.<username>@<storageaccountname>.blob.core.windows.net
Si el principal usa el formato [email protected], asegúrese de excluir la sección de dominio en el comando y utilice únicamente la parte de nombre de usuario.
Se admiten las entidades de usuario y de servicio. Para las entidades de servicio, use el identificador de la entidad de servicio en lugar del nombre de usuario en la cadena de conexión.
Nota:
No se admite agregar el nombre del contenedor directamente al cadena de conexión o configurarlo a través del directorio Principal.
Una vez conectado, use el siguiente comando para cargar un archivo en Azure Storage a través de SFTP:
put <local-file-path>
Si recibe un error de permiso denegado, asegúrese de que tiene los roles de Azure necesarios, como colaborador de datos de Storage Blob o propietario de datos de Storage Blob.
Conexión mediante un cliente de escritorio SFTP
Los clientes SFTP, como WinSCP y PuTTY, admiten la autenticación basada en OpenSSH. En los pasos siguientes se muestra cómo conectarse mediante WinSCP:
WinSCP: la compatibilidad con certificados OpenSSH para la autenticación de usuario se implementó en la versión 6.0 (https://winscp.net/tracker/1873)
Obtención del certificado OpenSSH del paso anterior (Generar certificado OpenSSH)
En WinSCP, escriba el nombre de host y el nombre de usuario y, a continuación, seleccione Avanzadas.
En la pestaña SSH, vaya a la sección Autenticación. Adjunte la clave privada y los archivos de certificado obtenidos de las secciones anteriores y, a continuación, seleccione Aceptar.
Seleccione Iniciar sesión para acceder con la cuenta de Microsoft Entra ID y el certificado OpenSSH.
Use el siguiente comando para conectarse mediante el certificado OpenSSH obtenido en los pasos anteriores:
az sftp connect --storage-account <account_name> --certificate-file ~/.ssh/my_cert.pub
Además, puede obtener el certificado OpenSSH y conectarse a SFTP mediante un solo comando como se indica a continuación:
az sftp connect
az sftp connect --storage-account <account_name>
Para obtener más información sobre los comandos, consulte aquí.
Modelo de control de acceso basado en Microsoft Entra ID en el SFTP de Azure Blob Storage
| Mecanismo | Estado | Tutorial |
|---|---|---|
| Control de acceso basado en roles (RBAC de Azure) | Soportado | Modelo de control de acceso para Azure Data Lake Storage: Azure Storage | Microsoft Learn |
| Listas de control de acceso (ACL) | Soportado | Modelo de control de acceso para Azure Data Lake Storage: Azure Storage | Microsoft Learn |
| Control de acceso basado en atributos (Azure ABAC) | Soportado | Modelo de control de acceso para Azure Data Lake Storage: Azure Storage | Microsoft Learn |
Evaluación de los permisos
SFTP refleja el modelo de control de acceso de Azure Blob Storage. Para más información, consulte Modelo de control de acceso en Azure Data Lake Storage.
Uso compartido del acceso a los usuarios fuera del inquilino de origen de Microsoft Entra ID
A menudo, las organizaciones necesitan compartir el acceso SFTP de Azure Blob Storage con asociados externos y clientes. Microsoft Entra External Identities puede abordar este requisito habilitando SFTP de Azure Blob Storage para proporcionar acceso seguro a colaboradores externos. Esta característica permite conexiones y interacciones eficaces y seguras con los recursos de almacenamiento. Mediante el uso de las funcionalidades de identidad externa de Id. de Entra de Microsoft, las organizaciones pueden mantener un control de acceso seguro y medidas de seguridad al tiempo que permiten la colaboración con entidades externas. Obtenga más información sobre cómo agregar usuarios invitados.
Problemas y limitaciones conocidos
No se admite la autorización de identidad administrada para SFTP con Microsoft Entra ID.
La compatibilidad con el identificador de Entra de Microsoft se limita a los certificados SSH y la autenticación de clave pública.
Solo se admiten certificados RSA. ECDSA no se admite.
No se admite la configuración de un directorio principal.
La cadena de conexión no puede incluir el nombre del contenedor. El usuario se conecta a la raíz de la cuenta de almacenamiento y, a continuación, navega al contenedor de destino y directorios mediante comandos "change directory" (cd).
chownychgrprequieren permisos para gestionar la propiedad o permisos de superusuario.chmodrequiere permisos de modificación o permisos de superusuario.
Solución de problemas
Se produce un error al abrir cualquier contenedor con "Acceso denegado"
Puede producirse un Access denied error incluso si puede conectarse a cuentas de almacenamiento a través de WinSCP y puede ver la lista de contenedores después de iniciar sesión.
Este error puede ocurrir porque WinSCP intenta normalizar cada directorio al que entra automáticamente. Esto significa que, para cadacd listado de directorios, envía una o varias solicitudes adicionales de protocolo para averiguar la ruta de acceso absoluta "real".
- El directorio raíz muestra contenedores.
- Cada contenedor actúa como una chroot virtual. Una vez que estés dentro, no puedes ir por encima o fuera de él.
- Las rutas de acceso son virtuales, no físicas. Azure no admite el recorrido absoluto basado en
/por encima de contenedores.
Resuelva este problema mediante una de las siguientes opciones:
Desactivar Resolución de vínculos simbólicos. Vaya a Avanzadas->Entorno->Directorios y desactive Resolver vínculos simbólicos.
Establezca el directorio remoto. Vaya a Avanzadas->Entorno->Directorios y establezca Directorio remoto en "\<container-name>". Al establecer este valor, accesas directamente al contenedor especificado después de iniciar sesión.