Tokens de SAS para los contenedores de almacenamiento
Aprenda a crear tokens de firma de acceso compartido (SAS) de delegación de usuarios mediante Azure Portal. Los tokens de SAS de delegación de usuarios se protegen con credenciales de Microsoft Entra. Un token de SAS proporciona acceso delegado y seguro a los recursos de la cuenta de almacenamiento de Azure.
Sugerencia
El control de acceso basado en roles (identidades administradas) proporciona un método alternativo para conceder acceso a los datos de almacenamiento sin necesidad de incluir tokens de SAS con las solicitudes HTTP.
- Puede usar identidades administradas para conceder acceso a cualquier recurso que admita la autenticación de Microsoft Entra, incluidas sus propias aplicaciones.
- El uso de identidades administradas reemplaza el requisito de incluir tokens de firma de acceso compartido (SAS) con las direcciones URL de origen y destino.
- El uso de identidades administradas en Azure no tiene ningún costo adicional.
En general, los tokens de SAS funcionan así:
La aplicación envía el token de SAS a Azure Storage como parte de una solicitud de API REST.
Si el servicio de almacenamiento confirma que la firma SAS es válida, la solicitud se autoriza.
Si el token de SAS no se considera válido, la solicitud se rechaza con el código de error 403 (prohibido).
Azure Blob Storage ofrece tres tipos de recursos:
- Las cuentas de almacenamiento proporcionan un espacio de nombres único en Azure para los datos.
- Los contenedores de almacenamiento de datos se encuentran en cuentas de almacenamiento y organizan conjuntos de blobs (archivos, texto o imágenes).
- Los blobs se encuentran en contenedores y almacenan texto y datos binarios, como archivos, texto e imágenes.
Importante
Los tokens de SAS se usan para conceder permisos a los recursos de almacenamiento y deben protegerse de la misma manera que una clave de cuenta.
Las operaciones que utilizan tokens de SAS deben realizarse únicamente sobre una conexión HTTPS y los URI de SAS solo se deben distribuir por una conexión segura como HTTPS.
Requisitos previos
Para comenzar, necesitará los recursos siguientes:
Una cuenta de Azure activa. En caso de no tener ninguna, puede crear una cuenta gratuita.
Un recurso de Lenguaje de Azure AI.
Una cuenta de Azure Blob Storage con un rendimiento estándar. También necesita crear contenedores para almacenar y organizar los archivos en la cuenta de almacenamiento. Si no sabe cómo crear una cuenta de almacenamiento de Azure con un contenedor de almacenamiento, siga estos inicios rápidos:
- Crear una cuenta de almacenamiento. Al crear la cuenta de almacenamiento, seleccione el rendimiento Estándar en el campo Detalles de instancia>Rendimiento.
- Cree un contenedor. Al crear un contenedor, establezca Nivel de acceso público en Contenedor (acceso de lectura anónimo para contenedores y archivos) en la ventana Nuevo contenedor.
Creación de tokens de SAS en Azure Portal
Vaya a Azure Portal y al contenedor o a un archivo específico como se indica a continuación y siga estos pasos:
Flujo de trabajo: Su cuenta de almacenamiento → contenedores → su contenedor → su archivo
Haga clic con el botón derecho en el contenedor o archivo y seleccione Generar SAS en el menú desplegable.
Seleccione Método de firma → Clave de delegación de usuario.
Para definir los permisos, active o desactive la casilla correspondiente:
El archivo de origen debe designar acceso de lectura y lista.
El archivo de destino debe designar acceso de escritura y lista.
Especifique la fecha y hora de inicio y expiración de la clave firmada.
- Cuando se crea una firma de acceso compartido (SAS), la duración predeterminada es de 48 horas. Después de 48 horas, deberá crear un nuevo token.
- Considere la posibilidad de establecer una duración más larga de uso de la cuenta de almacenamiento para las operaciones del servicio de lenguaje.
- El valor de la hora de expiración viene determinado por si usa una Clave de cuenta o clave de delegación de usuarios método de firma:
- Clave de cuenta: no hay límite de tiempo máximo impuesto. Sin embargo, se recomiendan los procedimientos recomendados para configurar una directiva de expiración para limitar el intervalo y minimizar el riesgo. Configuración de una directiva de expiración para firmas de acceso compartido.
- Clave de delegación de usuario: el valor de la hora de expiración es de siete días como máximo a partir de la creación del token de SAS. La SAS no es válida después de que expire la clave de delegación de usuarios, por lo que una SAS con un tiempo de expiración de más de siete días seguirá siendo válida solo durante siete días. Para obtener más información,consulte Uso de credenciales de Microsoft Entra para proteger una SAS.
El campo Direcciones IP permitidas es opcional y especifica una dirección IP o un intervalo de direcciones IP desde el que se aceptan solicitudes. Si la dirección IP de la solicitud no coincide con la dirección IP o el intervalo de direcciones especificado en el token de SAS, se produce un error en la autorización. La dirección IP o un intervalo de direcciones IP deben ser direcciones IP públicas, no privadas. Para obtener más información, veaEspecificación de una dirección IP o un intervalo IP.
El campo Protocolos permitidos es opcional y especifica el protocolo permitido para una solicitud realizada con la firma de acceso compartido. El valor predeterminado es HTTPS.
Revise y, a continuación, seleccione Generar URL y token de SAS.
La cadena de consulta del token de SAS de blob y de la dirección URL de SAS de blob aparecen en el área inferior de la ventana.
Copie y pegue estos valores en una ubicación segura. Estos solo se mostrarán una vez y no se podrán recuperar una vez cerrada la ventana.
Para construir una dirección URL de SAS, asocie el token de SAS (URI) a la dirección URL de un servicio de almacenamiento.
Uso de la dirección URL de SAS para conceder acceso
La dirección URL de SAS incluye un conjunto especial de parámetros de consulta. Estos parámetros indican cómo el cliente accede a los recursos.
Puede incluir la dirección URL de SAS con solicitudes de API REST de dos maneras:
Use la dirección URL de SAS como valor para sourceURL y targetURL.
Anexe la cadena de consulta de SAS a los valores sourceURL y targetURL existentes.
Esta es una solicitud de API REST de ejemplo:
{
"analysisInput": {
"documents": [
{
"id": "doc_0",
"language": "en",
"source": {
"location": "myaccount.blob.core.windows.net/sample-input/input.pdf?{SAS-Token}"
},
"target": {
"location": "https://myaccount.blob.core.windows.net/sample-output?{SAS-Token}"
}
}
]
}
}
Eso es todo. Ha aprendido a crear tokens de SAS para autorizar el acceso a los datos a los clientes.