Create a service SAS (Creación de una SAS de servicio)Create a service SAS

Una SAS de servicio delega el acceso a un recurso en solo uno de los servicios de almacenamiento: el servicio BLOB, cola, tabla o archivo.A service SAS delegates access to a resource in just one of the storage services: the Blob, Queue, Table, or File service. El URI de una firma de acceso compartido (SAS) de nivel de servicio se compone del URI para el recurso para el que la SAS delegará el acceso, seguido del token de SAS.The URI for a service-level shared access signature (SAS) consists of the URI to the resource for which the SAS will delegate access, followed by the SAS token. El token de SAS es la cadena de consulta que incluye toda la información necesaria para autorizar una solicitud.The SAS token is the query string that includes all of the information required to authorize a request. Especifica el recurso al que puede tener acceso un cliente, los permisos concedidos y el intervalo de tiempo durante el cual la firma es válida.It specifies the resource that a client may access, the permissions granted, and the time interval over which the signature is valid. Una SAS también puede especificar la dirección IP o el intervalo de direcciones compatible desde el que pueden originarse las solicitudes, el protocolo compatible con el que se puede realizar una solicitud, un identificador de directiva de acceso opcional asociado a la solicitud.A SAS may also specify the supported IP address or address range from which requests can originate, the supported protocol with which a request can be made, an optional access policy identifier associated with the request. Por último, todos los tokens de SAS incluyen una firma.Finally, every SAS token includes a signature.

Precaución

La firma de acceso compartido son claves que conceden permisos a los recursos de almacenamiento y deben protegerse de la misma manera que una clave de cuenta.Shared access signature are keys that grant permissions to storage resources, and should be protected in the same manner as an account key. Es importante proteger una SAS de uso malintencionado o no intencionado.It's important to protect a SAS from malicious or unintended use. Sea cauto al distribuir una SAS y tenga un plan para revocar una SAS en peligro.Use discretion in distributing a SAS, and have a plan in place for revoking a compromised SAS. Las operaciones que usan firmas de acceso compartido solo deben realizarse a través de una conexión HTTPS, y los URI de la firma de acceso compartido solo deben distribuirse en una conexión segura, como HTTPS.Operations that use shared access signatures should be performed only over an HTTPS connection, and shared access signature URIs should only be distributed on a secure connection such as HTTPS.

Autorización de una SAS de servicioAuthorization of a service SAS

Una SAS de servicio se protege mediante la clave de la cuenta de almacenamiento.A service SAS is secured using the storage account key. Para crear una SAS de servicio, una aplicación cliente debe poseer la clave de cuenta.To create a service SAS, a client application must possess the account key.

Para usar credenciales de Azure AD para proteger una SAS para un contenedor o BLOB, cree una SAS de delegación de usuarios.To use Azure AD credentials to secure a SAS for a container or blob, create a user delegation SAS. Para más información, vea Creación de SAS de delegación de usuarios.For more information, see Create a user delegation SAS.

Compatibilidad de SAS de servicio para el acceso con ámbito de directorioService SAS support for Directory scoped access

La SAS del servicio admitirá el acceso al ámbito del directorio (Sr = d) cuando la versión de autenticación (VP) sea 2020-02-10 o superior y el espacio de nombres jerárquico (SNP) esté habilitado.Service SAS will support directory scope (sr=d) access when the authentication version (sv) is 2020-02-10 or higher and hierarchical namespace (HNS) is enabled. La semántica del ámbito de directorio (Sr = d) es similar a la del ámbito de contenedor (Sr = c), excepto que el acceso está restringido a un directorio y a los archivos y directorios de.The semantics for directory scope (sr=d) are similar to container scope (sr=c), except access is restricted to a directory and the files and directories within. Cuando se especifica Sr = d, también se requiere el parámetro de consulta SDD (consulte a continuación para obtener más detalles sobre el parámetro SDD).When sr=d is specified, the sdd query parameter is also required (See below for more details on sdd parameter). El formato de cadena a signo para la versión de autenticación 2020-02-10 no cambia.The string-to-sign format for authentication version 2020-02-10 is unchanged.

Construcción de una SAS de servicioConstruct a service SAS

En la ilustración siguiente se representan las partes del URI de firma de acceso compartido.The following figure represents the parts of the shared access signature URI. Los elementos necesarios aparecen en color naranja.Required parts appear in orange. Los campos que componen el token de SAS se describen en las secciones siguientes.The fields comprising the SAS token are described in the subsequent sections.

Elementos de parámetros de una dirección URL de firma de acceso compartido (SAS)

En las secciones siguientes se describe cómo especificar los parámetros que componen el token de SAS de servicio.The following sections describe how to specify the parameters that comprise the service SAS token.

Especificar el campo de versión firmadaSpecifying the signed version field

El signedVersion sv campo () contiene la versión del servicio de la firma de acceso compartido.The signedVersion (sv) field contains the service version of the shared access signature. Este valor especifica la versión de la autorización de clave compartida usada por esta firma de acceso compartido (en el signature campo) y también especifica la versión del servicio para las solicitudes realizadas con esta firma de acceso compartido.This value specifies the version of Shared Key authorization used by this shared access signature (in the signature field), and also specifies the service version for requests made with this shared access signature. Vea control de versiones de los servicios de Azure Storage para obtener información sobre qué versión se usa para ejecutar solicitudes a través de una firma de acceso compartido.See Versioning for the Azure Storage Services for information on which version is used when to execute requests via a shared access signature. Consulte delegar el acceso con una firma de acceso compartido para obtener más información sobre cómo este parámetro afecta a la autorización de las solicitudes realizadas con una firma de acceso compartido.See Delegate access with a shared access signature for details about how this parameter affects the authorization of requests made with a shared access signature.

Nombre del campoField name Parámetro de consultaQuery parameter DescripciónDescription
signedVersion sv Obligatorio.Required. Compatible con las versiones 2012-02-12 y posteriores.Supported in versions 2012-02-12 and newer. Versión del servicio de almacenamiento que se va a usar para autorizar las solicitudes realizadas con esta firma de acceso compartido y la versión del servicio que se va a usar al administrar las solicitudes realizadas con esta firma de acceso compartido.The storage service version to use to authorize requests made with this shared access signature, and the service version to use when handling requests made with this shared access signature. Vea [control de versiones de los servicios de Azure Storage] (control de versiones-para-Azure-Storage-Services.md para obtener información sobre qué versión se usa para ejecutar solicitudes a través de una firma de acceso compartido y cómo los clientes que ejecutan la solicitud pueden controlar la versión mediante el api-version parámetro de consulta o el x-ms-version encabezado.See [Versioning for the Azure Storage Services](Versioning-for-the-Azure-Storage-Services.md for information about which version is used when to execute requests via a shared access signature, and how clients executing the request can control the version using the api-version query parameter or the x-ms-version header.

Importante

Todas las características agregadas con la versión 2020-02-10 se encuentran actualmente en vista previa.All features added with version 2020-02-10 are currently in preview. La versión preliminar está pensada para usos distintos del de producción.The preview is intended for non-production use only.

Determinar la versión de una solicitud de firma de acceso compartido heredadaDetermining the version of a legacy shared access signature request

En escenarios heredados en los que no se utiliza signedVersion, Blob service aplica ciertas reglas para determinar la versión.In legacy scenarios where signedVersion is not used, the Blob service applies rules to determine the version. Vea control de versiones de los servicios de Azure Storage para obtener más información acerca de estas reglas.See Versioning for the Azure Storage Services for more information about these rules.

Importante

El software cliente puede experimentar un comportamiento de protocolo inesperado cuando se utiliza un URI de firma de acceso compartido que usa una versión del servicio de almacenamiento más reciente que el software cliente.Client software might experience unexpected protocol behavior when using a shared access signature URI that uses a storage service version that is newer than the client software. El código que crea los URI de firma de acceso compartido debe utilizar versiones que el software cliente que realiza solicitudes de servicio de almacenamiento pueda entender.Code that constructs shared access signature URIs should rely on versions that are understood by client software that makes storage service requests.

Especificar el recurso firmado (solo Blob service)Specifying the signed resource (Blob service only)

El signedResource campo obligatorio ( sr ) especifica los recursos a los que se puede tener acceso a través de la firma de acceso compartido.The required signedResource (sr) field specifies which resources are accessible via the shared access signature. En la tabla siguiente se describe cómo hacer referencia a un BLOB o a un recurso de contenedor en el token de SAS.The following table describes how to refer to a blob, or container resource in the SAS token.

ResourceResource Valor de parámetroParameter value Versiones compatiblesSupported versions DescripciónDescription
BlobBlob bb AllAll Concede acceso al contenido y los metadatos del BLOB.Grants access to the content and metadata of the blob.
Versión de BLOBBlob version vnbv Versión 2018-11-09 y versiones posterioresVersion 2018-11-09 and later Concede acceso al contenido y los metadatos de la versión del BLOB, pero no al BLOB base.Grants access to the content and metadata of the blob version, but not the base blob.
Instantánea de blobBlob snapshot bsbs Versión 2018-11-09 y versiones posterioresVersion 2018-11-09 and later Concede acceso al contenido y los metadatos de la instantánea del BLOB, pero no al BLOB base.Grants access to the content and metadata of the blob snapshot, but not the base blob.
ContenedorContainer cc AllAll Concede acceso al contenido y los metadatos de cualquier BLOB del contenedor y a la lista de blobs del contenedor.Grants access to the content and metadata of any blob in the container, and to the list of blobs in the container.
Directorio (vista previa)Directory (preview) dd Versión 2020-02-10 y versiones posterioresVersion 2020-02-10 and later Concede acceso al contenido y los metadatos de cualquier BLOB del directorio, y a la lista de blobs del directorio, en una cuenta de almacenamiento con un espacio de nombres jerárquico habilitado.Grants access to the content and metadata of any blob in the directory, and to the list of blobs in the directory, in a storage account with a hierarchical namespace enabled. Si se especifica un directorio para el signedResource campo, signedDirectoryDepth sdd también se requiere el parámetro ().If a directory is specified for the signedResource field, then the signedDirectoryDepth (sdd) parameter is also required.

Especificar el recurso firmado (servicio de archivos)Specifying the signed resource (File service)

SAS es compatible con el servicio de archivos en la versión 2015-02-21 y posteriores.SAS is supported for the File service in version 2015-02-21 and later.

El campo signedResource especifica qué recursos son accesibles a través de la firma de acceso compartido.The signedResource field specifies which resources are accessible via the shared access signature. En la tabla siguiente se describe cómo hacer referencia a un archivo o recurso compartido en el URI.The following table describes how to refer to a file or share resource on the URI.

Nombre del campoField name Parámetro de consultaQuery Parameter DescripciónDescription
signedResource sr Obligatorio.Required.

Especifique f si el recurso compartido es un archivo.Specify f if the shared resource is a file. Esto concede acceso al contenido y los metadatos del archivo.This grants access to the content and metadata of the file.

Especifique s si el recurso compartido es un recurso compartido.Specify s if the shared resource is a share. Esto concede acceso al contenido y los metadatos de cualquier archivo del recurso compartido y a la lista de directorios y archivos del recurso compartido.This grants access to the content and metadata of any file in the share, and to the list of directories and files in the share.

Especificar parámetros de consulta para invalidar encabezados de respuesta (solo servicios de BLOB y archivo)Specifying query parameters to override response headers (Blob and File services only)

Para definir los valores de ciertos encabezados de respuesta que se van a devolver cuando se utiliza la firma de acceso compartido en una solicitud, puede especificar encabezados de respuesta en los parámetros de consulta.To define values for certain response headers to be returned when the shared access signature is used in a request, you can specify response headers in query parameters. Esta característica se admite a partir de la versión 2013-08-15 para el Blob service y la versión 2015-02-21 para el servicio archivo.This feature is supported beginning with version 2013-08-15 for the Blob service and version 2015-02-21 for the File service. Las firmas de acceso compartido que usan esta característica deben incluir el sv parámetro establecido en 2013-08-15 o posterior para el BLOB Service, o en 2015-02-21 o posterior para el servicio archivo.Shared access signatures using this feature must include the sv parameter set to 2013-08-15 or later for the Blob service, or to 2015-02-21 or later for the File service.

Los encabezados de respuesta y los parámetros de consulta correspondientes son los siguientes:The response headers and corresponding query parameters are as follows:

Nombre del encabezado de respuestaResponse header name Parámetro de consulta de SAS correspondienteCorresponding SAS query parameter
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

Por ejemplo, si especifica el rsct=binary parámetro de consulta en una firma de acceso compartido creada con la versión 2013-08-15 o posterior, el Content-Type encabezado de respuesta se establece en binary .For example, if you specify the rsct=binary query parameter on a shared access signature created with version 2013-08-15 or later, the Content-Type response header is set to binary. Este valor reemplaza el valor del encabezado Content-Type almacenado para el blob para una solicitud que usa esta firma de acceso compartido solamente.This value overrides the Content-Type header value stored for the blob for a request using this shared access signature only.

Si crea una firma de acceso compartido que especifica encabezados de respuesta como parámetros de consulta, debe incluirlos en la cadena para firmar que se usa para construir la cadena de firma.If you create a shared access signature that specifies response headers as query parameters, you must include those in the string-to-sign that is used to construct the signature string. Vea la sección construir la cadena de firma siguiente para obtener más información y ejemplos de SAS de servicio para obtener más ejemplos.See the Constructing the Signature String section below for details, and Service SAS Examples for additional examples.

Especificar el nombre de la tabla (solo Table service)Specifying the table name (Table service only)

El campo tableName especifica el nombre de la tabla que se va a compartir.The tableName field specifies the name of the table to share.

Nombre del campoField name Parámetro de consultaQuery parameter DescripciónDescription
tableName tn Obligatorio.Required. El objeto de la tabla que se va a compartir.The name of the table to share.

Especificación de la Directiva de accesoSpecifying the access policy

La parte de directiva de acceso del URI indica el período de tiempo durante el cual la firma de acceso compartido es válida y los permisos que se van a conceder al usuario.The access policy portion of the URI indicates the period of time over which the shared access signature is valid and the permissions to be granted to the user. Las partes del URI que se describen en la tabla siguiente componen la directiva de acceso.The parts of the URI described in the following table comprise the access policy.

Nombre del campoField name Parámetro de consultaQuery parameter DescripciónDescription
signedStart st Opcional.Optional. La hora a la que la firma de acceso compartido es válida, en un formato UTC compatible con ISO 8601.The time at which the shared access signature becomes valid, in a UTC format compatible with ISO 8601. Si se omite, se supone que la hora de inicio de esta llamada es la hora a la que el servicio de almacenamiento recibe la solicitud.If omitted, start time for this call is assumed to be the time when the storage service receives the request.

En las versiones anteriores a 2012-02-12, la duración entre signedStart y signedExpiry no puede superar una hora a menos que se utilice una directiva de contenedor.In versions before 2012-02-12, the duration between signedStart and signedExpiry cannot exceed one hour unless a container policy is used.
signedExpiry se Obligatorio.Required. La hora a la que la firma de acceso compartido deja de ser válida, en un formato UTC compatible con ISO 8601.The time at which the shared access signature becomes invalid, in a UTC format compatible with ISO 8601. Este campo se debe omitir si se ha especificado en una directiva de acceso almacenada asociada.This field must be omitted if it has been specified in an associated stored access policy. Para obtener información detallada, vea Duración y revocación de una firma de acceso compartido.For details, see Lifetime and Revocation of a shared access signature.
signedPermissions sp Obligatorio.Required. Permisos asociados a la firma de acceso compartido.The permissions associated with the shared access signature. El usuario está restringido a las operaciones permitidas por los permisos.The user is restricted to operations allowed by the permissions. Este campo se debe omitir si se ha especificado en una directiva de acceso almacenada asociada.This field must be omitted if it has been specified in an associated stored access policy.
startPk

startRk
spk

srk
Solo el servicio Tabla.Table service only.

Opcional, pero startPk debe acompañar a startRk.Optional, but startPk must accompany startRk. Claves mínimas de partición y fila accesibles con esta firma de acceso compartido.The minimum partition and row keys accessible with this shared access signature. Los valores de clave son inclusivos.Key values are inclusive. Si se omite, no hay ningún límite inferior en las entidades de tabla a las que se puede tener acceso.If omitted, there is no lower bound on the table entities that can be accessed.
endPk

endRk
epk

erk
Solo el servicio Tabla.Table service only.

Opcional, pero endPk debe acompañar a endRk.Optional, but endPk must accompany endRk. Claves máximas de partición y fila accesibles con esta firma de acceso compartido.The maximum partition and row keys accessible with this shared access signature. Los valores de clave son inclusivos.Key values are inclusive. Si se omite, no hay ningún límite superior en las entidades de tabla a las que se puede tener acceso.If omitted, there is no upper bound on the table entities that can be accessed.

El campo signedPermissions es obligatorio en el URI a menos que se especifique como parte de una directiva de acceso almacenada.The signedPermissions field is required on the URI unless it is specified as part of a stored access policy. Los campos startPk, startRk, endPk y endRk solo se pueden especificar en un recurso de tabla.The startPk, startRk, endPk, and endRk fields can only be specified on a table resource.

Especificar el intervalo de validez de la firmaSpecifying the signature validity interval

Los signedStart st campos () y signedExpiry ( se ) deben expresarse como horas UTC y deben adherirse a un formato UTC válido que sea compatible con el formato ISO 8601.The signedStart (st) and signedExpiry (se) fields must be expressed as UTC times and must adhere to a valid UTC format that is compatible ISO 8601 format. Los formatos ISO 8601 admitidos son los siguientes:Supported ISO 8601 formats include the following:

  • YYYY-MM-DD
  • YYYY-MM-DDThh:mmTZD
  • YYYY-MM-DDThh:mm:ssTZD

Nota

Todos los valores de signedStart y signedExpiry deben estar en hora UTC.All values for signedStart and signedExpiry must be in UTC time.

Para la parte de fecha de estos formatos, YYYY es una representación de cuatro dígitos del año, MM es una representación de dos dígitos del mes y DD es una representación de dos dígitos del día.For the date portion of these formats, YYYY is a four-digit year representation, MM is a two-digit month representation, and DD is a two-digit day representation. Para la parte de hora, hh es la representación de la hora en la notación de 24 horas, mm es la representación de dos dígitos de los minutos y ss es la representación de dos dígitos de los segundos.For the time portion, hh is the hour representation in 24-hour notation, mm is the two-digit minute representation, and ss is the two-digit second representation. Un designador T de hora separa las partes de fecha y hora de la cadena, mientras que un designador de zona horaria TZD especifica una zona horaria (UTC).A time designator T separates the date and time portions of the string, while a time zone designator TZD specifies a time zone (UTC).

Especificar permisosSpecifying permissions

Los permisos especificados para signedPermissions el sp campo () en el token de SAS indican qué operaciones puede realizar un cliente en el recurso.The permissions specified for the signedPermissions (sp) field on the SAS token indicate which operations a client may perform on the resource.

Los permisos se pueden combinar para permitir que un cliente realice varias operaciones con la misma SAS.Permissions can be combined to permit a client to perform multiple operations with the same SAS. Al construir la SAS, debe incluir los permisos en el orden siguiente:When you construct the SAS, you must include permissions in the following order:

racwdxltmeop

Entre los ejemplos de valores de permisos válidos para un contenedor se incluyen rw , rd , rl , wd , wl y rl .Examples of valid permissions settings for a container include rw, rd, rl, wd, wl, and rl. Entre los ejemplos de valores no válidos se incluyen wr , dr , lr y dw .Examples of invalid settings include wr, dr, lr, and dw. No se permite especificar una designación de permisos más de una vez.Specifying a permission designation more than once is not permitted.

Una SAS de servicio no puede conceder acceso a ciertas operaciones:A service SAS cannot grant access to certain operations:

  • Los contenedores, las colas y las tablas no se pueden crear, eliminar ni enumerar.Containers, queues, and tables cannot be created, deleted, or listed.
  • Los metadatos y las propiedades de los contenedores no se pueden leer o escribir.Container metadata and properties cannot be read or written.
  • Las colas no se pueden borrar y sus metadatos no se pueden escribir.Queues cannot be cleared and their metadata may not be written.
  • Los contenedores no se pueden conceder.Containers cannot be leased.

Para construir una SAS que conceda acceso a estas operaciones, use una SAS de cuenta.To construct a SAS that grants access to these operations, use an account SAS. Para obtener más información, consulte creación de una SAS de cuenta.For more information, see Create an account SAS.

Importante

La firma de acceso compartido son claves que conceden permisos a los recursos de almacenamiento y deben protegerse de la misma manera que una clave de cuenta.Shared access signature are keys that grant permissions to storage resources, and should be protected in the same manner as an account key. Las operaciones que usan firmas de acceso compartido solo deben realizarse a través de una conexión HTTPS, y los URI de la firma de acceso compartido solo deben distribuirse en una conexión segura, como HTTPS.Operations that use shared access signatures should be performed only over an HTTPS connection, and shared access signature URIs should only be distributed on a secure connection such as HTTPS.

En las tablas de las secciones siguientes se muestran los permisos admitidos para cada tipo de recurso.The tables in the following sections show the permissions supported for each resource type.

Permisos para un directorio, un contenedor o un BLOBPermissions for a directory, container, or blob

En la tabla siguiente se muestran los permisos admitidos para cada tipo de recurso.The following table shows the permissions supported for each resource type.

PermisoPermission Símbolo de URIURI symbol ResourceResource Compatibilidad con versionesVersion support Operaciones permitidasAllowed operations
LecturaRead rr ContenedorContainer
DirectorioDirectory
BlobBlob
AllAll Lea el contenido, la lista de bloques, las propiedades y los metadatos de cualquier BLOB del contenedor o directorio.Read the content, block list, properties, and metadata of any blob in the container or directory. Use un BLOB como origen de una operación de copia.Use a blob as the source of a copy operation.
SumarAdd aa ContenedorContainer
DirectorioDirectory
BlobBlob
AllAll Agregue un bloque a un BLOB en anexos.Add a block to an append blob.
CrearCreate cc ContenedorContainer
DirectorioDirectory
BlobBlob
AllAll Escribir un BLOB nuevo, crear una instantánea de un BLOB o copiar un BLOB en un nuevo BLOB.Write a new blob, snapshot a blob, or copy a blob to a new blob.
EscrituraWrite ww ContenedorContainer
DirectorioDirectory
BlobBlob
AllAll Crear o escribir contenido, propiedades, metadatos o listas de bloqueo.Create or write content, properties, metadata, or block list. Tomar una instantánea o conceder el blob.Snapshot or lease the blob. Cambiar el tamaño del blob (blob en páginas solamente).Resize the blob (page blob only). Use el BLOB como destino de una operación de copia.Use the blob as the destination of a copy operation.
EliminarDelete dd BlobBlob AllAll Eliminar el blob.Delete the blob. Para la versión 2017-07-29 y versiones posteriores, el permiso Delete también permite interrumpir una concesión en un BLOB.For version 2017-07-29 and later, the Delete permission also allows breaking a lease on a blob. Para obtener más información, consulte la operación Lease BLOB.For more information, see the Lease Blob operation.
Eliminar versiónDelete version xx BlobBlob Versión 2019-12-12 o posteriorVersion 2019-12-12 or later Eliminar una versión de un blobDelete a blob version.
ListList ll ContenedorContainer
DirectorioDirectory
AllAll Enumerar blobs de forma no recursiva.List blobs non-recursively.
EtiquetasTags tt BlobBlob Versión 2019-12-12 o posteriorVersion 2019-12-12 or later Leer o escribir las etiquetas en un BLOB.Read or write the tags on a blob.
Move (vista previa)Move (preview) mm ContenedorContainer
DirectorioDirectory
BlobBlob
Versión 2020-02-10 o posteriorVersion 2020-02-10 or later Mueva un BLOB o un directorio y su contenido a una nueva ubicación.Move a blob or a directory and its contents to a new location. Opcionalmente, esta operación se puede restringir al propietario del BLOB secundario, directorio o directorio principal si el saoid parámetro se incluye en el token de SAS y el bit permanente se establece en el directorio principal.This operation can optionally be restricted to the owner of the child blob, directory, or parent directory if the saoid parameter is included on the SAS token and the sticky bit is set on the parent directory.
Ejecutar (vista previa)Execute (preview) ee ContenedorContainer
DirectorioDirectory
BlobBlob
Versión 2020-02-10 o posteriorVersion 2020-02-10 or later Obtenga las propiedades del sistema y, si el espacio de nombres jerárquico está habilitado para la cuenta de almacenamiento, obtenga la ACL de POSIX de un BLOB.Get the system properties and, if the hierarchical namespace is enabled for the storage account, get the POSIX ACL of a blob. Si el espacio de nombres jerárquico está habilitado y el autor de la llamada es el propietario de un BLOB, este permiso concede la capacidad de establecer el grupo propietario, los permisos POSIX y la ACL POSIX del BLOB.If the hierarchical namespace is enabled and the caller is the owner of a blob, this permission grants the ability to set the owning group, POSIX permissions, and POSIX ACL of the blob. No permite que el autor de la llamada Lea los metadatos definidos por el usuario.Does not permit the caller to read user-defined metadata.
Propiedad (versión preliminar)Ownership (preview) oo ContenedorContainer
DirectorioDirectory
BlobBlob
Versión 2020-02-10 o posteriorVersion 2020-02-10 or later Cuando el espacio de nombres jerárquico está habilitado, este permiso permite al autor de la llamada establecer el propietario o el grupo propietario, o actuar como propietario al cambiar el nombre o eliminar un directorio o BLOB dentro de un directorio que tiene el conjunto de bits permanente.When the hierarchical namespace is enabled, this permission enables the caller to set the owner or the owning group, or to act as the owner when renaming or deleting a directory or blob within a directory that has the sticky bit set.
Permisos (vista previa)Permissions (preview) pp ContenedorContainer
DirectorioDirectory
BlobBlob
Versión 2020-02-10 o posteriorVersion 2020-02-10 or later Cuando el espacio de nombres jerárquico está habilitado, este permiso permite que el autor de la llamada establezca permisos y ACL de POSIX en directorios y BLOBs.When the hierarchical namespace is enabled, this permission allows the caller to set permissions and POSIX ACLs on directories and blobs.

Permisos para un archivoPermissions for a file

PermisoPermission Símbolo de URIURI symbol Operaciones permitidasAllowed operations
LecturaRead rr Lea el contenido, las propiedades y los metadatos.Read the content, properties, metadata. Use el archivo como origen de una operación de copia.Use the file as the source of a copy operation.
CrearCreate cc Cree un nuevo archivo o copie un archivo en un archivo nuevo.Create a new file or copy a file to a new file.
EscrituraWrite ww Crear o escribir contenido, propiedades, metadatos.Create or write content, properties, metadata. Cambie el tamaño del archivo.Resize the file. Use el archivo como destino de una operación de copia.Use the file as the destination of a copy operation.
EliminarDelete dd Elimine el archivo.Delete the file.

Permiso para un recurso compartidoPermission for a share

PermisoPermission Símbolo de URIURI symbol Operaciones permitidasAllowed operations
LecturaRead rr Leer el contenido, las propiedades o los metadatos de cualquier archivo del recurso compartido.Read the content, properties or metadata of any file in the share. Use cualquier archivo del recurso compartido como el origen de una operación de copia.Use any file in the share as the source of a copy operation.
CrearCreate cc Cree un nuevo archivo en el recurso compartido o copie un archivo en un archivo nuevo del recurso compartido.Create a new file in the share, or copy a file to a new file in the share.
EscrituraWrite ww Para cualquier archivo del recurso compartido, cree o escriba contenido, propiedades o metadatos.For any file in the share, create or write content, properties or metadata. Cambie el tamaño del archivo.Resize the file. Use el archivo como destino de una operación de copia.Use the file as the destination of a copy operation. Nota: No puede conceder permisos para leer o escribir propiedades de recursos compartidos o metadatos con una SAS de servicio.Note: You cannot grant permissions to read or write share properties or metadata with a service SAS. En su lugar, use una SAS de cuenta.Use an account SAS instead.
EliminarDelete dd Elimine cualquier archivo del recurso compartido.Delete any file in the share. Nota: No puede conceder permisos para eliminar un recurso compartido con una SAS de servicio.Note: You cannot grant permissions to delete a share with a service SAS. En su lugar, use una SAS de cuenta.Use an account SAS instead.
ListList ll Enumerar los archivos y directorios del recurso compartido.List files and directories in the share.

Permisos para una colaPermissions for a queue

PermisoPermission Símbolo de URIURI symbol Operaciones permitidasAllowed operations
LecturaRead rr Leer metadatos y propiedades, incluidos el número de mensajes.Read metadata and properties, including message count. Consultar mensajes.Peek at messages.
SumarAdd aa Agregar mensajes a la cola.Add messages to the queue.
ActualizarUpdate uu Actualizar mensajes en la cola.Update messages in the queue. Nota: Use el permiso procesar con la actualización para que pueda obtener primero el mensaje que desea actualizar.Note: Use the Process permission with Update so you can first get the message you want to update.
ProcesoProcess pp Obtener y eliminar mensajes de la cola.Get and delete messages from the queue.

Permisos para una tablaPermissions for a table

PermisoPermission Símbolo de URIURI symbol Operaciones permitidasAllowed operations
ConsultarQuery rr Obtener y consultar entidades.Get entities and query entities.
SumarAdd aa Agregar entidades.Add entities. Nota: Los permisos Add y Update son necesarios para las operaciones de Upsert.Note: Add and Update permissions are required for upsert operations.
ActualizarUpdate uu Actualizar entidades.Update entities. Nota: Los permisos Add y Update son necesarios para las operaciones de Upsert.Note: Add and Update permissions are required for upsert operations.
EliminarDelete dd Eliminar entidades.Delete entities.

Especificación de la dirección IP o el intervalo IPSpecifying IP address or IP range

A partir de la versión 2015-04-05, signedIp el sip campo opcional () especifica una dirección IP o un intervalo de direcciones IP desde el que aceptar solicitudes.Beginning with version 2015-04-05, the optional signedIp (sip) field specifies an IP address or a range of IP addresses from which to accept requests. Si la dirección IP desde la que se origina la solicitud no coincide con la dirección IP o el intervalo de direcciones especificado en el token de SAS, la solicitud no está autorizada.If the IP address from which the request originates does not match the IP address or address range specified on the SAS token, the request is not authorized.

Al especificar un intervalo de direcciones IP, tenga en cuenta que el intervalo es inclusivo.When specifying a range of IP addresses, note that the range is inclusive.

Por ejemplo, si sip=168.1.5.65 se especifica o sip=168.1.5.60-168.1.5.70 en la SAS se restringe la solicitud a esas direcciones IP.For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS restricts the request to those IP addresses.

Especificar el protocolo HTTPSpecifying the HTTP protocol

A partir de la versión 2015-04-05, signedProtocol el spr campo opcional () especifica el protocolo permitido para una solicitud realizada con la SAS.Beginning with version 2015-04-05, the optional signedProtocol (spr) field specifies the protocol permitted for a request made with the SAS. Los valores posibles son HTTPS y HTTP ( https,http ) o solo https ( https ).Possible values are both HTTPS and HTTP (https,http) or HTTPS only (https). El valor predeterminado es https,http.The default value is https,http. Tenga en cuenta que HTTP solo no es un valor permitido.Note that HTTP only is not a permitted value.

Especificar intervalos de acceso a tablasSpecifying table access ranges

Los campos startPk, startRk, endPk y endRk definen un intervalo de entidades de tabla asociadas a una firma de acceso compartido.The startPk, startRk, endPk, and endRk fields define a range of table entities associated with a shared access signature. Las consultas de tabla solo devolverán resultados que estén dentro del intervalo, y los intentos de utilizar la firma de acceso compartido para agregar, actualizar o eliminar entidades fuera de este intervalo producirán un error.Table queries will only return results that are within the range, and attempts to use the shared access signature to add, update, or delete entities outside this range will fail. Si startPk es igual a endPk, la firma de acceso compartido solo autoriza el acceso a entidades de una partición de la tabla.If startPk equals endPk, the shared access signature only authorizes access to entities in one partition in the table. Si startPk es igual a endPk y startRk es igual a endRk, la firma de acceso compartido solo puede tener acceso a una entidad de una partición.If startPk equals endPk and startRk equals endRk, the shared access signature can only access one entity in one partition. Utilice la tabla siguiente para entender cómo estos campos restringen el acceso a las entidades de una tabla.Use the following table to understand how these fields constrain access to entities in a table.

Campos presentesFields present Ámbito de restricciónScope of constraint
startPk partitionKey >= startPkpartitionKey >= startPk
endPk <partitionKey = endPkpartitionKey <= endPk
startPk, startRkstartPk, startRk (partitionKey > startPk ) || (partitionKey = = startPk && rowKey >= startRk )(partitionKey > startPk) || (partitionKey == startPk && rowKey >= startRk)
endPk, endRkendPk, endRk (partitionKey < endPk ) || (partitionKey = = endPk && rowKey <= endRk )(partitionKey < endPk) || (partitionKey == endPk && rowKey <= endRk)

Especificar la profundidad del directorio (vista previa)Specify the directory depth (preview)

Si el signedResource campo (vista previa) especifica un directorio ( sr=d ), también debe especificar el signedDirectoryDepth campo ( sdd ) para indicar el número de subdirectorios en el directorio raíz.If the signedResource field (preview) specifies a directory (sr=d), then you must also specify the signedDirectoryDepth (sdd) field to indicate the number of subdirectories under the root directory. El valor del sdd campo debe ser un entero no negativo.The value of the sdd field must be a non-negative integer.

Por ejemplo, el directorio raíz https://{account}.blob.core.windows.net/{container}/ tiene una profundidad de 0.For example, the root directory https://{account}.blob.core.windows.net/{container}/ has a depth of 0. Cada subdirectorio situado debajo del directorio raíz agrega la profundidad en uno.Each subdirectory beneath the root directory adds to the depth by one. El directorio https://{account}.blob.core.windows.net/{container}/d1/d2 tiene una profundidad de dos.The directory https://{account}.blob.core.windows.net/{container}/d1/d2 has a depth of two.

Este campo es compatible con la versión 2020-02-10 o posterior.This field is supported with version 2020-02-10 or later.

Especificar el identificador firmadoSpecifying the signed identifier

Al especificar el campo signedIdentifier en el URI se relaciona la firma de acceso compartido dada con una directiva de acceso almacenada correspondiente.Specifying the signedIdentifier field on the URI relates the given shared access signature to a corresponding stored access policy. Una directiva de acceso almacenada proporciona una medida adicional de control sobre una o varias firmas de acceso compartido, incluida la posibilidad de revocar la firma si es necesario.A stored access policy provides an additional measure of control over one or more shared access signatures, including the ability to revoke the signature if needed. Cada contenedor, cola, tabla o recurso compartido puede tener hasta 5 directivas de acceso almacenadas.Each container, queue, table, or share can have up to 5 stored access policies.

En la tabla siguiente se describe cómo hacer referencia a un identificador firmado en el URI.The following table describes how to refer to a signed identifier on the URI.

Nombre del campoField name Parámetro de consultaQuery parameter DescripciónDescription
signedIdentifier si Opcional.Optional. Un valor único de 64 caracteres de longitud como máximo que se correlaciona con una directiva de acceso especificada para el contenedor, la cola o la tabla.A unique value up to 64 characters in length that correlates to an access policy specified for the container, queue, or table.

Una directiva de acceso almacenada incluye un identificador firmado, que es un valor de hasta 64 caracteres que es único dentro del recurso.A stored access policy includes a signed identifier, a value up to 64 characters long that is unique within the resource. El valor de este identificador firmado se puede especificar para el campo signedidentifier en el URI de la firma de acceso compartido.The value of this signed identifier can be specified for the signedidentifier field in the URI for the shared access signature. Al especificar un identificador firmado en el URI se asocia la firma a la directiva de acceso almacenada.Specifying a signed identifier on the URI associates the signature with the stored access policy. Para establecer una directiva de acceso de nivel de contenedor mediante la API de REST, vea delegar el acceso con una firma de acceso compartido.To establish a container-level access policy using the REST API, see Delegate access with a shared access signature.

Especificar la profundidad del directorio firmadoSpecifying the signed directory depth

Cuando se especifica Sr = d, también se requiere el parámetro de consulta SDD (versión 2020-02-10 o posterior y el espacio de nombres jerárquico está habilitado).When sr=d is specified, the sdd query parameter is also required (version 2020-02-10 or later and hierarchical namespace is enabled). El parámetro de consulta SDD indica la profundidad del directorio especificado en el campo canonicalizedResource de la cadena para firmar (consulte a continuación).The sdd query parameter indicates the depth of the directory specified in the canonicalizedResource field of the string-to-sign (see below). La profundidad del directorio es el número de directorios que hay debajo de la carpeta raíz.The depth of the directory is the number of directories beneath the root folder.

Por ejemplo, el directorio https://{account}. BLOB. Core. Windows. net/{Container}/D1/D2 tiene una profundidad de 2 y el directorio raíz https://{account}. BLOB. Core. Windows. net/{Container}/tiene una profundidad de 0.For example, the directory https://{account}.blob.core.windows.net/{container}/d1/d2 has a depth of 2 and the root directory https://{account}.blob.core.windows.net/{container}/ has a depth of 0. El valor de SDD debe ser un entero no negativo.The value of sdd must be a non-negative integer.

Especificar la firmaSpecifying the signature

La parte de la firma del URI se usa para autorizar la solicitud realizada con la firma de acceso compartido.The signature part of the URI is used to authorize the request made with the shared access signature. Azure Storage usa un esquema de autorización de claves compartidas para autorizar una SAS de servicio.Azure Storage uses a Shared Key authorization scheme to authorize a service SAS. En la tabla siguiente se describe cómo especificar la firma en el URI.The following table describes how to specify the signature on the URI.

Nombre del campoField name Parámetro de consultaQuery parameter DescripciónDescription
signature sig String-to-sign es una cadena única creada a partir de los campos que se deben comprobar para autorizar la solicitud.The string-to-sign is a unique string constructed from the fields that must be verified in order to authorize the request. La firma es un HMAC calculado sobre string-to-sign (la cadena para firmar) y una clave con el algoritmo SHA256, y después codificado con Base64.The signature is an HMAC computed over the string-to-sign and key using the SHA256 algorithm, and then encoded using Base64 encoding.

Construir la cadena de firmaConstructing the signature string

Para construir la cadena de firma de una firma de acceso compartido, construya primero el valor string-to-sign a partir de los campos que componen la solicitud y codifique después la cadena como UTF-8 y calcule la firma mediante el algoritmo HMAC-SHA256.To construct the signature string of a shared access signature, first construct the string-to-sign from the fields comprising the request, then encode the string as UTF-8 and compute the signature using the HMAC-SHA256 algorithm. Tenga en cuenta que los campos incluidos en string-to-sign se deben descodificar como una dirección URL.Note that fields included in the string-to-sign must be URL-decoded.

Versión 2018-11-09 y versiones posterioresVersion 2018-11-09 and later

La versión 2018-11-09 agrega compatibilidad para los campos de fecha y hora de la instantánea de blobs firmados.Version 2018-11-09 adds support for the signed resource and signed blob snapshot time fields. Deben incluirse en la cadena para firmar.These must be included in the string-to-sign. Para construir el valor String-to-sign para Blob service recursos, use el siguiente formato:To construct the string-to-sign for Blob service resources, use the following format:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               signedResource + "\n"
               signedSnapshotTime + "\n" +
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  
Versión 2015-04-05 y versiones posterioresVersion 2015-04-05 and later

La versión 2015-04-05 agrega compatibilidad con los campos IP firmada y protocolo firmado.Version 2015-04-05 adds support for the signed IP and signed protocol fields. Deben incluirse en la cadena para firmar.These must be included in the string-to-sign. Para construir el valor String-to-sign de los recursos BLOB o File Service, use el formato siguiente:To construct the string-to-sign for Blob or File service resources, use the following format:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  

Para construir el valor String-to-sign para Table service recursos, use el siguiente formato:To construct the string-to-sign for Table service resources, use the following format:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               startingPartitionKey + "\n"  
               startingRowKey + "\n"  
               endingPartitionKey + "\n"  
               endingRowKey  
  

Para construir el valor String-to-sign para Queue service recursos, use el siguiente formato:To construct the string-to-sign for Queue service resources, use the following format:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion  
  
Versión 2013-08-15 a la versión 2015-02-21Version 2013-08-15 through version 2015-02-21

Para construir el valor String-to-sign de los recursos BLOB o File Service con la versión 2013-08-15 a través de la versión 2015-02-21, use el formato siguiente.To construct the string-to-sign for Blob or File service resources using the 2013-08-15 version through version 2015-02-21, use the following format. Tenga en cuenta que para el servicio de archivos, SAS se admite a partir de la versión 2015-02-21.Note that for the File service, SAS is supported beginning with version 2015-02-21.

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion + "\n" +  
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  

Para construir el valor string-to-sign para una tabla, utilice el formato siguiente:To construct the string-to-sign for a table, use the following format:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion + "\n" +  
               startPk + "\n" +  
               startRk + "\n" +  
               endPk + "\n" +  
               endRk  
  

Para construir el valor String-to-sign para una cola, use el siguiente formato:To construct the string-to-sign for a queue, use the following format:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion 
Versión 2012-02-12Version 2012-02-12

Para construir el valor string-to-sign de los recursos de Blob service para la versión 2012-02-12, utilice el formato siguiente:To construct the string-to-sign for Blob service resources for version 2012-02-12, use the following format:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion  
Versiones anteriores a 2012-02-12Versions Prior to 2012-02-12

Para construir el valor string-to-sign de los recursos del servicio Blob para las versiones anteriores a 12.02.12, utilice el formato siguiente:To construct the string-to-sign for Blob service resources for versions prior to 2012-02-12, use the following format:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier  
  

Al construir la cadena que se va a firmar, tenga en cuenta lo siguiente:When constructing the string to be signed, keep in mind the following:

  • Si un campo es opcional y no se proporciona como parte de la solicitud, especifique una cadena vacía para ese campo.If a field is optional and not provided as part of the request, specify an empty string for that field. No olvide incluir el carácter de nueva línea (\n) después de la cadena vacía.Be sure to include the newline character (\n) after the empty string.

  • El valor string-to-sign para una tabla debe incluir los parámetros adicionales, incluso aunque sean cadenas vacías.String-to-sign for a table must include the additional parameters, even if they are empty strings.

  • La parte signedpermission de la cadena debe incluir las designaciones de permisos en un orden fijo que es específico de cada tipo de recurso.The signedpermission portion of the string must include the permission designations in a fixed order that is specific to each resource type. Cualquier combinación de estos permisos es aceptable, pero el orden de las letras de los permisos debe coincidir con el orden de la tabla siguiente.Any combination of these permissions is acceptable, but the order of permission letters must match the order in the following table.

    Tipo de recursoResource type Orden de los permisosOrdering of permissions
    BlobBlob racwdracwd
    ContenedorContainer racwdlracwdl
    ColaQueue raupraup
    ArchivoFile rcwdrcwd
    CompartirShare rcwdlrcwdl
    TablaTable raudraud

    Por ejemplo, ejemplos de valores de permisos válidos para un contenedor son rw ,, rd rl , wd , wl y rl .For example, examples of valid permissions settings for a container include rw, rd, rl, wd, wl, and rl. Entre los ejemplos de valores no válidos se incluyen wr , dr , lr y dw .Examples of invalid settings include wr, dr, lr, and dw. No se permite especificar una designación de permisos más de una vez.Specifying a permission designation more than once is not permitted.

  • La parte canonicalizedResource de la cadena es una ruta de acceso canónica al recurso firmado.The canonicalizedResource portion of the string is a canonical path to the signed resource. Debe incluir el nombre del servicio (BLOB, tabla, cola o archivo) para la versión 2015-02-21 o posterior, el nombre de la cuenta de almacenamiento y el nombre del recurso, y debe descodificarse como dirección URL.It must include the service name (blob, table, queue or file) for version 2015-02-21 or later, the storage account name, and the resource name, and must be URL-decoded. Los nombres de los blobs deben incluir el contenedor del blob.Names of blobs must include the blob’s container. Los nombres de tabla deben estar en minúsculas.Table names must be lower-case. En los siguientes ejemplos se muestra cómo construir la canonicalizedResource parte de la cadena, en función del tipo de recurso.The following examples show how to construct the canonicalizedResource portion of the string, depending on the type of resource.

    ContenedoresContainers

    Para la versión 2015-02-21 y posteriores:For version 2015-02-21 and later:

    URL = https://myaccount.blob.core.windows.net/music  
    canonicalizedResource = "/blob/myaccount/music"  
    

    En el caso de las versiones anteriores a 2015-02-21:For versions prior to 2015-02-21:

    URL = https://myaccount.blob.core.windows.net/music
    canonicalizedResource = "/myaccount/music"  
    

    BlobsBlobs

    Para la versión 2015-02-21 y posteriores:For version 2015-02-21 and later:

    URL = https://myaccount.blob.core.windows.net/music/intro.mp3  
    canonicalizedResource = "/blob/myaccount/music/intro.mp3"  
    
    

    En el caso de las versiones anteriores a 2015-02-21:For versions prior to 2015-02-21:

    URL = https://myaccount.blob.core.windows.net/music/intro.mp3
    canonicalizedResource = "/myaccount/music/intro.mp3"  
    

    Recursos compartidos de archivosFile Shares

    URL = https://myaccount.file.core.windows.net/music
    canonicalizedResource = "/file/myaccount/music"  
    

    ArchivosFiles

    URL = https://myaccount.file.core.windows.net/music/intro.mp3
    canonicalizedResource = "/file/myaccount/music/intro.mp3"  
    

    ColasQueues

    Para la versión 2015-02-21 y posteriores:For version 2015-02-21 and later:

    URL = https://myaccount.queue.core.windows.net/thumbnails  
    canonicalizedResource = "/queue/myaccount/thumbnails"  
    
    

    En el caso de las versiones anteriores a 2015-02-21:For versions prior to 2015-02-21:

    URL = https://myaccount.queue.core.windows.net/thumbnails  
    canonicalizedResource = "/myaccount/thumbnails"  
    
    

    TablasTables

    Si el recurso firmado es una tabla, asegúrese de que el nombre de la tabla está en minúsculas en el formato con formato canónico.If the signed resource is a table, assure the table name is lower-case in the canonicalized format.

    Para la versión 2015-02-21 y posteriores:For version 2015-02-21 and later:

    URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')  
    canonicalizedResource = "/table/myaccount/employees"  
    
    

    En el caso de las versiones anteriores a 2015-02-21:For versions prior to 2015-02-21:

    URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')  
    canonicalizedResource = "/myaccount/employees"  
    
    
  • Proporcione un valor para la parte signedIdentifier de la cadena si va a asociar la solicitud a una directiva de acceso almacenada.Provide a value for the signedIdentifier portion of the string if you are associating the request with a stored access policy.

  • Una firma de acceso compartido que especifica una versión del servicio de almacenamiento antes 2012-02-12 solo puede compartir un BLOB o contenedor y debe omitir signedVersion y la nueva línea antes de ella.A shared access signature that specifies a storage service version before 2012-02-12 can only share a blob or container, and must omit signedVersion and the newline before it.

Duración y revocación de una firma de acceso compartidoLifetime and revocation of a shared access signature

Las firmas de acceso compartido conceden derechos de acceso a los usuarios para los recursos de la cuenta de almacenamiento.Shared access signatures grant users access rights to storage account resources. Al planear el uso de una SAS, piense en la duración de la SAS y si la aplicación puede necesitar revocar los derechos de acceso en determinadas circunstancias.When planning to use a SAS, think about the lifetime of the SAS and whether your application may need to revoke access rights under certain circumstances.

SAS ad hoc frente a Directiva de acceso almacenadaAd hoc SAS versus stored access policy

Una SAS de servicio puede adoptar una de estas dos formas:A service SAS can take one of two forms:

  • SAS ad-hoc: cuando cree una SAS ad-hoc, la hora de inicio, la hora de expiración y los permisos para la SAS se especifican en el URI de SAS (o se encuentran implícitos en el caso de que se omita la hora de inicio).Ad hoc SAS: When you create an ad hoc SAS, the start time, expiry time, and permissions for the SAS are all specified in the SAS URI (or implied, if start time is omitted). Cualquier tipo de SAS puede ser una SAS ad-hoc.Any type of SAS can be an ad hoc SAS.

    Puede administrar la duración de una SAS ad hoc a través del signedExpiry campo.You can manage the lifetime of an ad hoc SAS via the signedExpiry field. Si desea seguir concediendo acceso al recurso a un cliente después de que transcurra la hora de expiración, debe emitir una nueva firma.If you want to continue to grant a client access to the resource after the expiry time, you must issue a new signature. Se recomienda que use una duración breve de la firma de acceso compartido.It’s recommended that you keep the lifetime of a shared access signature short. Antes de la versión 2012-02-12, una firma de acceso compartido no asociada a una directiva de acceso almacenada no podía tener un período activo que superó una hora.Prior to version 2012-02-12, a shared access signature not associated with a stored access policy could not have an active period that exceeded one hour.

  • SAS con Directiva de acceso almacenada: Se define una directiva de acceso almacenada en un contenedor de recursos, que puede ser un contenedor de blobs, una tabla, una cola o un recurso compartido de archivos.SAS with stored access policy: A stored access policy is defined on a resource container, which can be a blob container, table, queue, or file share. La Directiva de acceso almacenada se puede usar para administrar las restricciones de una o varias firmas de acceso compartido.The stored access policy can be used to manage constraints for one or more shared access signatures. Cuando asocia una SAS a una directiva de acceso almacenada, la SAS hereda las restricciones de — la hora de inicio, la hora de expiración y los permisos — definidos para la Directiva de acceso almacenada.When you associate a SAS with a stored access policy, the SAS inherits the constraints—the start time, expiry time, and permissions—defined for the stored access policy.

    La directiva de acceso almacenada se representa mediante el campo signedIdentifier del URI.The stored access policy is represented by the signedIdentifier field on the URI. Una directiva de acceso almacenada proporciona una medida adicional de control sobre una o varias firmas de acceso compartido, incluida la posibilidad de revocar la firma si es necesario.A stored access policy provides an additional measure of control over one or more shared access signatures, including the ability to revoke the signature if needed.

Revocación de una SASRevocation of a SAS

Dado que un URI de SAS es una dirección URL, cualquier persona que obtenga la SAS puede utilizarla, independientemente de quién la creó originalmente.Because a SAS URI is a URL, anyone that obtains the SAS can use it, regardless of who originally created it. Si una SAS se encuentra disponible públicamente, cualquier persona del mundo puede usarla.If a SAS is published publicly, it can be used by anyone in the world. Una SAS concede acceso a los recursos a cualquier persona que cuente con ella hasta que se sucede uno de las siguientes situaciones:A SAS grants access to resources to anyone possessing it until one of four things happens:

  1. Se alcanza la hora de expiración especificada en una SAS ad hoc.The expiry time specified on an ad hoc SAS is reached.

  2. Se alcanza la hora de expiración especificada en la Directiva de acceso almacenada a la que hace referencia la SAS, si se hace referencia a una directiva de acceso almacenada, y si la Directiva de acceso especifica una hora de expiración.The expiry time specified on the stored access policy referenced by the SAS is reached, if a stored access policy is referenced, and if the access policy specifies an expiry time. Se puede tener acceso a la hora de expiración porque transcurre el intervalo o porque se ha modificado la Directiva de acceso almacenada para tener una hora de expiración en el pasado, que es una manera de revocar la SAS.The expiry time can be reached either because the interval elapses, or because you've modified the stored access policy to have an expiry time in the past, which is one way to revoke the SAS.

  3. La Directiva de acceso almacenada a la que hace referencia la SAS se elimina, lo que revoca la SAS.The stored access policy referenced by the SAS is deleted, which revokes the SAS. Si Azure Storage no encuentra la Directiva de acceso almacenada especificada en la firma de acceso compartido, el cliente no puede tener acceso al recurso indicado por el URI.If Azure Storage cannot locate the stored access policy specified in the shared access signature, the client is not able to access the resource indicated by the URI.

    Si vuelve a crear la Directiva de acceso almacenada con exactamente el mismo nombre que la Directiva eliminada, todos los tokens de SAS existentes volverán a ser válidos de acuerdo con los permisos asociados a esa Directiva de acceso almacenada, suponiendo que el tiempo de expiración de la SAS no haya pasado.If you recreate the stored access policy with exactly the same name as the deleted policy, all existing SAS tokens will again be valid according to the permissions associated with that stored access policy, assuming that the expiry time on the SAS has not passed. Si prevé revocar la SAS, asegúrese de usar un nombre distinto si vuelve a crear la directiva de acceso con una hora de expiración futura.If you are intending to revoke the SAS, be sure to use a different name if you recreate the access policy with an expiry time in the future.

  4. Se vuelve a generar la clave de cuenta que se usó para crear la SAS.The account key that was used to create the SAS is regenerated. La regeneración de una clave de cuenta provocará que todos los componentes de la aplicación que usen esa clave no tengan autorización hasta que se actualicen para usar la otra clave de cuenta válida o la clave de cuenta que se acaba de regenerar.Regenerating an account key will cause all application components using that key to fail to authorize until they're updated to use either the other valid account key or the newly regenerated account key. Volver a generar la clave de cuenta es la única manera de revocar de inmediato una SAS ad hoc.Regenerating the account key is the only way to immediately revoke an ad hoc SAS.

Importante

Los URI de firma de acceso compartido están asociados a la clave de la cuenta que se utiliza para crear la firma y a la directiva de acceso almacenada correspondiente (en su caso).A shared access signature URI is associated with the account key used to create the signature, and the associated stored access policy (if any). Si no se especifica una directiva de acceso almacenada, la única forma de revocar una firma de acceso compartido es cambiar la clave de la cuenta.If no stored access policy is specified, the only way to revoke a shared access signature is to change the account key.

En los procedimientos recomendados se recomienda usar una directiva de acceso almacenada con una SAS de servicio.Best practices recommend that you use a stored access policy with a service SAS. Si decide no usar una directiva de acceso almacenada, asegúrese de mantener el intervalo de validez de la SAS ad hoc.If you choose not to use a stored access policy, then be sure to keep the interval over which the ad hoc SAS is valid short. Para obtener más información sobre la Asociación de una SAS de servicio con una directiva de acceso almacenada, consulte definir una directiva de acceso almacenada.For more information on associating a service SAS with a stored access policy, see Define a stored access policy.

Ejemplo de SAS de servicioService SAS example

En el ejemplo siguiente se muestra un URI de SAS de servicio que proporciona permisos de lectura y escritura a un BLOB.The following example shows a service SAS URI that provides read and write permissions to a blob. La tabla divide cada parte del URI:The table breaks down each part of the URI:

https://myaccount.blob.core.windows.net/sascontainer/sasblob.txt?sv=2019-02-02&st=2019-04-29T22%3A18%3A26Z&se=2019-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D
NombreName Parte de SASSAS portion DescripciónDescription
URI de recursoResource URI https://myaccount.blob.core.windows.net/sascontainer/sasblob.txt La dirección del blob.The address of the blob. Tenga en cuenta que se recomienda fehacientemente el uso de HTTPS.Note that using HTTPS is highly recommended.
Versión de servicios de almacenamientoStorage services version sv=2019-02-02 En la versión de servicios de almacenamiento 2012-02-12 y superiores, este parámetro indica qué versión usar.For storage services version 2012-02-12 and later, this parameter indicates the version to use.
Hora de inicioStart time st=2019-04-29T22%3A18%3A26Z Se especifica en hora UTC.Specified in UTC time. Si desea que la SAS sea válida de inmediato, omita la hora de inicio.If you want the SAS to be valid immediately, omit the start time.
Hora de expiraciónExpiry time se=2019-04-30T02%3A23%3A26Z Se especifica en hora UTC.Specified in UTC time.
ResourceResource sr=b El recurso es un blob.The resource is a blob.
PermisosPermissions sp=rw Los permisos que concede la SAS son de lectura y escritura.The permissions granted by the SAS include Read (r) and Write (w).
Intervalo de IPIP range sip=168.1.5.60-168.1.5.70 El intervalo de direcciones IP desde el que se aceptará una solicitud.The range of IP addresses from which a request will be accepted.
ProtocoloProtocol spr=https Solo se permiten solicitudes con HTTPS.Only requests using HTTPS are permitted.
FirmaSignature sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D Se usa para autorizar el acceso al blob.Used to authorize access to the blob. La firma es un HMAC que se procesa mediante una cadena para firmar y una clave con el algoritmo SHA256, y que se codifica mediante Base64.The signature is an HMAC computed over a string-to-sign and key using the SHA256 algorithm, and then encoded using Base64 encoding.

Vea tambiénSee also