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 Aceleración de su sitio web con Amazon CloudFront o 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.
Temas
Paso 1: Editar la configuración del S3 Block Public Access
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 estos pasos, consulte Bloquear el acceso público a su almacenamiento de Amazon S3 para asegurarse de que comprende y acepta los riesgos que implica permitir 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.
-
Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3
. -
Elija el nombre del bucket que ha configurado como sitio web estático.
-
Elija Permissions (Permisos).
-
En Block public access (bucket settings) (Bloquear acceso público [configuración de bucket]), elija Edit (Editar).
-
Desactive Block all public access (Bloquear todo el acceso público) y elija Save changes (Guardar cambios).
Amazon S3 desactiva la configuración de 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 de Bloqueo de acceso público para su cuenta antes de agregar una política de bucket. Si la configuración de Bloqueo de acceso público de su cuenta está activada actualmente, verá una nota en Bloquear acceso público (configuración del 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 S3 Block Public Access, 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?
-
En Buckets, elija el nombre del bucket.
-
Elija Permissions (Permisos).
-
En Bucket Policy (Política de bucket), elija Edit (Editar).
-
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
/*" ] } ] } -
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. -
Elija Guardar cambios.
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.
S3 Object Ownership es una configuración de bucket de Amazon S3 que puede usar para controlar la propiedad de los objetos que se cargan en el bucket y para activar o desactivar las ACL. De forma predeterminada, la propiedad de objetos se establece en la configuración impuesta por el propietario del bucket. Además, todas las ACL están deshabilitadas. Cuando las ACL están deshabilitadas, el propietario del bucket posee todos los objetos del bucket y administra su acceso de forma exclusiva mediante políticas de administración de acceso.
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 a cada objeto de manera individual. Si las ACL están desactivadas, puede usar políticas para controlar el acceso a todos los objetos del bucket, independientemente de quién haya subido los objetos al bucket. 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. Si la configuración impuesta por el propietario del bucket está activada, las solicitudes de configuración o actualización de las listas de control de acceso (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>