Configurar permisos para el acceso a sitios web - Amazon Simple Storage Service

Configurar permisos para el acceso a sitios web

Cuando configura un bucket como un sitio web estático, si desea que el sitio web sea público, puede conceder acceso público de lectura. Para hacer que el bucket sea legible públicamente, debe deshabilitar la configuración de bloqueo de acceso público del bucket y escribir una política de bucket que conceda acceso público de lectura. Si el bucket contiene objetos que no son propiedad del propietario del bucket, es posible que necesite además añadir una lista de control de acceso (ACL) de objeto que conceda acceso de lectura a todo el mundo.

Si no desea desactivar la configuración de acceso público de bloqueo para el bucket pero quiere que su sitio web sea público, puede crear una distribución de Amazon CloudFront para atender su sitio web estático. Para obtener más información, consulte Utilizar una distribución de Amazon CloudFront para servir a un sitio web estático en la Guía para desarrolladores de Amazon Route 53.

nota

En el punto de enlace del sitio web, si un usuario solicita un objeto que no existe, Amazon S3 devuelve el código de respuesta HTTP 404 (Not Found). Si el objeto existe, pero no se ha concedido el permiso de lectura para él, el punto de enlace del sitio web devuelve el código de respuesta HTTP 403 (Access Denied). El usuario puede utilizar el código de respuesta para inferir si existe un objeto específico. Si no desea que esto suceda, no debe activar el soporte de sitio web para el bucket.

Paso 1: Editar la configuración del bloqueo de acceso público en S3

Si desea configurar un bucket existente como sitio web estático que tenga acceso público, debe editar la configuración del bloqueo de acceso público para dicho bucket. También es posible que tenga que editar la configuración del bloqueo de acceso público a nivel de cuenta. Amazon S3 aplica la combinación más restrictiva de la configuración del bloqueo de acceso público a nivel de bucket y nivel de cuenta.

Por ejemplo, si permite el acceso público a un bucket, pero bloquea todo el acceso público en el nivel de cuenta, Amazon S3 seguirá bloqueando el acceso público al bucket. En esta situación, tendría que editar su configuración del bloqueo de acceso público del nivel de bucket y nivel de cuenta. Para obtener más información, consulte Bloquear el acceso público a su almacenamiento de Amazon S3.

De forma predeterminada, Amazon S3 bloquea el acceso público a su cuenta y sus buckets. Si desea utilizar un bucket para alojar un sitio web estático, puede utilizar estos pasos para editar la configuración de bloqueo de acceso público.

aviso

Antes de completar este paso, consulte Bloquear el acceso público a su almacenamiento de Amazon S3 para asegurarse de que comprende y acepta los riesgos que implica otorgar el acceso público. Cuando desactiva la configuración de acceso público de bloqueo para que el bucket sea público, cualquier usuario de Internet puede acceder al bucket. Le recomendamos que bloquee todo el acceso público a sus buckets.

  1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3.

  2. Elija el nombre del bucket que ha configurado como sitio web estático.

  3. Elija Permissions (Permisos).

  4. En Block public access (bucket settings) (Bloquear acceso público [configuración de bucket]), elija Edit (Editar).

  5. Desactive Block all public access (Bloquear todo el acceso público) y elija Save changes (Guardar cambios).

    aviso

    Antes de completar este paso, consulte Bloquear el acceso público a su almacenamiento de Amazon S3 para asegurarse de que comprende y acepta los riesgos que implica otorgar el acceso público. Cuando desactiva la configuración de acceso público de bloqueo para que el bucket sea público, cualquier usuario de Internet puede acceder al bucket. Le recomendamos que bloquee todo el acceso público a sus buckets.

    Amazon S3 desactiva la configuración del bloqueo de acceso público para su bucket. Para crear un sitio web público y estático, es posible que también tenga que editar la configuración del bloqueo de acceso público para su cuenta antes de agregar una política de bucket. Si la configuración de cuenta para el bloqueo de acceso público está activada actualmente, verá una nota en Block public access (bucket settings) [Bloqueo de acceso público (configuración de bucket)].

Paso 2: Agregar una política de bucket

Para hacer que los objetos del bucket sean legibles públicamente, debe escribir una política de bucket que conceda permiso s3:GetObject a todo el mundo.

Después de editar la configuración de acceso público de bloques de S3, debe agregar una política de bucket para garantizar el acceso de lectura público a su bucket. Cuando concede permiso de lectura público, cualquier persona de Internet puede acceder a su bucket.

importante

La política que se muestra a continuación es solo un ejemplo y permite acceso completo al contenido del bucket. Antes de continuar con este paso, revise ¿Cómo puedo proteger los archivos en mi bucket de Amazon S3? para asegurarse de que comprende las prácticas recomendadas para proteger los archivos en el bucket de S3 y los riesgos que implica la concesión de acceso público.

  1. En Buckets, elija el nombre del bucket.

  2. Elija Permissions (Permisos).

  3. En Bucket Policy (Política de bucket), elija Edit (Editar).

  4. Para conceder acceso público de lectura a su sitio web, copie la siguiente política de bucket y péguela en el Bucket policy editor (Editor de políticas de bucket).

    { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::Bucket-Name/*" ] } ] }
  5. Actualice el valor de Resource para el nombre de su bucket.

    En la política de bucket de ejemplo anterior, Bucket-Name es un marcador de posición para el nombre del bucket. Para utilizar esta política de bucket con su propio bucket, debe actualizar este nombre para que coincida con su nombre de bucket.

  6. Elija Save changes.

    Aparecerá un mensaje que indicará que la política de bucket se ha agregado correctamente.

    Si ve un error que indica Policy has invalid resource, confirme que el nombre del bucket en la política del bucket coincide con el nombre de su bucket. Para obtener información acerca de cómo agregar una política de bucket, consulte ¿Cómo añado una política de bucket de S3?

    Si recibe un mensaje de error y no puede guardar la política de bucket, compruebe la configuración del bloqueo de acceso público para la cuenta y el bucket para confirmar que permite acceso público al bucket.

Listas de control de acceso de objetos

Puede utilizar una política de bucket para conceder permiso de lectura público a los objetos. No obstante, la política de bucket se aplica solo a objetos que pertenecen al propietario del bucket. Si el bucket contiene objetos que no pertenecen al propietario del bucket, este debería utilizar la lista de control de acceso (ACL) del objeto para conceder permiso de LECTURA público en dichos objetos.

De forma predeterminada, cuando otra Cuenta de AWS carga un objeto en el bucket de S3, esa cuenta (el escritor del objeto) es propietaria del objeto, tiene acceso a él y puede conceder acceso a él a otros usuarios a través de ACL. Puede utilizar la propiedad de objetos para cambiar este comportamiento predeterminado de modo que las ACL estén desactivadas y, como propietario del bucket, tenga automáticamente la propiedad de todos los objetos del bucket. Como resultado, el control de acceso de los datos se basa en políticas, tales como políticas de IAM, políticas de bucket de S3, políticas de puntos de conexión de nube privada virtual (VPC) y políticas de control de servicios (SCP) de AWS Organizations.

La mayoría de los casos de uso modernos de Amazon S3 ya no requieren el uso de ACL. Le recomendamos desactivar las ACL, excepto en circunstancias inusuales en las que necesite controlar el acceso de cada objeto de manera individual. Con la propiedad de objetos, puede desactivar las ACL y confiar en políticas para el control de acceso. Al desactivar las ACL, puede mantener fácilmente un bucket con objetos cargados por diferentes Cuentas de AWS. Como propietario del bucket, posee todos los objetos del bucket y puede administrar el acceso a ellos mediante políticas. Para obtener más información, consulte Control de la propiedad de los objetos y desactivación de las ACL del bucket.

importante

Si el bucket utiliza la configuración de propietario del bucket obligatorio de S3 Object Ownership, debe utilizar políticas para conceder acceso al bucket y a los objetos que contiene. Las solicitudes de configuración de ACL o de actualización de ACL fallan y devuelven el código de error AccessControlListNotSupported. Las solicitudes de lectura de ACL siguen siendo compatibles.

Para que un objeto sea legible públicamente mediante una ACL, conceda permiso de LECTURA al grupo AllUsers, tal como se muestra en el siguiente elemento concedido. Añada el siguiente elemento concedido a la ACL de objetos. Para obtener más información sobre la administración de las ACL, consulte Información general de las Listas de control de acceso (ACL).

<Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI> </Grantee> <Permission>READ</Permission> </Grant>