Establecer ACL de tabla
La operación Set Table ACL
establece las directivas de acceso almacenadas para la tabla que se pueden usar con firmas de acceso compartido. Para obtener más información, vea Definir una directiva de acceso almacenada.
Nota
La operación Set Table ACL
está disponible en la versión 2012-02-12 y posteriores.
Nota
Una lista de control de acceso (ACL) es una lista de entradas de control de acceso (ACE). Cada ACE de una ACL identifica un de administrador de
Pedir
Puede construir la solicitud Set Table ACL
de la siguiente manera. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento.
Método | URI de solicitud | Versión HTTP |
---|---|---|
PUT |
https://myaccount.table.core.windows.net/mytable?comp=acl |
HTTP/1.1 |
URI del servicio de almacenamiento emulado
Cuando realice una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y el puerto de Azure Table Storage como 127.0.0.1:10002
. A continuación, agregue el nombre de la cuenta de almacenamiento emulada.
Método | URI de solicitud | Versión HTTP |
---|---|---|
PUT |
http://127.0.0.1:10002/devstoreaccount1/mytable?comp=acl |
HTTP/1.1 |
Para más información, consulte Uso del emulador de Azurite para el desarrollo local de Azure Storage.
Parámetros de URI
Puede especificar los siguientes parámetros adicionales en el URI de solicitud:
Parámetro | Descripción |
---|---|
timeout |
Opcional. Expresado en segundos. Para obtener más información, consulte Establecer tiempos de espera para las operaciones de Table Storage. |
Encabezados de solicitud
En la tabla siguiente se describen los encabezados de solicitud obligatorios y opcionales:
Encabezado de solicitud | Descripción |
---|---|
Authorization |
Obligatorio. Especifica el esquema de autorización, el nombre de la cuenta y la firma. Para más información, consulte Autorizar solicitudes a Azure Storage. |
Date o x-ms-date |
Obligatorio. Especifica la hora universal coordinada (UTC) de la solicitud. Para más información, consulte Autorizar solicitudes a Azure Storage. |
x-ms-version |
Opcional. Especifica la versión de la operación que se va a usar para esta solicitud. Para más información, consulte Control de versiones de para los servicios de Azure Storage. |
x-ms-client-request-id |
Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 kibibyte (KiB) que se registra en los registros de Storage Analytics cuando se configura el registro. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes que recibe el servidor. |
Cuerpo de la solicitud
Para especificar una directiva de acceso almacenada, proporcione un identificador único y una directiva de acceso en el cuerpo de la solicitud para la operación de Set Table ACL
.
El elemento SignedIdentifier
incluye el identificador único, tal como se especifica en el elemento Id
.
SignedIdentifier
también incluye los detalles de la directiva de acceso, tal como se especifica en el elemento AccessPolicy
. La longitud máxima del identificador único es de 64 caracteres.
Los campos Start
y Expiry
deben expresarse como horas UTC y deben cumplir un formato ISO 8061 válido. Entre los formatos ISO 8061 admitidos se incluyen:
YYYY-MM-DD
YYYY-MM-DDThh:mmTZD
YYYY-MM-DDThh:mm:ssTZD
YYYY-MM-DDThh:mm:ss.ffffffTZD
Para la parte de fecha de estos formatos, YYYY
es una representación de año de cuatro dígitos, MM
es una representación mensual de dos dígitos y DD
es una representación de día de dos dígitos. Para la parte de tiempo, hh
es la representación de hora en notación de 24 horas, mm
es la representación de minuto de dos dígitos, ss
es la representación de segundo dígitos y ffffff
es la representación de seis dígitos milisegundos. El designador de hora T
separa las partes de fecha y hora de la cadena. El designador de zona horaria TZD
especifica una zona horaria.
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>unique-64-character-value</Id>
<AccessPolicy>
<Start>start-time</Start>
<Expiry>expiry-time</Expiry>
<Permission>abbreviated-permission-list</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
Solicitud de ejemplo
Request Syntax:
PUT https://myaccount.table.core.windows.net/mytable?comp=acl HTTP/1.1
Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Mon, 25 Nov 2013 00:42:49 GMT
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=
Request Body:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>
<AccessPolicy>
<Start>2013-11-26T08:49:37.0000000Z</Start>
<Expiry>2013-11-27T08:49:37.0000000Z</Expiry>
<Permission>raud</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
Respuesta
La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.
Código de estado
Una operación correcta devuelve el código de estado 204 (sin contenido).
Para obtener información sobre los códigos de estado, vea Códigos de estado y de error.
Encabezados de respuesta
La respuesta de esta operación incluye los siguientes encabezados. La respuesta también puede incluir encabezados HTTP estándar adicionales. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1 de .
Encabezado de respuesta | Descripción |
---|---|
x-ms-request-id |
Identifica de forma única la solicitud que se realizó. También puede usarlo para solucionar problemas de la solicitud. Para obtener más información, consulte Solución de problemas de operaciones de API. |
x-ms-version |
Indica la versión de Table Storage que se usa para ejecutar la solicitud. Este encabezado se devuelve para las solicitudes realizadas en la versión 2009-09-19 y posteriores. |
Date |
Valor de fecha y hora UTC que indica la hora a la que el servicio envió la respuesta. |
x-ms-client-request-id |
Se puede usar para solucionar problemas de solicitudes y respuestas correspondientes. El valor de este encabezado es igual al valor del encabezado x-ms-client-request-id , si está presente en la solicitud y el valor es como máximo 1024 caracteres ASCII visibles. Si el encabezado x-ms-client-request-id no está presente en la solicitud, este encabezado no estará presente en la respuesta. |
Respuesta de ejemplo
Response Status:
HTTP/1.1 204 No Content
Response Headers:
Transfer-Encoding: chunked
Date: Mon, 25 Nov 2013 22:42:55 GMT
x-ms-version: 2013-08-15
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
Autorización
Se requiere autorización al llamar a cualquier operación de acceso a datos en Azure Storage. Puede autorizar la operación de Set Table ACL
mediante microsoft Entra ID o clave compartida.
Para autorizar la operación de Set Table ACL
mediante el identificador de Entra de Microsoft, la entidad de seguridad necesita un rol RBAC de Azure personalizado que incluya la siguiente acción de RBAC: Microsoft.Storage/storageAccounts/tableServices/tables/setAcl/action
.
Importante
Microsoft recomienda usar el identificador de Entra de Microsoft con identidades administradas para autorizar solicitudes a Azure Storage. Microsoft Entra ID proporciona seguridad y facilidad de uso superiores en comparación con la autorización de clave compartida.
Observaciones
Al establecer permisos para una tabla, se reemplazan los permisos existentes. Para actualizar los permisos de la tabla, llame a Get Table ACL para capturar todas las directivas de acceso asociadas a la tabla. Modifique la directiva de acceso que desea cambiar y, a continuación, llame a Set Table ACL
con el conjunto completo de datos para realizar la actualización.
Establecimiento de directivas de acceso almacenadas
Una directiva de acceso almacenada puede especificar la hora de inicio, la hora de expiración y los permisos para las firmas de acceso compartido a las que está asociada. En función de cómo quiera controlar el acceso al recurso compartido o al recurso de archivo, puede hacer lo siguiente:
- Especifique todos estos parámetros dentro de la directiva de acceso almacenada y omitíelos de la dirección URL de la firma de acceso compartido. Al hacerlo, podrá modificar el comportamiento de la firma asociada o revocarlo en cualquier momento.
- Especifique uno o varios de los parámetros de la directiva de acceso dentro de la directiva de acceso almacenada y especifique los demás parámetros en la dirección URL.
- Especifique todos los parámetros en la dirección URL. En este caso, puede usar la directiva de acceso almacenada para revocar la firma, pero no para modificar su comportamiento.
Para obtener más información sobre cómo establecer directivas de acceso, consulte Definición de una directiva de acceso almacenada.
Juntos, la firma de acceso compartido y la directiva de acceso almacenada deben incluir todos los campos necesarios para autorizar la firma. Si faltan campos obligatorios, se producirá un error en la solicitud. Del mismo modo, si se especifica un campo en la dirección URL de la firma de acceso compartido y en la directiva de acceso almacenada, se producirá un error en la solicitud con el código de estado 400 (solicitud incorrecta). Para obtener más información sobre los campos que componen una firma de acceso compartido, consulte Creación de una SAS de servicio.
Puede establecer un máximo de cinco directivas de acceso independientes para una tabla en cualquier momento. Si se pasan más de cinco directivas de acceso en el cuerpo de la solicitud, el servicio devuelve el código de estado 400 (solicitud incorrecta).
Nota
Al establecer una directiva de acceso almacenada en una tabla, puede tardar hasta 30 segundos en surtir efecto. Durante este intervalo, se producirá un error en una firma de acceso compartido asociada a la directiva de acceso almacenada con el código de estado 403 (Prohibido), hasta que la directiva de acceso se active.
Consulte también
Definir una directiva de acceso almacenada
Crear y usar una firma de acceso compartido
Delegar acceso con una firma de acceso compartido
obtener de ACL de tabla
Autorizar solicitudes a Azure Storage
códigos de error y estado