Exportar (0) Imprimir
Expandir todo

Set Container ACL

Actualizado: febrero de 2015

La operación Set Container ACL establece los permisos del contenedor especificado. Los permisos indican si el acceso a los blobs de un contenedor es público.

A partir de la versión 2009-09-19, los permisos del contenedor proporcionan las siguientes opciones para administrar su acceso:

  • Acceso de lectura público completo: los datos del contenedor y blobs se pueden leer mediante una solicitud anónima. Los clientes pueden enumerar blobs en el contenedor a través de una solicitud anónima, pero no pueden enumerar contenedores en la cuenta de almacenamiento.

  • Acceso de lectura público solo para blobs: se pueden leer los datos de blobs en este contenedor mediante una solicitud anónima, pero los datos del contenedor no están disponibles. Los clientes no pueden enumerar blobs en el contenedor a través una solicitud anónima.

  • Sin acceso público de lectura: solamente el propietario de la cuenta puede leer los datos del contenedor y del blob.

Set Container ACL también establece una directiva de acceso almacenada que se podrá usar con firmas de acceso compartido. Para obtener más información, vea Usar una directiva de acceso almacenada.

Todo el acceso público al contenedor es anónimo, como lo es el acceso mediante una firma de acceso compartido.

La solicitud Set Container ACL se puede construir como sigue. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento:

 

Método URI de solicitud Versión de HTTP

PUT

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl

HTTP/1.1

Al realizar una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y el puerto del servicio Blob como 127.0.0.1:10000, seguido del nombre de la cuenta de almacenamiento emulado:

 

Método URI de solicitud Versión de HTTP

PUT

http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl

HTTP/1.1

Para obtener más información, vea Uso del emulador de almacenamiento de Azure para desarrollo y prueba.

Se pueden especificar los parámetros adicionales siguientes en el URI de solicitud.

 

Parámetro Descripción

timeout

Opcional. El parámetro timeout se expresa en segundos. Para obtener más información, vea Establecer los tiempos de espera para las operaciones del servicio Blob.

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.

 

Encabezado de solicitud Descripción

Authorization

Requerido. Especifica el esquema de autenticación, el nombre de la cuenta y la firma. Para obtener más información, vea Autenticación para los servicios de almacenamiento de Azure.

Date o x-ms-date

Requerido. Especifica la hora universal coordinada (UTC) para la solicitud. Para obtener más información, vea Autenticación para los servicios de almacenamiento de Azure.

x-ms-version

Opcional. Especifica la versión de la operación que se utiliza para esta solicitud. Para obtener más información, vea Versiones de los servicios Blob, Cola y Tabla de Windows Azure.

x-ms-blob-public-access

Opcional. Especifica si el acceso a los datos del contenedor es público, así como el nivel de acceso. Los valores posibles incluyen:

  • container: especifica el acceso de lectura público completo para los datos del contenedor y de los blobs. Los clientes pueden enumerar blobs en el contenedor a través de una solicitud anónima, pero no pueden enumerar contenedores en la cuenta de almacenamiento.

  • blob: especifica el acceso de lectura público para los blobs. Los datos de los blobs de este contenedor se pueden leer mediante una solicitud anónima, pero los datos del contenedor no están disponibles. Los clientes no pueden enumerar blobs en el contenedor a través una solicitud anónima.

Si no se incluye este encabezado en la solicitud, a los datos del contenedor solo podrá acceder el propietario de la cuenta.

Tenga en cuenta que no se permite la configuración de acceso público de un contenedor en una cuenta de almacenamiento Premium de Azure.

x-ms-lease-id: <ID>

Opcional, versión 2012-02-12 y versiones más recientes. Si se especifica, Set Container ACL solo se realiza correctamente si la concesión del contenedor está activa y coincide con este identificador. Si no hay ninguna concesión activa o el identificador no coincide, se devuelve el código 412 (Error de condición previa).

x-ms-client-request-id

Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 KB que se graba en los registros de análisis cuando el registro de análisis de almacenamiento está habilitado. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes recibidas por el servidor. Para obtener más información, vea Acerca del registro del análisis de almacenamiento y Registro de Azure: usar registros para realizar el seguimiento de las solicitudes de almacenamiento.

Esta operación también admite el uso de encabezados condicionales que permiten ejecutar la operación solo si se cumple una condición especificada. Para obtener más información, vea Definición de encabezados condicionales para las operaciones del servicio BLOB.

Para especificar una directiva de acceso almacenada, proporcione un identificador y una directiva de acceso únicos en el cuerpo de la solicitud para la operación Set Container ACL.

El elemento SignedIdentifier incluye el identificador único, tal como se especifica en el elemento Id, y 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 los requisitos de un formato ISO 8061 válido. Entre los formatos ISO 8061 admitidos se incluyen los siguientes:

  • YYYY-MM-DD

  • YYYY-MM-DDThh:mmTZD

  • YYYY-MM-DDThh:mm:ssTZD

  • YYYY-MM-DDThh:mm:ss.fffffffTZD

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. 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, ss es la representación de dos dígitos de los segundos y fffffff es la representación de siete dígitos de los milisegundos. Un designador de hora T separa las partes de fecha y de hora de la cadena, mientras que un 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>

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1

Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 00:42:49 GMT
x-ms-blob-public-access: container
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=

Request Body:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
  <SignedIdentifier> 
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>
    <AccessPolicy>
      <Start>2009-09-28T08:49:37.0000000Z</Start>
      <Expiry>2009-09-29T08:49:37.0000000Z</Expiry>
      <Permission>rwd</Permission>
    </AccessPolicy>
  </SignedIdentifier>
</SignedIdentifiers>

La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.

Una operación correcta devuelve el código de estado 200 (Correcto).

Para obtener información acerca de los códigos de estado, vea Códigos de estado y de error.

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir otros encabezados HTTP estándar. Todos los encabezados estándar cumplen la especificación del protocolo HTTP/1.1.

 

Encabezado de respuesta Descripción

ETag

La ETag del contenedor. Si la versión de la solicitud es 2011-08-18 o una más reciente, el valor ETag estará entre comillas.

Last-Modified

Devuelve la fecha y hora en que se modificó por última vez el contenedor. El formato de la fecha sigue las convenciones de RFC 1123. Para obtener más información, vea Representación de valores de fecha u hora en encabezados.

Cualquier operación que modifique el contenedor o sus propiedades o metadatos actualiza la hora de la última modificación, incluido el establecimiento de los permisos del contenedor. Las operaciones en los blobs no afectan a la hora de última modificación del contenedor.

x-ms-request-id

Este encabezado identifica de forma única la solicitud que se realizó y se puede utilizar para solucionar problemas relacionados con esta. Para obtener más información, vea Solucionar problemas relacionados con las operaciones de la API.

x-ms-version

Indica la versión del servicio Blob utilizado para ejecutar la solicitud. Este encabezado se devuelve para las solicitudes realizadas en la versión 2009-09-19 y versiones posteriores.

Date

Valor de fecha y hora UTC generado por el servicio que indica la hora a la que se inició la respuesta.

Response Status:
HTTP/1.1 200 OK

Response Headers:
Transfer-Encoding: chunked
Date: Sun, 25 Sep 2011 22:42:55 GMT
ETag: "0x8CB171613397EAB"
Last-Modified: Sun, 25 Sep 2011 22:42:55 GMT
x-ms-version: 2011-08-18
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

Solo el propietario de la cuenta puede llamar a esta operación.

Solo el propietario de la cuenta puede tener acceso a los recursos de un determinado contenedor, a menos que él mismo haya especificado que el acceso a los recursos del contenedor es público, o haya emitido una firma de acceso compartido para un recurso del contenedor.

Al establecer los permisos para un contenedor, los permisos existentes se reemplazan. Para actualizar los permisos del contenedor, llame a Get Container ACL para capturar todas las directivas de acceso asociadas al contenedor, modifique la directiva de acceso que desea cambiar y, a continuación, llame a Set Container ACL con el conjunto completo de datos para realizar la actualización.

Habilitar el acceso público anónimo para los datos del contenedor

Para habilitar el acceso de lectura público anónimo para los datos del contenedor, llame a Set Container ACL con el encabezado x-ms-blob-public-access establecido en container o blob. Para deshabilitar el acceso anónimo, llame a Set Container ACL sin especificar el encabezado x-ms-blob-public-access.

Si establece x-ms-blob-public-access en blob, los clientes pueden llamar a las operaciones siguientes de manera anónima:

Si establece x-ms-blob-public-access en container, los clientes pueden llamar a las operaciones siguientes de manera anónima:

Establecer las directivas de acceso de nivel de contenedor

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 con las que está asociada. En función de cómo desee controlar el acceso al recurso del contenedor o del blob, puede especificar todos estos parámetros en la directiva de acceso almacenada y omitirlos en la dirección URL de la firma de acceso compartido. De esta forma, podrá modificar el comportamiento de la firma asociada en cualquier momento, así como revocarla. O puede especificar uno o más de los parámetros de la directiva de acceso en la directiva de acceso almacenada y el resto en la dirección URL. Por último, puede especificar todos los parámetros en la dirección URL. En este caso, puede utilizar la directiva de acceso almacenada para revocar la firma, pero no para modificar su comportamiento. Para obtener más información sobre el establecimiento de directivas de acceso, vea Usar una directiva de acceso almacenada.

Es preciso que la firma de acceso compartido y la directiva de acceso almacenada, en su conjunto, incluyan todos los campos necesarios para autenticar la firma. Si falta alguno de los campos necesarios, la solicitud producirá un error. Asimismo, si un campo se especifica en la dirección URL de la firma de acceso compartido y en la directiva de acceso almacenada, la solicitud producirá un error con el código de estado 400 (Solicitud incorrecta).

Se pueden establecer como máximo cinco directivas de acceso independientes en un contenedor determinado 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).

Una firma de acceso compartido se puede emitir en un contenedor o en un blob independientemente de si los datos del contenedor está disponibles para el acceso de lectura anónimo. Una firma de acceso compartido proporciona un mayor grado de control sobre cómo, cuándo y quién puede acceder a un recurso.

noteNota
Establecer una directiva de acceso almacenada en un contenedor puede tardar hasta 30 segundos en aplicarse. Durante este intervalo, una firma de acceso compartido que se asocia a la directiva de acceso almacenada producirá un error con el código de estado 403 (Prohibido), hasta que la directiva de acceso se active.

Mostrar:
© 2015 Microsoft