

# Alojamiento de un sitio web estático mediante Amazon S3
<a name="WebsiteHosting"></a>

Puede utilizar Amazon S3 para alojar un sitio web estático. En un sitio web *estático*, cada página web incluye contenido estático. También pueden contener scripts del lado del cliente.

**nota**  
Le recomendamos que utilice [AWS Amplify Hosting](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) para alojar el contenido estático de sitios web almacenado en S3. Amplify Hosting es un servicio totalmente administrado que facilita la implementación de los sitios web en una red de entrega de contenido (CDN) disponible en todo el mundo con tecnología de Amazon CloudFront, lo que permite el alojamiento de sitios web estáticos y seguros.   
Con AWS Amplify Hosting, puede seleccionar la ubicación de los objetos en el bucket de uso general, implementar el contenido en una CDN administrada y generar una URL HTTPS pública para que se pueda acceder al sitio web desde cualquier lugar. Para obtener más información sobre Amplify Hosting, consulte [Implementación de un sitio web estático en AWS Amplify Hosting desde un bucket de uso general de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-amplify.html) e [Implementación de un sitio web estático desde S3 mediante la consola de Amplify](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) en la *Guía del usuario de la consola de AWS Amplify*.

Para obtener más información sobre cómo alojar un sitio web estático en Simple Storage Service (Amazon S3), incluidas las instrucciones y las explicaciones paso a paso, consulte los siguientes temas:

**importante**  
Si el bucket que utiliza para alojar el sitio web estático se ha cifrado mediante cifrado del servidor con claves AWS Key Management Service (AWS KMS) (SSE-KMS), debe crear una distribución de Amazon CloudFront para servir el sitio web, ya que SSE-KMS no admite usuarios anónimos. Cuando crea la distribución de CloudFront, debe usar el control de acceso de origen (OAC) en lugar de la identidad de acceso de origen (OAI) para proteger el origen. La OAI no es compatible con SSE-KMS, por lo que debe usar OAC en su lugar.  
Para obtener más información sobre OAC, consulte [Restricción del acceso a un origen de Amazon S3](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) en la *Guía para desarrolladores de Amazon CloudFront*. Para ver un tutorial que muestra cómo alojar un sitio web estático con Amazon CloudFront, consulte [Tutorial: Alojamiento de video en streaming bajo demanda con Amazon S3, Amazon CloudFront y Amazon Route 53](tutorial-s3-cloudfront-route53-video-streaming.md).

**Topics**
+ [Puntos de enlace de sitio web](WebsiteEndpoints.md)
+ [Habilitar el alojamiento de sitios web](EnableWebsiteHosting.md)
+ [Configurar un documento de índice](IndexDocumentSupport.md)
+ [Configurar un documento de error personalizado](CustomErrorDocSupport.md)
+ [Configurar permisos para el acceso a sitios web](WebsiteAccessPermissionsReqd.md)
+ [(Opcional) Registro del tráfico web](LoggingWebsiteTraffic.md)
+ [(Opcional) Configuración del redireccionamiento de páginas web](how-to-page-redirect.md)
+ [Uso compartido de recursos entre orígenes (CORS)](cors.md)
+ [Tutoriales de sitios web estáticos](static-website-tutorials.md)

# Puntos de enlace de sitio web
<a name="WebsiteEndpoints"></a>

Cuando configura el bucket como un sitio web estático, el sitio web está disponible en el punto de enlace de sitio web de la Región de AWS específica del bucket. Los puntos de enlace de sitio web son distintos de los puntos de enlace a donde envía las solicitudes de la Application Programming Interface (API, Interfaz de programación de aplicaciones) de REST. Para obtener más información acerca de las diferencias entre los puntos de enlace, consulte [Diferencias clave entre el punto de enlace de un sitio web y un punto de enlace de la API de REST](#WebsiteRestEndpointDiff).

En función de la región, el punto de enlace del sitio web de Amazon S3 siguen uno de estos dos formatos.
+ **s3-website guion (-) región** ‐ `http://bucket-name.s3-website-Region.amazonaws.com`
+ **s3-web punto (.) Región** ‐ `http://bucket-name.s3-website.Region.amazonaws.com`

Estas URL devuelven el documento de índice predeterminado que configuró para el sitio web. Para obtener una lista completa de los puntos de enlace del sitio web de Amazon S3, consulte [Puntos de enlace de sitio web de Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints).

**nota**  
Para aumentar la seguridad de los sitios web estáticos de Amazon S3, los dominios de punto de conexión del sitio web de Amazon S3 (por ejemplo, *s3-website-us-east-1.amazonaws.com* o *s3-website.ap-south-1.amazonaws.com*) se registran en la [lista de sufijos públicos (PSL)](https://publicsuffix.org/). Para mayor seguridad, se recomienda que utilice cookies con un prefijo `__Host-` en caso de que necesite configurar cookies confidenciales en el nombre de dominio de sus sitios web estáticos de Amazon S3. Esta práctica le ayudará a proteger su dominio de los intentos de falsificación de solicitudes entre sitios (CSRF). Para obtener más información, consulte la página de [configuración de cookies](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) en la red de desarrolladores de Mozilla.

Si desea que su sitio web sea público, debe hacer que el contenido sea legible públicamente para que los clientes puedan acceder a él en el punto de conexión del sitio web. Para obtener más información, consulte [Configurar permisos para el acceso a sitios web](WebsiteAccessPermissionsReqd.md). 

**importante**  
Los puntos de enlace del sitio web de Amazon S3 no admiten HTTPS ni puntos de acceso. Si desea utilizar HTTPS, puede optar por uno de los siguientes procedimientos:   
(Recomendado) Usar [AWS Amplify Hosting](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) para alojar el contenido estático de sitios web almacenado en S3. Amplify Hosting es un servicio totalmente administrado que facilita la implementación de los sitios web en una red de entrega de contenido (CDN) disponible en todo el mundo con tecnología de Amazon CloudFront, lo que permite el alojamiento de sitios web estáticos y seguros.   
Con AWS Amplify Hosting, puede seleccionar la ubicación de los objetos en el bucket de uso general, implementar el contenido en una CDN administrada y generar una URL HTTPS pública para que se pueda acceder al sitio web desde cualquier lugar. Para obtener más información sobre Amplify Hosting, consulte [Implementación de un sitio web estático en AWS Amplify Hosting desde un bucket de uso general de S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/website-hosting-amplify) e [Implementación de un sitio web estático desde S3 mediante la consola de Amplify](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) en la *Guía del usuario de la consola de AWS Amplify*.
Usar Amazon CloudFront para servir un sitio web estático alojado en Amazon S3. Para obtener más información, consulte [¿Cómo uso CloudFront para que atienda solicitudes HTTPS de mi bucket de Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-https-requests-s3) Para utilizar HTTPS con un dominio personalizado, consulte [Configuración de un sitio web estático mediante un dominio personalizado registrado con Route 53](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html).
Los buckets de pago por solicitante no permiten el acceso mediante puntos de enlace de sitio web. Cualquier solicitud a un bucket de este tipo recibe una respuesta 403 Acceso denegado . Para obtener más información, consulte [Uso de buckets de uso general de pago por solicitante para transferencias de almacenamiento y uso](RequesterPaysBuckets.md).

**Topics**
+ [Ejemplos de puntos de enlace de sitio web](#website-endpoint-examples)
+ [Agregar un CNAME DNS](#website-endpoint-dns-cname)
+ [Uso de un dominio personalizado con Route 53](#custom-domain-s3-endpoint)
+ [Diferencias clave entre el punto de enlace de un sitio web y un punto de enlace de la API de REST](#WebsiteRestEndpointDiff)

## Ejemplos de puntos de enlace de sitio web
<a name="website-endpoint-examples"></a>

Los siguientes ejemplos muestran cómo acceder a un bucket de Amazon S3 que está configurado como sitio web estático.

**Example — Solicitud de un objeto en el nivel raíz**  
Para solicitar un objeto específico que esté almacenado en el nivel raíz del bucket, utilice la siguiente estructura de URL.  

```
http://bucket-name.s3-website.Region.amazonaws.com/object-name
```
Por ejemplo, la siguiente dirección URL solicita el objeto `photo.jpg` que está almacenado en el nivel raíz del bucket.  

```
http://example-bucket.s3-website.us-west-2.amazonaws.com/photo.jpg
```

**Example — Solicitud de un objeto en un prefijo**  
Para solicitar un objeto almacenado en una carpeta del bucket, utilice esta estructura de URL.  

```
http://bucket-name.s3-website.Region.amazonaws.com/folder-name/object-name
```
La siguiente dirección URL solicita el objeto `docs/doc1.html` en el bucket.   

```
http://example-bucket.s3-website.us-west-2.amazonaws.com/docs/doc1.html
```

## Agregar un CNAME DNS
<a name="website-endpoint-dns-cname"></a>

Si tiene un dominio registrado, puede añadir una entrada CNAME de DNS para asociar el punto de enlace del sitio web de Amazon S3. Por ejemplo, si ha registrado el dominio `www.example-bucket.com`, puede crear un bucket `www.example-bucket.com` y añadir un registro CNAME de DNS que se asocie a `www.example-bucket.com.s3-website.Region.amazonaws.com`. Todas las solicitudes a `http://www.example-bucket.com` serán direccionadas a `www.example-bucket.com.s3-website.Region.amazonaws.com`. 

Para obtener más información, consulte [Personalización de URL de Amazon S3 con registros CNAME](VirtualHosting.md#VirtualHostingCustomURLs). 

## Uso de un dominio personalizado con Route 53
<a name="custom-domain-s3-endpoint"></a>

En lugar de acceder al sitio web mediante un sitio web de punto de enlace de Amazon S3, puede utilizar su propio dominio registrado en Amazon Route 53 para servir su contenido, por ejemplo, `example.com`. Puede usar Amazon S3 con Route 53 para alojar un sitio web en el dominio raíz. Por ejemplo, si tiene el dominio raíz `example.com` y aloja su sitio web en Amazon S3, los visitantes de su sitio web pueden acceder al sitio desde su navegador entrando en `http://www.example.com` o `http://example.com`. 

Para ver un tutorial de ejemplo, consulte [Tutorial: Configuración de un sitio web estático mediante un dominio personalizado registrado con Route 53](website-hosting-custom-domain-walkthrough.md). 

## Diferencias clave entre el punto de enlace de un sitio web y un punto de enlace de la API de REST
<a name="WebsiteRestEndpointDiff"></a>

Un punto de enlace de sitio web de Amazon S3 está optimizado para obtener acceso desde un navegador web. En la siguiente tabla se resumen las diferencias clave entre un punto de enlace de API de REST y un punto de enlace de sitio web. 


| Diferencia de la clave | Punto de enlace de la API de REST | Punto de enlace de sitio web | 
| --- | --- | --- | 
| Control de acceso |  Admite contenido público y privado  | Admite solo contenido público que se puede leer  | 
| Gestión de mensaje de error |  Devuelve una respuesta de error con formato XML  | Devuelve un documento HTML | 
| Compatibilidad de redireccionamiento |  No aplicable  | Admite el redireccionamiento en el nivel de objeto y de bucket | 
| Solicitudes admitidas  |  Admite todas las operaciones de bucket y objeto.  | Admite únicamente solicitudes GET y HEAD en los objetos | 
| Respuestas a las solicitudes GET and HEAD en la raíz de un bucket | Devuelve una lista de todas las claves de objetos en el bucket | Devuelve un documento de índice que se especificó en la configuración del sitio web | 
| Compatibilidad con la Secure Sockets Layer (SSL, Capa de conexión segura) | Admite conexiones SSL | No admite conexiones SSL | 

Para obtener una lista completa de los puntos de conexión de Amazon S3, consulte [Puntos de conexión y cuotas de Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html) en la *Referencia general de AWS*.

# Habilitar el alojamiento de sitios web
<a name="EnableWebsiteHosting"></a>

Cuando configura un bucket como sitio web estático, debe habilitar el alojamiento de sitios web estáticos, configurar un documento de índice y establecer permisos.

Puede habilitar el alojamiento de sitios web estáticos mediante la consola de Amazon S3, la API de REST, los SDK de AWS, la AWS CLI o CloudFormation.

Para configurar el sitio web con un dominio personalizado, consulte [Tutorial: Configuración de un sitio web estático mediante un dominio personalizado registrado con Route 53](website-hosting-custom-domain-walkthrough.md).

## Uso de la consola de S3
<a name="HowDoIWebsiteConfiguration"></a>

**Para habilitar el alojamiento estático de sitios web**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, seleccione el nombre del bucket para el que desea habilitar el alojamiento de sitios web estáticos.

1. Seleccione **Propiedades**.

1. Elija **Alojamiento de sitios web estáticos** y luego **Editar**.

1. Elija **Usar este bucket para alojar un sitio web**. 

1. En **Alojamiento de sitios web estáticos**, elija **Habilitar**.

1. En **Documento de índice**, escriba el nombre de archivo del documento de índice, normalmente `index.html`. 

   El nombre del documento de índice distingue entre mayúsculas y minúsculas y debe coincidir exactamente con el nombre del archivo del documento de índice HTML que tiene previsto cargar en el bucket de S3. Al configurar un bucket para el alojamiento de sitios web, debe especificar un documento de índice. Amazon S3 devuelve este documento de índice cuando se reciben solicitudes en el dominio raíz o en cualquiera de las subcarpetas. Para obtener más información, consulte [Configurar un documento de índice](IndexDocumentSupport.md).

1. Si desea proporcionar su propio documento de error personalizado para los errores de clase 4XX, escriba el nombre de archivo del documento de error personalizado en **Documento de error**. 

   El nombre del documento de error distingue entre mayúsculas y minúsculas y debe coincidir exactamente con el nombre del archivo del documento de error HTML que tiene previsto cargar en el bucket de S3. Si no especifica un documento de error personalizado y se produce un error, Amazon S3 devuelve un documento de error HTML predeterminado. Para obtener más información, consulte [Configurar un documento de error personalizado](CustomErrorDocSupport.md).

1. (Opcional) Si desea especificar reglas de redireccionamiento avanzadas, en **Reglas de redireccionamiento**, especifique JSON para describir las reglas.

   Por ejemplo, puede dirigir condicionalmente las solicitudes según nombres de clave de objeto o prefijos específicos en la solicitud. Para obtener más información, consulte [Configurar reglas de redireccionamiento para utilizar redireccionamiento condicional avanzado](how-to-page-redirect.md#advanced-conditional-redirects).

1. Elija **Guardar cambios**.

   Amazon S3 permite activar el alojamiento de sitios web estáticos para su bucket. En la parte inferior de la página, en **Alojamiento de sitios web estáticos**, verá el punto de conexión del sitio web para su bucket.

1. En **Alojamiento de sitios web estáticos**, anote el valor de **Punto de conexión**.

   **Punto de conexión** es el punto de conexión del sitio web de Amazon S3 para el bucket. Cuando termine de configurar el bucket como un sitio web estático, puede utilizar este punto de enlace para probar el sitio web.

## Uso de la API de REST
<a name="ConfigWebSiteREST"></a>

Para obtener más información sobre cómo enviar solicitudes REST directamente para habilitar el alojamiento de sitios web estáticos, consulte las siguientes secciones en la Referencia de la API de Amazon Simple Storage Service:
+ [PUT Bucket website](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html)
+ [GET Bucket website](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETwebsite.html)
+ [DELETE Bucket website](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html)

## Uso de los AWS SDK
<a name="ManagingBucketWebsiteConfig"></a>

Para alojar un sitio web estático en Amazon S3, debe configurar un bucket de S3 para el alojamiento de sitio web y cargar el contenido del sitio web en el bucket. También puede utilizar los AWS SDK para crear, actualizar y eliminar la configuración del sitio web mediante programación. Los SDK proporcionan clases de encapsulamiento en toda la API de REST de Amazon S3. Si su aplicación lo requiere, puede enviar solicitudes de la API de REST directamente desde su aplicación. 

------
#### [ .NET ]

El siguiente ejemplo muestra cómo usar AWS SDK para .NET para administrar la configuración de un sitio web para un bucket. Para agregar una configuración de sitio web a un bucket, proporcione el nombre del bucket y una configuración de sitio web. La configuración de sitio web debe incluir un documento de índice y puede contener un documento de error opcional. Estos documentos ya deben estar almacenados en el bucket. Para obtener más información, consulte la sección sobre [Sitio web PUT Bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html). Para obtener más información acerca de la característica de sitio web de Amazon S3, consulte [Alojamiento de un sitio web estático mediante Amazon S3](WebsiteHosting.md). 

El siguiente ejemplo de código C\$1 agrega una configuración de sitio web al bucket específico. La configuración especifica los nombres tanto del documento de índice como el de error. Para obtener información acerca de cómo configurar y ejecutar ejemplos de código, consulte [Introducción al SDK de AWS para .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) en la *Guía para desarrolladores del SDK de AWS para .NET*. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class WebsiteConfigTest
    {
        private const string bucketName = "*** bucket name ***";
        private const string indexDocumentSuffix = "*** index object key ***"; // For example, index.html.
        private const string errorDocument = "*** error object key ***"; // For example, error.html.
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;
        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            AddWebsiteConfigurationAsync(bucketName, indexDocumentSuffix, errorDocument).Wait();
        }

        static async Task AddWebsiteConfigurationAsync(string bucketName,
                                            string indexDocumentSuffix,
                                            string errorDocument)
        {
            try
            {
                // 1. Put the website configuration.
                PutBucketWebsiteRequest putRequest = new PutBucketWebsiteRequest()
                {
                    BucketName = bucketName,
                    WebsiteConfiguration = new WebsiteConfiguration()
                    {
                        IndexDocumentSuffix = indexDocumentSuffix,
                        ErrorDocument = errorDocument
                    }
                };
                PutBucketWebsiteResponse response = await client.PutBucketWebsiteAsync(putRequest);

                // 2. Get the website configuration.
                GetBucketWebsiteRequest getRequest = new GetBucketWebsiteRequest()
                {
                    BucketName = bucketName
                };
                GetBucketWebsiteResponse getResponse = await client.GetBucketWebsiteAsync(getRequest);
                Console.WriteLine("Index document: {0}", getResponse.WebsiteConfiguration.IndexDocumentSuffix);
                Console.WriteLine("Error document: {0}", getResponse.WebsiteConfiguration.ErrorDocument);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
    }
}
```

------
#### [ PHP ]

El siguiente ejemplo de PHP agrega una configuración de sitio web al bucket específico. El método `create_website_config` proporciona explícitamente los nombres de los documentos de error e índice. El ejemplo recupera también la configuración del sitio web e imprime la respuesta. Para obtener más información acerca de la característica de sitio web de Amazon S3, consulte [Alojamiento de un sitio web estático mediante Amazon S3](WebsiteHosting.md).

Para obtener más información acerca de la API del SDK de AWS para Ruby, consulte [SDK de AWS para Ruby, versión 2](https://docs.aws.amazon.com/sdkforruby/api/index.html).

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);


// Add the website configuration.
$s3->putBucketWebsite([
    'Bucket'                => $bucket,
    'WebsiteConfiguration'  => [
        'IndexDocument' => ['Suffix' => 'index.html'],
        'ErrorDocument' => ['Key' => 'error.html']
    ]
]);

// Retrieve the website configuration.
$result = $s3->getBucketWebsite([
    'Bucket' => $bucket
]);
echo $result->getPath('IndexDocument/Suffix');

// Delete the website configuration.
$s3->deleteBucketWebsite([
    'Bucket' => $bucket
]);
```

------

## Mediante AWS CLI
<a name="enabling-website-cli"></a>

Para obtener más información acerca de cómo usar la AWS CLI para configurar un bucket de S3 como un sitio web estático, consulte [website](https://docs.aws.amazon.com/cli/latest/reference/s3/website.html) en la *Referencia de comandos de la AWS CLI*.

A continuación, debe configurar el documento de índice y establecer permisos. Para obtener más información, consulte [Configurar un documento de índice](IndexDocumentSupport.md) y [Configurar permisos para el acceso a sitios web](WebsiteAccessPermissionsReqd.md). 

También puede configurar opcionalmente un [documento de error](CustomErrorDocSupport.md), un [registro de tráfico web](LoggingWebsiteTraffic.md) o una [redirección](how-to-page-redirect.md).

# Configurar un documento de índice
<a name="IndexDocumentSupport"></a>

Cuando habilita el alojamiento de sitios web, también debe configurar y cargar un documento de índice. Un *documento de índice* es una página web que devuelve Amazon S3 cuando se realiza una solicitud a la raíz de un sitio web o cualquier subcarpeta. Por ejemplo, si un usuario introduce `http://www.example.com` en el navegador, el usuario no solicita ninguna página específica. En ese caso, Amazon S3 ofrece el documento de índice, al que a veces se denomina la *página predeterminada*.

Cuando habilite el alojamiento de sitio web estático para su bucket, escriba el nombre del documento de índice (por ejemplo: )., `index.html`). Después de habilitar el alojamiento de sitio web estático para el bucket, cargue un archivo HTML con el nombre del documento de índice en el bucket. 

La barra diagonal en el URL raíz es opcional. Por ejemplo, si configura el sitio web con `index.html` como documento de índice, las siguientes URL devuelven `index.html`.

```
1. http://example-bucket.s3-website.Region.amazonaws.com/
2. http://example-bucket.s3-website.Region.amazonaws.com
```

Para obtener más información acerca de los puntos de enlace de sitio web de Amazon S3, consulte [Puntos de enlace de sitio web](WebsiteEndpoints.md).

## Documento de índice y carpetas
<a name="IndexDocumentsandFolders"></a>

En Amazon S3, un bucket es un contenedor plano de objetos. No proporciona ninguna organización jerárquica como hace el sistema de archivos en su equipo. Sin embargo, puede crear una jerarquía lógica al usar los nombres de clave de objeto que implican una estructura de carpeta. 

Por ejemplo, tomemos el caso de un bucket con tres objetos y los siguientes nombres de clave. Aunque están almacenados sin una organización jerárquica, puede inferir la siguiente estructura lógica de carpeta de los nombres de clave.
+ `sample1.jpg` El objeto es la raíz del bucket.
+ `photos/2006/Jan/sample2.jpg` El objeto se encuentra en la subcarpeta `photos/2006/Jan`.
+ `photos/2006/Feb/sample3.jpg` El objeto se encuentra en la subcarpeta `photos/2006/Feb`. 

En la consola de Amazon S3, también puede crear una carpeta en un bucket. Por ejemplo, puede crear una carpeta denominada `photos`. Puede cargar objetos en el bucket o en la carpeta `photos` dentro del bucket. Si añade el objeto `sample.jpg` al bucket, el nombre de clave será `sample.jpg`. Si carga el objeto a la carpeta `photos`, el nombre de clave del objeto será `photos/sample.jpg`.

Si crea esa estructura de carpeta en el bucket, debe tener un documento de índice en cada nivel. En cada carpeta, el documento de índice debe tener el mismo nombre, por ejemplo, `index.html`. Cuando un usuario especifica un URL que es similar a la búsqueda de una carpeta, la presencia o ausencia de una barra diagonal determina el comportamiento del sitio web. Por ejemplo, el siguiente URL, con una barra diagonal, devuelve el documento de índice `photos/index.html`. 

```
1. http://bucket-name.s3-website.Region.amazonaws.com/photos/
```

Sin embargo, si excluye la barra diagonal del URL anterior, Amazon S3 primero buscará un objeto `photos` en el bucket. Si no encuentra el objeto `photos`, busca un documento de índice, `photos/index.html`. Se encuentra el documento, Amazon S3 devuelve un mensaje `302 Found` e indica la clave `photos/`. Para las solicitudes posteriores a `photos/`, Amazon S3 devuelve `photos/index.html`. Si no encuentra el documento de índice, Amazon S3 devuelve un error.

## Configuración de un documento de índice
<a name="configuring-index-document"></a>

Para configurar un documento de índice mediante la consola de S3, utilice el siguiente procedimiento. También puede configurar un documento de índice mediante la API de REST, los SDK de AWS, la AWS CLI o CloudFormation. 

**nota**  
En un bucket habilitado para control de versiones, puede cargar varias copias de `index.html`, pero solo se resolverá la versión más reciente. Para obtener más información sobre el uso del control de versiones de S3, consulte [Retención de varias versiones de objetos con Control de versiones de S3](Versioning.md).

Cuando habilite el alojamiento de sitio web estático para su bucket, escriba el nombre del documento de índice (por ejemplo: )., **index.html**). Después de habilitar el alojamiento de sitio web estático para el bucket, cargue un archivo HTML con el nombre de este documento de índice en el bucket.

**Para configurar el documento de índice**

1. Cree un archivo `index.html`.

   Si no tiene un archivo `index.html`, puede usar el siguiente HTML para crear uno:

   ```
   <html xmlns="http://www.w3.org/1999/xhtml" >
   <head>
       <title>My Website Home Page</title>
   </head>
   <body>
     <h1>Welcome to my website</h1>
     <p>Now hosted on Amazon S3!</p>
   </body>
   </html>
   ```

1. Guarde el archivo de índice localmente.

   El nombre del archivo de documento de índice debe coincidir exactamente con el nombre del documento de índice que especifique en el cuadro de diálogo **Alojamiento de sitio web estático**. El nombre del documento de índice distingue entre mayúsculas y minúsculas. Por ejemplo, si escribe `index.html` en el nombre del **Documento de índice** en el cuadro de diálogo **Alojamiento de sitios web estáticos**, el nombre del archivo de documento de índice también debe ser `index.html` y no `Index.html`.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, elija el nombre del bucket que desea utilizar para alojar un sitio web estático.

1. Habilite el alojamiento de sitios web estáticos para su bucket e introduzca el nombre exacto del documento de índice (por ejemplo: )., `index.html`). Para obtener más información, consulte [Habilitar el alojamiento de sitios web](EnableWebsiteHosting.md).

   Después de habilitar el alojamiento estático del sitio web, continúe con el paso 6. 

1. Para cargar el documento de índice en el bucket, realice una de las siguientes acciones:
   + Arrastre y suelte el archivo de índice en la lista de buckets de la consola.
   + Elija **Cargar** y siga las instrucciones para elegir y cargar el archivo de índice.

   Para obtener instrucciones paso a paso, consulte [Carga de objetos](upload-objects.md).

1. (Opcional) Cargue otros contenidos del sitio web en su bucket.

A continuación, debe establecer permisos para el acceso al sitio web. Para obtener información, consulte [Configurar permisos para el acceso a sitios web](WebsiteAccessPermissionsReqd.md). 

También puede configurar opcionalmente un [documento de error](CustomErrorDocSupport.md), un [registro de tráfico web](LoggingWebsiteTraffic.md) o una [redirección](how-to-page-redirect.md).

# Configurar un documento de error personalizado
<a name="CustomErrorDocSupport"></a>

Después de configurar el bucket como un sitio web estático, cuando se produce un error, Amazon S3 devuelve un documento de error HTML. Opcionalmente, puede configurar el bucket con un documento de error personalizado para que Amazon S3 devuelva dicho documento cuando se produzca un error. 

**nota**  
Algunos navegadores muestran su propio mensaje de error cuando se produce un error, y omiten el documento de error de Amazon S3. Por ejemplo, cuando se produce un error HTTP 404 No encontrado, Google Chrome puede omitir el documento de error de Amazon S3 y mostrar su propio error.

**Topics**
+ [Códigos de respuesta HTTP de Amazon S3](#s3-http-error-codes)
+ [Configurar un documento de error personalizado](#custom-error-document)

## Códigos de respuesta HTTP de Amazon S3
<a name="s3-http-error-codes"></a>

En la siguiente tabla se muestra el subconjunto de los códigos de respuesta HTTP que Amazon S3 devuelve cuando ocurre un error. 


| Código de error HTTP | Descripción | 
| --- | --- | 
| 301 Moved Permanently (Desplazado permanentemente | Cuando un usuario envía una solicitud directamente a los puntos de enlace del sitio web de Amazon S3 (http://s3-website.Region.amazonaws.com/), Amazon S3 devuelve una respuesta 301 Moved Permanently (301 Trasladado de forma permanente) y redirecciona esas solicitudes a https://aws.amazon.com/s3/. | 
| 302 Found (Encontrado |  Cuando Amazon S3 recibe una solicitud para una clave `x`, `http://bucket-name.s3-website.Region.amazonaws.com/x`, sin la barra diagonal, primero busca el objeto con el nombre de clave `x`. Si no encuentra el objeto, Amazon S3 determina que la solicitud es para una subcarpeta `x`, redirecciona la solicitud, añade una barra al final y devuelve el código **302 Found (302 Encontrado)**.   | 
| 304 Not Modified (No modificado |  Los usuarios de Amazon S3 solicitan encabezados `If-Modified-Since`, `If-Unmodified-Since`, `If-Match` o `If-None-Match` para determinar si el objeto solicitado es el mismo que la copia almacenada que conserva el cliente. Si el objeto es el mismo, el punto de enlace del sitio web devuelve una respuesta **304 Not Modified (304 No modificado)**.  | 
| 400 Malformed Request (Solicitud con formato incorrecto |  El punto de enlace de sitio web devuelve una respuesta **400 Malformed Request (Solicitud con formato incorrecto)** cuando un usuario intenta obtener acceso a un bucket con el punto de enlace regional incorrecto.   | 
| 403 prohibido |  El punto de enlace de sitio web devuelve una respuesta **403 Forbidden (403 Prohibido)** cuando la solicitud de un usuario se traduce en un objeto que no se puede leer públicamente. El propietario del objeto debe permitir la lectura pública del objeto mediante una política de bucket o una ACL.   | 
| 404 Not Found (No encontrado |  El punto de enlace de sitio web devuelve una respuesta **404 Not Found (404 No encontrado)** por las razones siguientes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/CustomErrorDocSupport.html) Puede crear un documento personalizado que se devuelve para **404 Not Found (404 No encontrado)**. Asegúrese de que el documento esté cargado al bucket configurado como sitio web y que la configuración de alojamiento del sitio web utilice el documento. Para obtener información acerca de cómo Amazon S3 interpreta un URL como una solicitud para un objeto o un documento de índice, consulte [Configurar un documento de índice](IndexDocumentSupport.md).   | 
| 500 Service Error (Error de servicio |  El punto de enlace del sitio web devuelve una respuesta **500 Service Error (500 Error de servicio)** cuando ocurre un error interno del servidor.  | 
| 503 Service Unavailable |  El punto de enlace del sitio web devuelve una respuesta **503 Service Unavailable (503 Servicio no disponible)** cuando Amazon S3 determina que debe reducir la velocidad de solicitud.   | 

 Para cada uno de estos errores, Amazon S3 devuelve un mensaje HTML predefinido. A continuación, se muestra un ejemplo de un mensaje HTML devuelto para la respuesta **403 Forbidden (403 Prohibido)**.

![\[Ejemplo de mensaje de error 403 Forbidden (Prohibido)\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/WebsiteErrorExample403.png)


## Configurar un documento de error personalizado
<a name="custom-error-document"></a>

Cuando configura el bucket como un sitio web estático, puede proporcionar un documento de error personalizado que contenga un mensaje de error sencillo y ayuda adicional. Amazon S3 devuelve el documento de error personalizado para las clase de códigos de error HTTP 4XX únicamente. 

Para configurar un documento de error personalizado mediante la consola de S3, siga los pasos que se muestran a continuación. También puede configurar un documento de errores mediante la API de REST, los SDK de AWS, la AWS CLI o CloudFormation. Para obtener más información, consulte los siguientes temas:
+ [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) en la *Referencia de la API de Amazon Simple Storage Service*
+ [AWS::S3::Bucket WebsiteConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-websiteconfiguration.html) en la *guía del usuario de CloudFormation*
+ [put-bucket-website](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-website.html) en la *Referencia de comandos de la AWS CLI*

Cuando habilite el alojamiento de sitios webs estáticos para el bucket, escriba el nombre del documento de error (por ejemplo: )., **404.html**). Después de habilitar el alojamiento de sitios web estáticos para el bucket, cargue un archivo HTML con el nombre de este documento de error en el bucket.

**Para configurar un documento de error,**

1. Cree un documento de error, por ejemplo `404.html`.

1. Guarde el archivo de documento de error localmente.

   El nombre del documento de error distingue mayúsculas y minúsculas y debe coincidir exactamente con el nombre que escriba al habilitar el alojamiento de sitios web estáticos. Por ejemplo, si escribe `404.html` en el nombre del **Documento de error** en el cuadro de diálogo **Alojamiento de sitios web estáticos**, el nombre del archivo del documento de error también debe ser `404.html`.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, elija el nombre del bucket que desea utilizar para alojar un sitio web estático.

1. Habilite el alojamiento de sitios web estáticos para su bucket y escriba el nombre exacto del documento de error (por ejemplo: )., `404.html`). Para obtener más información, consulte [Habilitar el alojamiento de sitios web](EnableWebsiteHosting.md) y [Configurar un documento de error personalizado](#CustomErrorDocSupport).

   Después de habilitar el alojamiento estático del sitio web, continúe con el paso 6. 

1. Para cargar el documento de error en el bucket, realice una de las siguientes acciones:
   + Arrastre y suelte el archivo del documento de error a la lista de buckets de la consola.
   + Elija **Cargar** y siga las instrucciones para elegir y cargar el archivo de índice.

   Para obtener instrucciones paso a paso, consulte [Carga de objetos](upload-objects.md).

# Configurar permisos para el acceso a sitios web
<a name="WebsiteAccessPermissionsReqd"></a>

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](website-hosting-cloudfront-walkthrough.md) o [Utilizar una distribución de Amazon CloudFront para servir a un sitio web estático](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started-cloudfront-overview.html) 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. 

**Topics**
+ [Paso 1: Editar la configuración del S3 Block Public Access](#block-public-access-static-site)
+ [Paso 2: Agregar una política de bucket](#bucket-policy-static-site)
+ [Listas de control de acceso de objetos](#object-acl)

## Paso 1: Editar la configuración del S3 Block Public Access
<a name="block-public-access-static-site"></a>

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](access-control-block-public-access.md).

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](access-control-block-public-access.md) 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.

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

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

1. Elija **Permisos**.

1. En **Bloquear acceso público (configuración de bucket)**, elija **Editar**.

1. Desactive **Bloquear *todo el* acceso público** y elija **Guardar cambios**.  
![\[La consola de Amazon S3, que muestra la configuración del bucket de acceso público al bloque.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   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](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) 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
<a name="bucket-policy-static-site"></a>

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?](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/) 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.

1. Elija **Permisos**.

1. En **Política de bucket**, elija **Editar**.

1. Para conceder acceso público de lectura a su sitio web, copie la siguiente política de bucket y péguela en el **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/*"
               ]
           }
       ]
   }
   ```

1. 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.

1. 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?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)

   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
<a name="object-acl"></a>

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 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](about-object-ownership.md).

**importante**  
Si el bucket de uso general utiliza la configuración de propietario del bucket obligatorio de S3 Object Ownership, debe utilizar políticas para conceder acceso al bucket de uso general 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)](acl-overview.md).

```
1. <Grant>
2.   <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3.           xsi:type="Group">
4.     <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
5.   </Grantee>
6.   <Permission>READ</Permission>
7. </Grant>
```

# (Opcional) Registro del tráfico web
<a name="LoggingWebsiteTraffic"></a>

También puede habilitar el registro de acceso al servidor de Amazon S3 para un bucket configurado como un sitio web estático. El registro de acceso al servidor proporciona registros detallados para las solicitudes realizadas a su bucket. Para obtener más información, consulte [Registro de solicitudes con registro de acceso al servidor](ServerLogs.md). Si tiene previsto utilizar Amazon CloudFront para [acelerar su sitio web](website-hosting-cloudfront-walkthrough.md), también puede usar el registro de CloudFront. Para obtener más información, consulte [Configuración y uso de registros de acceso](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) en la *guía para desarrolladores de Amazon CloudFront*.

**Para habilitar el registro de acceso al servidor para su bucket de sitio web estático**

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

1. En la misma región en la que creó el bucket que está configurado como sitio web estático, cree un bucket de uso general para el registro, por ejemplo, `logs.example.com`.

1. Cree una carpeta para los archivos de registro de acceso al servidor (por ejemplo: )., `logs`).

1. (Opcional) Si desea utilizar CloudFront para mejorar el rendimiento del sitio web, cree una carpeta para los archivos de registro de CloudFront (por ejemplo: )., `cdn`).

   Para obtener más información, consulte [Aceleración de su sitio web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md).

1. En la lista de **Buckets**, elija el bucket.

1. Seleccione **Propiedades**.

1. En **Registro de acceso al servidor**, elija **Editar**.

1. Elija **Enable**.

1. En el **bucket de destino**, elija el destino del bucket y la carpeta para los registros de acceso al servidor:
   + Busque la carpeta y la ubicación del bucket:

     1. Elija **Examinar S3**.

     1. Elija el nombre del bucket y, a continuación, elija la carpeta de registros. 

     1. Elija **Elegir ruta**.
   + Introduzca la ruta del bucket de S3, por ejemplo, **s3://logs.example.com/logs/**.

1. Elija **Guardar cambios**.

   En su bucket de registro, ahora puede acceder a sus registros. Amazon S3 escribe los registros de acceso al sitio web en su bucket de registro cada dos horas.

# (Opcional) Configuración del redireccionamiento de páginas web
<a name="how-to-page-redirect"></a>

Si su bucket de Amazon S3 está configurado para el alojamiento de sitios web estático, puede configurar el redireccionamiento para el bucket o los objetos que contiene. Tiene las siguientes opciones para configurar el redireccionamiento.

**Topics**
+ [Redirigir solicitudes de un punto de enlace de sitio web de su bucket a otro bucket o dominio](#redirect-endpoint-host)
+ [Configurar reglas de redireccionamiento para utilizar redireccionamiento condicional avanzado](#advanced-conditional-redirects)
+ [Redirigir solicitudes de un objeto](#redirect-requests-object-metadata)

## Redirigir solicitudes de un punto de enlace de sitio web de su bucket a otro bucket o dominio
<a name="redirect-endpoint-host"></a>

Puede redirigir todas las solicitudes de un punto de enlace de sitio web de un bucket a otro bucket o dominio. Si redirige todas las solicitudes, las que se hayan realizado al punto de enlace del sitio web se redirigirán al bucket o dominio especificado. 

Por ejemplo, si su dominio raíz es `example.com`, y desea enviar solicitudes para `http://example.com` y para `http://www.example.com`, debe crear dos buckets denominados `example.com` y `www.example.com`. A continuación, mantenga el contenido del bucket `example.com` y configure el otro bucket `www.example.com` para redirigir todas las solicitudes al bucket `example.com`. Para obtener más información, consulte [Configuración de un sitio web estático mediante un nombre de dominio personalizado](https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html).

**Para redirigir solicitudes para un punto de enlace de sitio web del bucket**

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

1. En **Buckets**, elija el nombre del bucket del que desea que procedan las solicitudes redirigidas (por ejemplo, `www.example.com`).

1. Seleccione **Propiedades**.

1. Elija **Alojamiento de sitios web estáticos**, elija **Editar**.

1. Elija **Redirigir solicitudes de un objeto**. 

1. En el cuadro **Nombre de host** , escriba el punto de enlace de sitio web para el bucket o el dominio personalizado.

   Por ejemplo, si redirigiera las solicitudes a una dirección de dominio raíz, escribiría **example.com**.

1. En **Protocolo**, elija el protocolo para las solicitudes redirigidas (**ninguno**, **http** o **https**).

   Si no especifica un protocolo, la opción predeterminada es **ninguno**.

1. Elija **Guardar cambios**.

## Configurar reglas de redireccionamiento para utilizar redireccionamiento condicional avanzado
<a name="advanced-conditional-redirects"></a>

Utilizando reglas avanzadas de redireccionamiento, puede dirigir condicionalmente las solicitudes según nombres de clave de objeto, prefijos en la solicitud o códigos de respuesta específicos. Por ejemplo, supongamos que elimina o cambia el nombre de un objeto en el bucket. Puede añadir una regla de enrutamiento que redireccione la solicitud a otro objeto. Si desea que una carpeta no esté disponible, puede añadir una regla de enrutamiento para redirigir la solicitud a otra página web. Además, puede añadir una regla de enrutamiento para gestionar condiciones de error dirigiendo las solicitudes que devuelven un error a otro dominio cuando se procesa el error.

Cuando habilite el alojamiento de sitios web estáticos para el bucket, puede especificar reglas de redireccionamiento avanzadas. Amazon S3 tiene una limitación de 50 reglas de enrutamiento por configuración de sitio web. Si necesita más de 50 reglas de enrutamiento, puede utilizar la redirección de objetos. Para obtener más información, consulte [Uso de la consola de S3](#page-redirect-using-console).

Para obtener más información acerca de la configuración de reglas de enrutamiento mediante la API de REST, consulte [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) en la *referencia de la API de Amazon Simple Storage Service*.

**importante**  
Para crear reglas de redireccionamiento en la nueva consola de Amazon S3, debe utilizar JSON. Para ver ejemplos de JSON, consulte [Ejemplos de reglas de redireccionamiento](#redirect-rule-examples).

**Para configurar reglas de redirección para un sitio web estático**

Para agregar reglas de redirección para un bucket que ya tiene habilitado el alojamiento de sitios web estático, siga estos pasos.

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

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, elija el nombre de un bucket que haya configurado como sitio web estático.

1. Seleccione **Propiedades**.

1. Elija **Alojamiento de sitios web estáticos** y luego **Editar**.

1. En la casilla **Reglas de redireccionamiento**, introduzca las reglas de redireccionamiento. 

   En la consola de S3, describa las reglas mediante JSON. Para ver ejemplos de JSON, consulte [Ejemplos de reglas de redireccionamiento](#redirect-rule-examples). Amazon S3 tiene una limitación de 50 reglas de enrutamiento por configuración de sitio web.

1. Elija **Guardar cambios**.

### Elementos de la regla enrutamiento
<a name="configure-bucket-as-website-routing-rule-syntax"></a>

Lo que sigue es la sintaxis general para definir las reglas de redireccionamiento en una configuración de sitio web en JSON y XML. Para configurar reglas de redireccionamiento en la nueva consola de S3, debe utilizar JSON. Para ver ejemplos de JSON, consulte [Ejemplos de reglas de redireccionamiento](#redirect-rule-examples).

------
#### [ JSON ]

```
[
    {
      "Condition": {
        "HttpErrorCodeReturnedEquals": "string",
        "KeyPrefixEquals": "string"
      },
      "Redirect": {
        "HostName": "string",
        "HttpRedirectCode": "string",
        "Protocol": "http"|"https",
        "ReplaceKeyPrefixWith": "string",
        "ReplaceKeyWith": "string"
      }
    }
  ]
 
Note: Redirect must each have at least one child element. You can have either ReplaceKeyPrefix with or ReplaceKeyWith but not both.
```

------
#### [ XML ]

```
<RoutingRules> =
    <RoutingRules>
         <RoutingRule>...</RoutingRule>
         [<RoutingRule>...</RoutingRule>   
         ...]
    </RoutingRules>

<RoutingRule> =
   <RoutingRule>
      [ <Condition>...</Condition> ]
      <Redirect>...</Redirect>
   </RoutingRule>

<Condition> =
   <Condition> 
      [ <KeyPrefixEquals>...</KeyPrefixEquals> ]
      [ <HttpErrorCodeReturnedEquals>...</HttpErrorCodeReturnedEquals> ]
   </Condition>
    Note: <Condition> must have at least one child element.

<Redirect> =
   <Redirect> 
      [ <HostName>...</HostName> ]
      [ <Protocol>...</Protocol> ]
      [ <ReplaceKeyPrefixWith>...</ReplaceKeyPrefixWith>  ]
      [ <ReplaceKeyWith>...</ReplaceKeyWith> ]
      [ <HttpRedirectCode>...</HttpRedirectCode> ]
   </Redirect>

Note: <Redirect> must have at least one child element. You can have either ReplaceKeyPrefix with or ReplaceKeyWith but not both.
```

------

En la siguiente tabla se describen los elementos en la regla de enrutamiento.


|  Nombre  |  Descripción  | 
| --- | --- | 
| RoutingRules |  Contenedor de una colección de elementos RoutingRule.  | 
| RoutingRule |  Una regla que identifica una condición y el redireccionamiento que se aplica cuando se cumple la condición.  Condición: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/how-to-page-redirect.html)  | 
| Condition |  Contenedor para describir una condición que debe cumplirse para la aplicación de un redireccionamiento específico. Si la regla de enrutamiento no incluye una condición, esta regla se aplicará a todas las solicitudes.  | 
| KeyPrefixEquals |  El prefijo de un nombre de clave de objeto desde el que se redireccionan las solicitudes.  El `KeyPrefixEquals` será necesario si no se especifica `HttpErrorCodeReturnedEquals`. Si se especifican los elementos `KeyPrefixEquals` y `HttpErrorCodeReturnedEquals`, ambos deben ser verdaderos para que se cumpla la condición.  | 
| HttpErrorCodeReturnedEquals |  El código de error HTTP que debe coincidir para que se aplique el redireccionamiento. Si se produce un error y el código del error coincide con este valor, se aplicará el redireccionamiento especificado. El `HttpErrorCodeReturnedEquals` será necesario si no se especifica `KeyPrefixEquals`. Si se especifican los elementos `KeyPrefixEquals` y `HttpErrorCodeReturnedEquals`, ambos deben ser verdaderos para que se cumpla la condición.  | 
| Redirect |  Un elemento del contenedor que provee instrucciones para redireccionar la solicitud. Puede redireccionar solicitudes a otro host o a otra página, o puede especificar el uso de otro protocolo. Cada `RoutingRule` debe tener un elemento `Redirect`. El elemento `Redirect` debe tener uno de los siguientes elementos del mismo nivel como mínimo: `Protocol`, `HostName`, `ReplaceKeyPrefixWith`, `ReplaceKeyWith` o `HttpRedirectCode`.  | 
| Protocol |  El protocolo, `http` o `https`, utilizado en el encabezado `Location` que se devuelve en la respuesta.  No se requiere `Protocol`, si se provee uno de sus elementos del mismo nivel.  | 
| HostName |  El nombre de host utilizado en el encabezado `Location` que se devuelve en la respuesta. No se requiere `HostName`, si se provee uno de sus elementos del mismo nivel.  | 
| ReplaceKeyPrefixWith |  El prefijo del nombre de clave de objeto que sustituye al valor de `KeyPrefixEquals` en la solicitud de redireccionamiento.  No se requiere `ReplaceKeyPrefixWith`, si se provee uno de sus elementos del mismo nivel. Solo se puede proveer si no se proporciona `ReplaceKeyWith`.  | 
| ReplaceKeyWith |  La clave del objeto que utilizar en el encabezado `Location` que se devuelve en la respuesta.  No se requiere `ReplaceKeyWith`, si se provee uno de sus elementos del mismo nivel. Solo se puede proveer si no se proporciona `ReplaceKeyPrefixWith`.  | 
| HttpRedirectCode |  El código de redireccionamiento de HTTP utilizado en el encabezado `Location` que se devuelve en la respuesta. No se requiere `HttpRedirectCode`, si se provee uno de sus elementos del mismo nivel.  | 

#### Ejemplos de reglas de redireccionamiento
<a name="redirect-rule-examples"></a>

En los siguientes ejemplos se explican las tareas de redireccionamiento más comunes:

**importante**  
Para crear reglas de redireccionamiento en la nueva consola de Amazon S3, debe utilizar JSON.

**Example 1: redireccionamiento luego de cambiar el nombre de un prefijo de clave.**  
Supongamos que el bucket contiene los siguientes objetos:  
+ index.html
+ docs/article1.html
+ docs/article2.html
Ha decidido cambiar el nombre de la carpeta `docs/` a `documents/`. Después de hacer este cambio, deberá redireccionar las solicitudes para el prefijo `docs/` a `documents/`. Por ejemplo, la solicitud para `docs/article1.html` se redireccionará a `documents/article1.html`.  
En este caso, debe añadir la siguiente regla de enrutamiento a la configuración del sitio web.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "docs/"
        },
        "Redirect": {
            "ReplaceKeyPrefixWith": "documents/"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>docs/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

**Example 2: redireccionamiento de solicitudes de una carpeta eliminada a una página.**  
Supongamos que elimina la carpeta `images/` (es decir, que elimina todos los objetos con el prefijo de clave `images/`). Puede añadir una regla de enrutamiento que redireccione las solicitudes de cualquier objeto con el prefijo de clave `images/` a una página denominada `folderdeleted.html`.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "images/"
        },
        "Redirect": {
            "ReplaceKeyWith": "folderdeleted.html"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
       <KeyPrefixEquals>images/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyWith>folderdeleted.html</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

**Example 3: redireccionamiento a otro dominio con una ruta específica**  
Suponga que desea redirigir las solicitudes de una ruta específica a otro dominio. Por ejemplo, desea redirigir las solicitudes para `/redirect/me` a `https://example.com/new/path`.  
Cuando se utilizan `HostName` y `ReplaceKeyWith` juntos, Amazon S3 crea la URL de redireccionamiento concatenando el nombre de host y la clave de reemplazo con una barra inclinada entre ellos. Por lo tanto, no debe incluir una barra diagonal inicial en el valor `ReplaceKeyWith`. Amazon S3 agrega automáticamente la barra inclinada entre el nombre de host y la clave de reemplazo.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "redirect/me"
        },
        "Redirect": {
            "HostName": "example.com",
            "ReplaceKeyWith": "new/path"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>redirect/me</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <HostName>example.com</HostName>
      <ReplaceKeyWith>new/path</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```
Esta configuración redirige una solicitud para `https://yourbucket.s3-website-region.amazonaws.com/redirect/me` a `https://example.com/new/path`. Tenga en cuenta que `ReplaceKeyWith` está configurado como `new/path` sin una barra diagonal inicial.

**Example 4: redireccionamiento para un error HTTP**  
Supongamos que cuando no se encuentra un objeto solicitado, desea redireccionar las solicitudes a una instancia Amazon Elastic Compute Cloud (Amazon EC2). Debe añadir una regla de redireccionamiento para que, cuando se devuelva el código de estado 404 (Not Found) [404 (No encontrado)], se redireccione al visitante del sitio a una instancia Amazon EC2 que se encarga de la solicitud.   
En el siguiente ejemplo, también se inserta el prefijo de clave de objeto `report-404/` en el redireccionamiento. Por ejemplo, si solicita la página `ExamplePage.html` y se traduce en un error HTTP 404, la solicitud se redirecciona a la página `report-404/ExamplePage.html` en la instancia Amazon EC2 especificada. Si no hay una regla de enrutamiento y se produce un error HTTP 404, se devolverá el documento de error especificado en la configuración.  

```
[
    {
        "Condition": {
            "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
            "HostName": "ec2-11-22-333-44.compute-1.amazonaws.com",
            "ReplaceKeyPrefixWith": "report-404/"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals >
    </Condition>
    <Redirect>
      <HostName>ec2-11-22-333-44.compute-1.amazonaws.com</HostName>
      <ReplaceKeyPrefixWith>report-404/</ReplaceKeyPrefixWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

## Redirigir solicitudes de un objeto
<a name="redirect-requests-object-metadata"></a>

Puede redirigir las solicitudes de un objeto a otro objeto o URL estableciendo la ubicación de redirección del sitio web en los metadatos del objeto. Para configurar el redireccionamiento, debe añadir la propiedad `x-amz-website-redirect-location` a los metadatos del objeto. En la consola de Amazon S3, puede establecer la **ubicación del redireccionamiento de un sitio web** en los metadatos del objeto. Si utiliza la [API de Amazon S3](#page-redirect-using-rest-api), se establece `x-amz-website-redirect-location`. Luego, el sitio web interpreta el objeto como un redireccionamiento 301. 

Para redireccionar una solicitud a otro objeto, debe establecer la ubicación de redireccionamiento para la clave del objeto de destino. Para redireccionar una solicitud a un URL externo, debe establecer la ubicación de redireccionamiento para el URL que desee. Para obtener más información acerca de los metadatos del objeto, consulte [Metadatos de objetos definidos por el sistema](UsingMetadata.md#SysMetadata).

Cuando establece un redireccionamiento de página, puede conservar o eliminar el contenido del objeto de destino. Por ejemplo, si tiene un objeto `page1.html` en el bucket, puede redirigir cualquier solicitud de esta página a otro objeto, `page2.html`. Dispone de dos opciones para hacerlo:
+ Mantenga el contenido del objeto `page1.html` y redirija las solicitudes de página.
+ Elimine el contenido de `page1.html` y cargue un objeto de cero bytes denominado `page1.html` para reemplazar el objeto existente y redirigir las solicitudes de página. 

### Uso de la consola de S3
<a name="page-redirect-using-console"></a>

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

1. En la lista **Buckets**, elija el nombre del bucket que ha configurado como sitio web estático (por ejemplo: `example.com`).

1. En **Objetos**, seleccione su objeto.

1. Elija **Acciones**, y elija **Editar metadatos**.

1. Elija **Metadatos**.

1. Elija **Agregar metadatos**.

1. En **Tipo**, elija **Definido por el sistema**.

1. En **Clave**, elija **x-amz-website-redirect-location**.

1. En **Valor**, introduzca el nombre de clave del objeto que desee redirigir, por ejemplo, `/page2.html`.

   Para otro objeto del mismo bucket, se requiere el prefijo `/` del valor. También puede establecer el valor para un URL externo, por ejemplo, `http://www.example.com`.

1. Elija **Editar metadatos**.

### Uso de la API de REST
<a name="page-redirect-using-rest-api"></a>

Las siguientes acciones de la API de Amazon S3 admiten el encabezado `x-amz-website-redirect-location` en la solicitud. Amazon S3 almacena el valor del encabezado en los metadatos del objeto como `x-amz-website-redirect-location`. 
+ [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [Initiate Multipart Upload](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)

Un bucket configurado para un alojamiento de sitio web contiene el punto de enlace de sitio web y el punto de enlace REST. Una solicitud para una página que está configurada como un redireccionamiento 301 tiene los siguientes resultados posibles, en función del punto de enlace de la solicitud:
+ **Punto de enlace de sitio web en región específica: **Amazon S3 redirecciona la solicitud de la página según el valor de la propiedad `x-amz-website-redirect-location`. 
+ **Punto de enlace REST: **Amazon S3; no redirecciona la solicitud de la página. Devuelve el objeto solicitado.

Para obtener más información acerca de los puntos de enlace, consulte [Diferencias clave entre el punto de enlace de un sitio web y un punto de enlace de la API de REST](WebsiteEndpoints.md#WebsiteRestEndpointDiff).

Cuando establece un redireccionamiento de página, puede conservar o eliminar el contenido del objeto. Por ejemplo, supongamos que tiene un objeto `page1.html` en el bucket.
+ Para conservar el contenido de `page1.html` y redirigir solo las solicitudes de página, puede enviar una solicitud [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html) para crear un nuevo objeto `page1.html` que utilice el objeto existente `page1.html` como origen. Debe establecer el encabezado `x-amz-website-redirect-location` en su solicitud. Cuando se completa la solicitud, la página original tendrá su contenido sin cambios, pero Amazon S3 redireccionará cualquier solicitud a esa página a la ubicación de redireccionamiento que especificó.
+ Para eliminar el contenido del objeto `page1.html` y redireccionar solicitudes a la página, puede enviar una solicitud PUT Object para cargar un objeto de cero bytes con la misma clave de objeto: `page1.html`. En la solicitud PUT, debe establecer `x-amz-website-redirect-location` para `page1.html` para el nuevo objeto. Cuando se completa la solicitud, `page1.html` no tendrá contenido y las solicitudes serán redireccionadas a la ubicación especificada por `x-amz-website-redirect-location`.

Cuando recupera el objeto con la acción [GET Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html), junto con los metadatos de otro objeto, Amazon S3 devuelve el encabezado `x-amz-website-redirect-location` en la respuesta.

# Uso compartido de recursos entre orígenes (CORS)
<a name="cors"></a>

El uso compartido de recursos entre orígenes (CORS) define una manera para que las aplicaciones web de los clientes cargadas en un dominio interactúen con los recursos de un dominio diferente. Con el soporte del CORS, puede desarrollar aplicaciones web del lado del cliente completas con Amazon S3 y permitir un acceso entre orígenes a sus recursos de Amazon S3 de manera selectiva. 

En esta sección, se proporciona información general acerca del CORS. En los subtemas se describe cómo puede habilitar el CORS con la consola de Amazon S3 o mediante programación utilizando la API de REST de Amazon S3 y los SDK de AWS. 

## Compartir recursos entre orígenes: escenarios de casos de uso
<a name="example-scenarios-cors"></a>

A continuación, se muestran ejemplos de casos de uso de CORS:

**Escenario 1**  
Suponga que aloja un sitio web en un bucket de Amazon S3 llamado `website` como se describe en [Alojamiento de un sitio web estático mediante Amazon S3](WebsiteHosting.md). Sus usuarios cargan el punto de conexión de sitio web.

```
http://website.s3-website.us-east-1.amazonaws.com
```

Ahora desea usar el código JavaScript en la páginas web que se almacenan en este bucket para poder realizar solicitudes GET y PUT autenticadas con el mismo bucket mediante el punto de conexión de la API de Amazon S3 para el bucket, `website.s3.us-east-1.amazonaws.com`. Un navegador, por lo general, bloquearía el código JavaScript y no permitiría realizar esas solicitudes, pero con el CORS puede configurar el bucket para que se habiliten de manera explícita las solicitudes entre orígenes de `website.s3-website.us-east-1.amazonaws.com`.

**Escenario 2**  
Suponga que desea alojar una fuente web en su bucket de S3. Nuevamente, los navegadores requieren una comprobación del CORS (también conocida como comprobación preliminar) para la carga de fuentes web, por lo que configuraría el bucket que aloja la fuente web para que permita que cualquier origen realice estas solicitudes

## ¿Cómo evalúa Amazon S3 la configuración de CORS en un bucket?
<a name="cors-eval-criteria"></a>

Cuando Amazon S3 recibe una solicitud de comprobación preliminar de un navegador, evalúa la configuración de CORS para el bucket y usa la primera regla `CORSRule` que coincide con la solicitud del navegador entrante para habilitar una solicitud entre orígenes. Para que una regla coincida, se deben cumplir las siguientes condiciones:
+ El encabezado `Origin` de una solicitud de CORS a su bucket debe corresponderse con los orígenes del elemento `AllowedOrigins` de su configuración de CORS.
+ Los métodos HTTP que se especifiquen en el `Access-Control-Request-Method` en una solicitud de CORS a su bucket deben corresponderse con el método o métodos enumerados en el elemento `AllowedMethods` de su configuración de CORS. 
+ Los encabezados que aparecen en el encabezado `Access-Control-Request-Headers` de una solicitud anterior al tránsito deben corresponderse con los encabezados del elemento `AllowedHeaders` de la configuración de CORS. 

**nota**  
Las ACL y políticas siguen aplicándose cuando habilita CORS en su bucket.

## Cómo el punto de acceso de Object Lambda da soporte a CORS
<a name="cors-olap-cors"></a>

Cuando S3 Object Lambda recibe una solicitud de un navegador o la solicitud incluye un encabezado `Origin`, S3 Object Lambda siempre añade un campo de encabezado `"AllowedOrigins":"*"`.

Para obtener más información acerca del uso de CORS, consulte los temas siguientes.

**Topics**
+ [Compartir recursos entre orígenes: escenarios de casos de uso](#example-scenarios-cors)
+ [¿Cómo evalúa Amazon S3 la configuración de CORS en un bucket?](#cors-eval-criteria)
+ [Cómo el punto de acceso de Object Lambda da soporte a CORS](#cors-olap-cors)
+ [Elementos de una configuración de CORS](ManageCorsUsing.md)
+ [Configuración del uso compartido de recursos entre orígenes (CORS)](enabling-cors-examples.md)
+ [Prueba de CORS](testing-cors.md)
+ [Solución de problemas de CORS](cors-troubleshooting.md)

# Elementos de una configuración de CORS
<a name="ManageCorsUsing"></a>

Para configurar su bucket para permitir solicitudes entre orígenes, debe crear una configuración CORS. La configuración de CORS es un documento con elementos que identifican los orígenes desde los que se permitirá el acceso al bucket, las operaciones (métodos HTTP) que permitirá para cada origen y otro tipo de información específica de cada operación. Puede añadir hasta 100 reglas a la configuración. Puede agregar la configuración de CORS como recurso secundario `cors` al bucket.

Si está configurando CORS en la consola S3, debe utilizar JSON para crear una configuración CORS. La nueva consola de S3 solo admite configuraciones de CORS JSON. 

Para obtener más información acerca de la configuración de CORS y los elementos que contiene, consulte los temas siguientes. Para obtener instrucciones sobre cómo agregar una configuración CORS, consulte [Configuración del uso compartido de recursos entre orígenes (CORS)](enabling-cors-examples.md).

**importante**  
En la consola de S3, la configuración de CORS debe ser JSON. 

**Topics**
+ [`AllowedMethods`Elemento](#cors-allowed-methods)
+ [`AllowedOrigins`Elemento](#cors-allowed-origin)
+ [`AllowedHeaders`Elemento](#cors-allowed-headers)
+ [`ExposeHeaders`Elemento](#cors-expose-headers)
+ [`MaxAgeSeconds`Elemento](#cors-max-age)
+ [Ejemplos de configuraciones de CORS](#cors-example-1)

## `AllowedMethods`Elemento
<a name="cors-allowed-methods"></a>

En la configuración CORS, puede especificar los siguientes valores para el elemento `AllowedMethods`:
+ GET
+ PUT
+ POST
+ ELIMINAR
+ HEAD

## `AllowedOrigins`Elemento
<a name="cors-allowed-origin"></a>

En el elemento `AllowedOrigins`, se especifican los orígenes desde los cuales desea permitir solicitudes entre dominios, por ejemplo,` http://www.example.com`. La cadena de origen solo puede contener un carácter comodín `*`, como `http://*.example.com`. Como alternativa, se puede especificar el carácter `*` como el origen para habilitar el envío de solicitudes entre orígenes de todos los orígenes. Se puede también especificar el método `https` para solo habilitar orígenes seguros.

## `AllowedHeaders`Elemento
<a name="cors-allowed-headers"></a>

El elemento `AllowedHeaders` especifica qué encabezados se permiten en una solicitud de comprobación preliminar a través del encabezado `Access-Control-Request-Headers`. Cada nombre de encabezado en el encabezado `Access-Control-Request-Headers` debe coincidir con una entrada correspondiente en el elemento. Amazon S3 solo envía los encabezados permitidos en una respuesta que se solicitaron. Para ver una lista de muestra de los encabezados que se pueden usar en las solicitudes que se envían a Amazon S3, consulte el tema sobre [encabezados de solicitud comunes](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html) en la *guía de referencia de API de Amazon Simple Storage Service*.

Cada cadena AllowedHeaders de la configuración puede contener como máximo un carácter comodín \$1. Por ejemplo, el elemento `<AllowedHeader>x-amz-*</AllowedHeader>` habilita los encabezados exclusivos de Amazon.

## `ExposeHeaders`Elemento
<a name="cors-expose-headers"></a>

Cada elemento `ExposeHeader` identifica un encabezado en la respuesta al que desea que los clientes puedan obtener acceso desde sus aplicaciones (por ejemplo: desde un objeto `XMLHttpRequest` con código JavaScript). Para ver una lista de encabezados de respuesta comunes de Amazon S3, vaya al tema sobre [encabezados de respuesta comunes](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html) en la guía de *referencia de API de Amazon Simple Storage Service* .

## `MaxAgeSeconds`Elemento
<a name="cors-max-age"></a>

El elemento `MaxAgeSeconds` especifica el tiempo en segundos que el navegador puede almacenar en caché la respuesta de una solicitud de comprobación preliminar según la identifica el recurso, el método HTTP y el origen.

## Ejemplos de configuraciones de CORS
<a name="cors-example-1"></a>

En lugar de obtener acceso a un sitio web con el punto de conexión del sitio web de Amazon S3, puede usar su propio dominio, como `example1.com`, para servir su contenido. Para obtener información acerca de su propio dominio, consulte [Tutorial: Configuración de un sitio web estático mediante un dominio personalizado registrado con Route 53](website-hosting-custom-domain-walkthrough.md). 

En el siguiente ejemplo, la configuración de CORS tiene tres reglas, que se especifican como elementos `CORSRule`:
+ La primera regla permite solicitudes PUT, POST y DELETE entre orígenes del origen `http://www.example1.com`. La regla también permite todos los encabezados en una solicitud OPTIONS de comprobación preliminar a través del encabezado `Access-Control-Request-Headers`. Como respuesta a solicitudes OPTIONS de comprobación preliminar, Amazon S3 devuelve los encabezados solicitados.
+ La segunda regla permite las mismas solicitudes entre orígenes que la primera, pero se aplica a otro origen, `http://www.example2.com`. 
+ La tercera regla permite solicitudes GET entre orígenes de todos los orígenes. El carácter comodín `*` hace referencia a todos los orígenes. 

------
#### [ JSON ]

```
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example1.com"
        ],
        "ExposeHeaders": []
    },
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example2.com"
        ],
        "ExposeHeaders": []
    },
    {
        "AllowedHeaders": [],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]
```

------
#### [ XML ]

```
<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>http://www.example1.com</AllowedOrigin>

   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>

   <AllowedHeader>*</AllowedHeader>
 </CORSRule>
 <CORSRule>
   <AllowedOrigin>http://www.example2.com</AllowedOrigin>

   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>

   <AllowedHeader>*</AllowedHeader>
 </CORSRule>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>
```

------

La configuración CORS también permite parámetros de configuración opcionales, como se muestra en la siguiente configuración CORS. En este ejemplo, la configuración CORS permite las solicitudes PUT, POST y DELETE entre orígenes desde el origen `http://www.example.com`.

------
#### [ JSON ]

```
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example.com"
        ],
        "ExposeHeaders": [
            "x-amz-server-side-encryption",
            "x-amz-request-id",
            "x-amz-id-2"
        ],
        "MaxAgeSeconds": 3000
    }
]
```

------
#### [ XML ]

```
<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>http://www.example.com</AllowedOrigin>
   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
  <MaxAgeSeconds>3000</MaxAgeSeconds>
  <ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
  <ExposeHeader>x-amz-request-id</ExposeHeader>
  <ExposeHeader>x-amz-id-2</ExposeHeader>
 </CORSRule>
</CORSConfiguration>
```

------

El elemento `CORSRule` en la configuración anterior incluye los siguientes elementos opcionales:
+ `MaxAgeSeconds`: especifica la cantidad de tiempo en segundos (en este ejemplo, 3000) que el navegador almacena en caché una respuesta de Amazon S3 a una solicitud OPTIONS de comprobación preliminar para el recurso especificado. Mediante el almacenamiento en caché de la respuesta, el navegador no tiene que enviar solicitudes de comprobación preliminar a Amazon S3 si se repetirá la solicitud original. 
+ `ExposeHeaders`: identifica los encabezados de respuesta (en este ejemplo, `x-amz-server-side-encryption`, `x-amz-request-id` y `x-amz-id-2`) a los que los clientes pueden obtener acceso desde sus aplicaciones (por ejemplo: desde un objeto `XMLHttpRequest` con código JavaScript).

# Configuración del uso compartido de recursos entre orígenes (CORS)
<a name="enabling-cors-examples"></a>

El uso compartido de recursos entre orígenes (CORS) define una manera para que las aplicaciones web de los clientes cargadas en un dominio interactúen con los recursos de un dominio diferente. Con el soporte del CORS, puede desarrollar aplicaciones web del lado del cliente completas con Amazon S3 y permitir un acceso entre orígenes a sus recursos de Amazon S3 de manera selectiva. 

En esta sección, se muestra cómo habilitar el CORS con la consola de Amazon S3, la API de REST de Amazon S3 y los SDK de AWS. Para configurar el bucket con la finalidad de permitir solicitudes entre orígenes, agregue una configuración CORS al bucket. Una configuración CORS es un documento que define reglas que identifican los orígenes desde los que permitirá el acceso a su bucket, las operaciones (métodos HTTP) permitidas para cada origen y otro tipo de información específica a cada operación. En la consola de S3, la configuración de CORS debe ser un documento JSON.

Para obtener ejemplos de configuraciones CORS en JSON y XML, consulte [Elementos de una configuración de CORS](ManageCorsUsing.md).

## Uso de la consola de S3
<a name="add-cors-configuration"></a>

En esta sección también se explica cómo utilizar la consola de Amazon S3 para agregar una configuración de uso compartido de recursos entre orígenes (CORS) a un bucket de S3. 

Cuando activa CORS en el bucket, la lista de control de acceso (ACL) y otras políticas de permisos para la obtención de accesos seguirán aplicándose.

**importante**  
En la consola de S3, la configuración de CORS debe ser JSON. Para obtener ejemplos de configuraciones CORS en JSON y XML, consulte [Elementos de una configuración de CORS](ManageCorsUsing.md).

**Para agregar una configuración CORS a un bucket de S3**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, seleccione el nombre del bucket para el que desea crear una política de bucket.

1. Elija **Permissions**.

1. En la sección **Cross-origin resource sharing (CORS) [Compartir recursos entre orígenes (CORS)]**, elija **Edit (Editar)**.

1. En la casilla de texto **CORS configuration editor (Editor de configuración de CORS)**, escriba o copie y pegue una nueva configuración CORS o edite una que ya exista.

   La configuración CORS es un archivo JSON. El texto que escriba en el editor debe tener un formato JSON válido. Para obtener más información, consulte [Elementos de una configuración de CORS](ManageCorsUsing.md).

1. Elija **Save changes**.
**nota**  
Amazon S3 muestra el nombre de recurso de Amazon (ARN) del bucket junto al título **CORS configuration editor (Editor de configuración de CORS)**. Para obtener más información sobre los nombres ARN, consulte [Nombres de recursos de Amazon (ARN) y espacios de nombres de servicios de AWS](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) en la *Referencia general de Amazon Web Services*.

## Uso de los AWS SDK
<a name="ManageCorsUsingSDK"></a>

Puede usar el SDK de AWS para administrar el uso compartido de recursos entre orígenes (CORS) de un bucket. Para obtener más información acerca de CORS, consulte [Uso compartido de recursos entre orígenes (CORS)](cors.md).

 Los siguientes ejemplos:
+ Crea una configuración CORS y establece la configuración en un bucket
+ Recupera la configuración y la modifica añadiendo una regla
+ Añade la configuración modificada al bucket
+ Elimina configuración

------
#### [ Java ]

**Example**  

**Example**  
 Para obtener instrucciones sobre cómo crear y probar una muestra funcional, consulte [Introducción](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html) en la Guía del desarrollador de AWS SDK para Java.  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.BucketCrossOriginConfiguration;
import com.amazonaws.services.s3.model.CORSRule;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class CORS {

    public static void main(String[] args) throws IOException {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";

        // Create two CORS rules.
        List<CORSRule.AllowedMethods> rule1AM = new ArrayList<CORSRule.AllowedMethods>();
        rule1AM.add(CORSRule.AllowedMethods.PUT);
        rule1AM.add(CORSRule.AllowedMethods.POST);
        rule1AM.add(CORSRule.AllowedMethods.DELETE);
        CORSRule rule1 = new CORSRule().withId("CORSRule1").withAllowedMethods(rule1AM)
                .withAllowedOrigins(Arrays.asList("http://*.example.com"));

        List<CORSRule.AllowedMethods> rule2AM = new ArrayList<CORSRule.AllowedMethods>();
        rule2AM.add(CORSRule.AllowedMethods.GET);
        CORSRule rule2 = new CORSRule().withId("CORSRule2").withAllowedMethods(rule2AM)
                .withAllowedOrigins(Arrays.asList("*")).withMaxAgeSeconds(3000)
                .withExposedHeaders(Arrays.asList("x-amz-server-side-encryption"));

        List<CORSRule> rules = new ArrayList<CORSRule>();
        rules.add(rule1);
        rules.add(rule2);

        // Add the rules to a new CORS configuration.
        BucketCrossOriginConfiguration configuration = new BucketCrossOriginConfiguration();
        configuration.setRules(rules);

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(clientRegion)
                    .build();

            // Add the configuration to the bucket.
            s3Client.setBucketCrossOriginConfiguration(bucketName, configuration);

            // Retrieve and display the configuration.
            configuration = s3Client.getBucketCrossOriginConfiguration(bucketName);
            printCORSConfiguration(configuration);

            // Add another new rule.
            List<CORSRule.AllowedMethods> rule3AM = new ArrayList<CORSRule.AllowedMethods>();
            rule3AM.add(CORSRule.AllowedMethods.HEAD);
            CORSRule rule3 = new CORSRule().withId("CORSRule3").withAllowedMethods(rule3AM)
                    .withAllowedOrigins(Arrays.asList("http://www.example.com"));

            rules = configuration.getRules();
            rules.add(rule3);
            configuration.setRules(rules);
            s3Client.setBucketCrossOriginConfiguration(bucketName, configuration);

            // Verify that the new rule was added by checking the number of rules in the
            // configuration.
            configuration = s3Client.getBucketCrossOriginConfiguration(bucketName);
            System.out.println("Expected # of rules = 3, found " + configuration.getRules().size());

            // Delete the configuration.
            s3Client.deleteBucketCrossOriginConfiguration(bucketName);
            System.out.println("Removed CORS configuration.");

            // Retrieve and display the configuration to verify that it was
            // successfully deleted.
            configuration = s3Client.getBucketCrossOriginConfiguration(bucketName);
            printCORSConfiguration(configuration);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }

    private static void printCORSConfiguration(BucketCrossOriginConfiguration configuration) {
        if (configuration == null) {
            System.out.println("Configuration is null.");
        } else {
            System.out.println("Configuration has " + configuration.getRules().size() + " rules\n");

            for (CORSRule rule : configuration.getRules()) {
                System.out.println("Rule ID: " + rule.getId());
                System.out.println("MaxAgeSeconds: " + rule.getMaxAgeSeconds());
                System.out.println("AllowedMethod: " + rule.getAllowedMethods());
                System.out.println("AllowedOrigins: " + rule.getAllowedOrigins());
                System.out.println("AllowedHeaders: " + rule.getAllowedHeaders());
                System.out.println("ExposeHeader: " + rule.getExposedHeaders());
                System.out.println();
            }
        }
    }
}
```

------
#### [ .NET ]

**Example**  
Para obtener información acerca de cómo configurar y ejecutar ejemplos de código, consulte [Introducción al SDK de AWS para .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) en la *Guía para desarrolladores del SDK de AWS para .NET*.   

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class CORSTest
    {
        private const string bucketName = "*** bucket name ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; 
        private static IAmazonS3 s3Client;

        public static void Main()
        {
            s3Client = new AmazonS3Client(bucketRegion);
            CORSConfigTestAsync().Wait();
        }
        private static async Task CORSConfigTestAsync()
        {
            try
            {
                // Create a new configuration request and add two rules    
                CORSConfiguration configuration = new CORSConfiguration
                {
                    Rules = new System.Collections.Generic.List<CORSRule>
                        {
                          new CORSRule
                          {
                            Id = "CORSRule1",
                            AllowedMethods = new List<string> {"PUT", "POST", "DELETE"},
                            AllowedOrigins = new List<string> {"http://*.example.com"}
                          },
                          new CORSRule
                          {
                            Id = "CORSRule2",
                            AllowedMethods = new List<string> {"GET"},
                            AllowedOrigins = new List<string> {"*"},
                            MaxAgeSeconds = 3000,
                            ExposeHeaders = new List<string> {"x-amz-server-side-encryption"}
                          }
                        }
                };

                // Add the configuration to the bucket. 
                await PutCORSConfigurationAsync(configuration);

                // Retrieve an existing configuration. 
                configuration = await RetrieveCORSConfigurationAsync();

                // Add a new rule.
                configuration.Rules.Add(new CORSRule
                {
                    Id = "CORSRule3",
                    AllowedMethods = new List<string> { "HEAD" },
                    AllowedOrigins = new List<string> { "http://www.example.com" }
                });

                // Add the configuration to the bucket. 
                await PutCORSConfigurationAsync(configuration);

                // Verify that there are now three rules.
                configuration = await RetrieveCORSConfigurationAsync();
                Console.WriteLine();
                Console.WriteLine("Expected # of rulest=3; found:{0}", configuration.Rules.Count);
                Console.WriteLine();
                Console.WriteLine("Pause before configuration delete. To continue, click Enter...");
                Console.ReadKey();

                // Delete the configuration.
                await DeleteCORSConfigurationAsync();

                // Retrieve a nonexistent configuration.
                configuration = await RetrieveCORSConfigurationAsync();
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }

        static async Task PutCORSConfigurationAsync(CORSConfiguration configuration)
        {

            PutCORSConfigurationRequest request = new PutCORSConfigurationRequest
            {
                BucketName = bucketName,
                Configuration = configuration
            };

            var response = await s3Client.PutCORSConfigurationAsync(request);
        }

        static async Task<CORSConfiguration> RetrieveCORSConfigurationAsync()
        {
            GetCORSConfigurationRequest request = new GetCORSConfigurationRequest
            {
                BucketName = bucketName

            };
            var response = await s3Client.GetCORSConfigurationAsync(request);
            var configuration = response.Configuration;
            PrintCORSRules(configuration);
            return configuration;
        }

        static async Task DeleteCORSConfigurationAsync()
        {
            DeleteCORSConfigurationRequest request = new DeleteCORSConfigurationRequest
            {
                BucketName = bucketName
            };
            await s3Client.DeleteCORSConfigurationAsync(request);
        }

        static void PrintCORSRules(CORSConfiguration configuration)
        {
            Console.WriteLine();

            if (configuration == null)
            {
                Console.WriteLine("\nConfiguration is null");
                return;
            }

            Console.WriteLine("Configuration has {0} rules:", configuration.Rules.Count);
            foreach (CORSRule rule in configuration.Rules)
            {
                Console.WriteLine("Rule ID: {0}", rule.Id);
                Console.WriteLine("MaxAgeSeconds: {0}", rule.MaxAgeSeconds);
                Console.WriteLine("AllowedMethod: {0}", string.Join(", ", rule.AllowedMethods.ToArray()));
                Console.WriteLine("AllowedOrigins: {0}", string.Join(", ", rule.AllowedOrigins.ToArray()));
                Console.WriteLine("AllowedHeaders: {0}", string.Join(", ", rule.AllowedHeaders.ToArray()));
                Console.WriteLine("ExposeHeader: {0}", string.Join(", ", rule.ExposeHeaders.ToArray()));
            }
        }
    }
}
```

------

## Uso de la API de REST
<a name="EnableCorsUsingREST"></a>

Para establecer una configuración de CORS en su bucket, puede usar la Consola de administración de AWS. Si la aplicación lo requiere, puede también enviar solicitudes REST directamente. En las secciones siguientes de la *referencia de la API de Amazon Simple Storage Service* se describen las acciones de la API de REST relacionadas con la configuración de CORS. 
+ [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTcors.html)
+ [GetBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETcors.html)
+ [DeleteBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEcors.html)
+ [OPTIONS object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html)

# Prueba de CORS
<a name="testing-cors"></a>

Para probar la configuración de CORS, se puede enviar una solicitud de comprobación previa de CORS con el método `OPTIONS` para que el servidor pueda responder si es aceptable para enviar la solicitud. Cuando Amazon S3 recibe una solicitud de comprobación previa, S3 evalúa la configuración de CORS para el bucket y usa la primera regla `CORSRule` que coincide con la solicitud entrante para habilitar una solicitud entre orígenes. Para que una regla coincida, se deben cumplir las siguientes condiciones: 
+ El encabezado `Origin` de una solicitud de CORS a su bucket debe corresponderse con los orígenes del elemento `AllowedOrigins` de su configuración de CORS.
+ Los métodos HTTP que se especifiquen en el `Access-Control-Request-Method` en una solicitud de CORS a su bucket deben corresponderse con el método o métodos enumerados en el elemento `AllowedMethods` de su configuración de CORS.
+ Los encabezados mostrados en el encabezado `Access-Control-Request-Headers` de una solicitud de comprobación previa deben coincidir con los encabezados del elemento `AllowedHeaders` de la configuración de CORS. 

A continuación, se muestra un ejemplo de configuración de CORS. Para crear una configuración de CORS, consulte [Configuración de CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html). Para obtener más ejemplos de una configuración de CORS, consulte [Elementos de una configuración de CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManageCorsUsing.html). 

Para obtener orientación sobre la configuración y solución de problemas de las reglas de CORS, consulte [¿Cómo puedo configurar CORS en Amazon S3 y confirmar las reglas de CORS mediante cURL?](https://repost.aws/knowledge-center/s3-configure-cors) en el Centro de conocimiento de AWS re:Post.

------
#### [ JSON ]

```
[
    {
        "AllowedHeaders": [
            "Authorization"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example1.com"
        ],
        "ExposeHeaders":  [
             "x-amz-meta-custom-header"
        ]
    
    }
]
```

------

Para probar la configuración de CORS, puede enviar una comprobación de `OPTIONS` previa mediante el siguiente comando CURL. CURL es una herramienta de línea de comandos que se puede utilizar para interactuar con S3. Para obtener más información, consulte [CURL](https://curl.se/). 

```
 curl -v -X OPTIONS \
  -H "Origin: http://www.example1.com" \
  -H "Access-Control-Request-Method: PUT" \
  -H "Access-Control-Request-Headers: Authorization" \
  -H "Access-Control-Expose-Headers: x-amz-meta-custom-header"\
     "http://bucket_name.s3.amazonaws.com/object_prefix_name"
```

En el ejemplo anterior, el comando `curl -v -x OPTIONS` se usa para enviar una solicitud de comprobación previa a S3 para preguntar si S3 le permite enviar una solicitud `PUT` en un objeto desde el `http://www.example1.com` entre orígenes. Los encabezados `Access-Control-Request-Headers` y `Access-Control-Expose-Headers` son opcionales.
+ En respuesta al encabezado `Access-Control-Request-Method` en la solicitud `OPTIONS` de comprobación previa, Amazon S3 devuelve la lista de métodos permitidos si los métodos solicitados coinciden. 
+ En respuesta al encabezado `Access-Control-Request-Headers` en la solicitud de `OPTIONS` de comprobación previa, Amazon S3 devuelve la lista de encabezados permitidos si los encabezados solicitados coinciden.
+ En respuesta al encabezado `Access-Control-Expose-Headers` en la solicitud de `OPTIONS` de comprobación previa, Amazon S3 devuelve la lista de encabezados permitidos si los encabezados solicitados coinciden con los encabezados permitidos a los que se puede acceder por scripts que se ejecutan en el navegador.

**nota**  
Al enviar una solicitud de comprobación previa, si alguno de los encabezados de solicitud de CORS no está permitido, no se devuelve ninguno de los encabezados de CORS de respuesta.

En respuesta a esta solicitud de `OPTIONS` de comprobación previa, recibirá una respuesta de `200 OK`. Para ver los códigos de error más comunes que se reciben al probar CORS y obtener más información para resolver los problemas relacionados con CORS, consulte [Solución de problemas relacionados con CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors-troubleshooting.html). 

```
< HTTP/1.1 200 OK
< Date: Fri, 12 Jul 2024 00:23:51 GMT
< Access-Control-Allow-Origin: http://www.example1.com
< Access-Control-Allow-Methods: GET, PUT, POST, DELETE 
< Access-Control-Allow-Headers: Authorization
< Access-Control-Expose-Headers: x-amz-meta-custom-header
< Access-Control-Allow-Credentials: true
< Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
< Server: AmazonS3
< Content-Length: 0
```

# Solución de problemas de CORS
<a name="cors-troubleshooting"></a>

Los siguientes temas pueden ayudarle a solucionar problemas habituales de CORS relacionados con S3.

**Topics**
+ [Error 403 Forbidden: CORS is not enabled for this bucket](#cors-not-enabled)
+ [Error 403 Forbidden - This CORS request is not allowed](#cors-not-enabled)
+ [No se encontraron encabezados en la respuesta de CORS](#Headers-not-found)
+ [Consideraciones sobre CORS en las integraciones del proxy de S3](#cors-in-proxy)

## Error 403 Forbidden: CORS is not enabled for this bucket
<a name="cors-not-enabled"></a>

El siguiente error `403 Forbidden` se produce cuando se envía una solicitud entre orígenes a Amazon S3, pero CORS no está configurado en el bucket de S3. 

 Error: HTTP/1.1 403 Forbidden CORS Response: CORS is not enabled for this bucket. 

La configuración de CORS es un documento o política con reglas que identifican los orígenes desde los que se permitirá el acceso al bucket, las operaciones (métodos HTTP) que permitirá para cada origen y otro tipo de información específica de cada operación. Descubra cómo [configurar CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) en S3 utilizando la consola de Amazon S3, los AWS SDK y la API de REST. Para obtener más información sobre CORS y ejemplos de una configuración de CORS, consulte [Elementos de CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManageCorsUsing.html#cors-example-1).

## Error 403 Forbidden: This CORS request is not allowed
<a name="cors-not-enabled"></a>

Se recibe el siguiente error `403 Forbidden` cuando una regla de CORS de la configuración de CORS no se corresponde con los datos de la solicitud.

Error:  HTTP/1.1 403 Forbidden CORS Response: This CORS request is not allowed.

Como resultado, este error `403 Forbidden` puede producirse por varios motivos:
+ El origen no está permitido.
+ Los métodos no están permitidos.
+ Los encabezados solicitados no están permitidos.

Para cada solicitud que Amazon S3 reciba, debe tener una regla de CORS en la configuración de CORS que se corresponda con los datos de la solicitud. 

### El origen no está permitido
<a name="Origin-not-allowed"></a>

 El encabezado `Origin` de una solicitud de CORS a su bucket debe corresponderse con los orígenes del elemento `AllowedOrigins` de su configuración de CORS. Un carácter comodín (`"*"`) en el elemento `AllowedOrigins` se correspondería con todos los métodos HTTP. Para obtener más información sobre cómo actualizar el elemento `AllowedOrigins`, consulte [Configuración del uso compartido de recursos entre orígenes (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html).

 Por ejemplo, si solo se incluye el dominio `http://www.example1.com` en el elemento `AllowedOrigins`, una solicitud de CORS enviada desde el dominio `http://www.example2.com` recibirá el error `403 Forbidden`. 

El siguiente ejemplo muestra parte de una configuración de CORS que incluye el dominio `http://www.example1.com` en el elemento `AllowedOrigins`. 

```
"AllowedOrigins":[
   "http://www.example1.com"
]
```

Para que una solicitud de CORS enviada desde el dominio `http://www.example2.com` se realice correctamente, el dominio `http://www.example2.com` debe incluirse en el elemento `AllowedOrigins` de la configuración de CORS. 

```
"AllowedOrigins":[
   "http://www.example1.com"
   "http://www.example2.com"
]
```

### Los métodos no están permitidos
<a name="Methods-not-allowed"></a>

 Los métodos HTTP que se especifiquen en el `Access-Control-Request-Method` en una solicitud de CORS a su bucket deben corresponderse con el método o métodos enumerados en el elemento `AllowedMethods` de su configuración de CORS. Un carácter comodín (`"*"`) en `AllowedMethods` se correspondería con todos los métodos HTTP. Para obtener más información sobre cómo actualizar el elemento `AllowedOrigins`, consulte [Configuración del uso compartido de recursos entre orígenes (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html). 

En una configuración de CORS, puede especificar los siguientes métodos en el elemento `AllowedMethods`:
+ `GET`
+ `PUT`
+ `POST`
+ `DELETE`
+ `HEAD`

El siguiente ejemplo muestra parte de una configuración de CORS que incluye el método `GET` en el elemento `AllowedMethods`. Solo se aceptarán las solicitudes que incluyan el método `GET`. 

```
"AllowedMethods":[
   "GET"
]
```

 Si se utilizó un método HTTP (por ejemplo, `PUT`) en una solicitud de CORS o se incluyó en una solicitud de CORS anterior al tránsito en su bucket, pero el método no está presente en la configuración de CORS, la solicitud dará lugar a un error `403 Forbidden`. Para permitir esta solicitud de CORS o una solicitud de CORS anterior al tránsito, debe agregar el método `PUT` a su configuración de CORS. 

```
"AllowedMethods":[
   "GET"
   "PUT"
]
```

### Los encabezados solicitados no están permitidos
<a name="Headers-not-allowed"></a>

 Los encabezados que aparecen en el encabezado `Access-Control-Request-Headers` de una solicitud anterior al tránsito deben corresponderse con los encabezados del elemento `AllowedHeaders` de la configuración de CORS. Para obtener una lista de los encabezados comunes que pueden utilizarse en las solicitudes a Amazon S3, consulte [Common Request Headers](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html). Para obtener más información sobre cómo actualizar el elemento `AllowedHeaders`, consulte [Configuración del uso compartido de recursos entre orígenes (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html). 

El siguiente ejemplo muestra parte de una configuración de CORS que incluye el encabezado `Authorization` en el elemento `AllowedHeaders`. Solo se aceptarían solicitudes del encabezado `Authorization`. 

```
"AllowedHeaders":  [
    "Authorization"
]
```

 Si se incluyó un encabezado (por ejemplo, `Content-MD5`) en una solicitud de CORS, pero el encabezado no está presente en la configuración de CORS, la solicitud dará lugar a un error `403 Forbidden`. Para permitir esta solicitud de CORS, se debe agregar el encabezado `Content-MD5` a la configuración de CORS. Si quiere pasar los dos encabezados, `Authorization` y `Content-MD5`, de una solicitud de CORS a su bucket, confirme que ambos estén incluidos en el elemento `AllowedHeaders` de su configuración de CORS. 

```
"AllowedHeaders":  [
    "Authorization"
    "Content-MD5"
]
```

## No se encontraron encabezados en la respuesta de CORS
<a name="Headers-not-found"></a>

 El elemento `ExposeHeaders` de su configuración de CORS identifica los encabezados de respuesta que desea que sean accesibles a los scripts y las aplicaciones que se ejecutan en los navegadores en respuesta a una solicitud de CORS.

Si los objetos almacenados en el bucket de S3 tienen metadatos definidos por el usuario (por ejemplo, `x-amz-meta-custom-header`) junto con los datos de respuesta, este encabezado personalizado podría contener metadatos o información adicionales a los que desee acceder desde el código JavaScript del cliente. Sin embargo, de forma predeterminada, los navegadores bloquean el acceso a los encabezados personalizados por motivos de seguridad. Para permitir que el JavaScript del cliente acceda a los encabezados personalizados, debe incluir el encabezado en la configuración de CORS.

 En el siguiente ejemplo, el encabezado `x-amz-meta-custom-header1` se incluye en el elemento `ExposeHeaders`. `x-amz-meta-custom-header2` no está incluido en el elemento `ExposeHeaders` y no aparece en la configuración de CORS. En la respuesta, solo se devolverían los valores incluidos en el elemento `ExposeHeaders`. Si la solicitud incluía el encabezado `x-amz-meta-custom-header2` en el encabezado `Access-Control-Expose-Headers`, la respuesta seguiría devolviendo un `200 OK`. Sin embargo, solo devolvería y se mostraría en la respuesta el encabezado permitido (por ejemplo, `x-amz-meta-custom-header`). 

```
"ExposeHeaders":  [
    "x-amz-meta-custom-header1"
]
```

 Para garantizar que todos los encabezados aparezcan en la respuesta, agregue todos los encabezados permitidos al elemento `ExposeHeaders` en su configuración de CORS, como se muestra a continuación. 

```
"ExposeHeaders":  [
    "x-amz-meta-custom-header1",
    "x-amz-meta-custom-header2"
]
```

## Consideraciones sobre CORS en las integraciones del proxy de S3
<a name="cors-in-proxy"></a>

Si se producen errores y ya ha comprobado la configuración de CORS en el bucket de S3 y la solicitud entre orígenes se envía a proxies como AWS CloudFront, intente lo siguiente:
+ Configure los ajustes para permitir el método `OPTIONS` para las solicitudes HTTP.
+ Configure el proxy para reenviar los siguientes encabezados: `Origin`, `Access-Control-Request-Headers` y `Access-Control-Request-Method`.
+ Configure los ajustes del proxy para incluir el encabezado de origen en su clave de caché. Esto es importante porque los proxies de almacenamiento en caché que no incluyen el encabezado de origen en su clave de caché pueden servir respuestas almacenadas en caché que no incluyan los encabezados CORS adecuados para diferentes orígenes.

Algunos proxies proporcionan características predefinidas para las solicitudes de CORS. Por ejemplo, en CloudFront, puede configurar una política que incluya los encabezados 

 que habilitan las solicitudes de uso compartido de recursos de origen cruzado (CORS) cuando el origen es un bucket de Amazon S3.

 Esta política tiene las siguientes opciones: 
+ Encabezados incluidos en las solicitudes de origen:

   `Origin`

   `Access-Control-Request-Headers`

   `Access-Control-Request-Method`
+ Cookies incluidas en las solicitudes de origen: ninguna
+ Cadenas de consulta incluidas en las solicitudes de origen: ninguna

Para obtener más información, consulte [Control de las solicitudes de origen con una política](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.htm) o [Uso de políticas de solicitudes de origen administradas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html#managed-origin-request-policy-cors-s3) en la *Guía para desarrolladores de Amazon CloudFront*. 

# Tutoriales de sitios web estáticos
<a name="static-website-tutorials"></a>

Los siguientes tutoriales presentan procedimientos completos para crear y configurar un bucket de uso general de Amazon S3 para alojar sitios web estáticos y de streaming de vídeo bajo demanda. El propósito de estos tutoriales es proporcionar una orientación general. Están pensados para un entorno de laboratorio y en ellos se usan nombres de buckets, nombres de usuario, etc., de ejemplo. No deben utilizarse directamente en un entorno de producción sin antes realizar una revisión y adaptación exhaustivas para satisfacer las necesidades únicas del entorno de la organización. 
+ [Alojamiento de vídeo en streaming bajo demanda con Amazon S3, Amazon CloudFront y Amazon Route 53](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tutorial-s3-cloudfront-route53-video-streaming): puede utilizar Amazon S3 con Amazon CloudFront para alojar vídeos y visualizarlos bajo demanda con seguridad y escalabilidad. Un vez que el vídeo esté empaquetado en los formatos adecuados, puede almacenarlo en un servidor o en un bucket de uso general de S3 y, a continuación, distribuirlo con CloudFront a medida que lo soliciten los espectadores. En este tutorial, aprenderá a configurar un bucket de uso general para alojar streaming de vídeo bajo demanda mediante CloudFront para la entrega y Amazon Route 53 para el sistema de nombres de dominio (DNS) y la administración de dominios personalizados. CloudFront sirve el vídeo desde su caché y lo recupera del bucket de uso general solo si aún no está almacenado en caché. Esta característica de administración acelera la entrega de video a los usuarios de todo el mundo con baja latencia, alto rendimiento y altas velocidades de transferencia. Para obtener más información acerca de la administración del almacenamiento en caché de CloudFront, consulte [Optimización del almacenamiento en caché y la disponibilidad](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ConfiguringCaching.html) en la *Guía para desarrolladores de Amazon CloudFront*.
+ [Configuración de un sitio web estático](https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html): puede configurar un bucket de uso general para que funcione como un sitio web. En este tutorial, se explican los pasos necesarios para alojar un sitio web en Amazon S3, entre los que se incluyen la creación de un bucket, la habilitación del alojamiento de sitios web estáticos en la consola de S3, la creación de un documento de índice y la creación de un documento de errores. Para obtener más información, consulte [Alojamiento de un sitio web estático mediante Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html).
+ [Configuración de un sitio web estático mediante un dominio personalizado registrado con Route 53](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html): puede crear y configurar un bucket de uso general para alojar un sitio web estático y crear redireccionamientos en S3 para un sitio web con un nombre de dominio personalizado registrado en Amazon Route 53. Utilice Route 53 para registrar dominios y para definir dónde quiere dirigir el tráfico de Internet para su dominio. Este tutorial muestra cómo crear registros de alias de Route 53 que dirigen el tráfico para su dominio y subdominio a un bucket de uso general que contiene un archivo HTML. Para obtener más información, consulte [Use your domain for a static website in an Amazon S3 bucket](https://docs.aws.amazon.com//Route53/latest/DeveloperGuide/getting-started-s3.html) en la *Amazon Route 53 Developer Guide*. Una vez completado este tutorial, tiene la opción de utilizar CloudFront para mejorar el rendimiento de su sitio web. Para obtener más información, consulte [Aceleración de su sitio web con Amazon CloudFront](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-cloudfront-walkthrough.html). 
+ [Implementación de un sitio web estático en AWS Amplify Hosting desde un bucket de uso general de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-amplify): le recomendamos que utilice [AWSAmplify Hosting](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) para alojar el contenido de sitios web estáticos almacenado en S3. Amplify Hosting es un servicio totalmente administrado que facilita la implementación de los sitios web en una red de entrega de contenido (CDN) disponible en todo el mundo con tecnología de Amazon CloudFront, lo que permite alojar sitios web estáticos y seguros sin necesidad de una configuración exhaustiva. Con AWS Amplify Hosting, puede seleccionar la ubicación de los objetos en el bucket de uso general, implementar el contenido en una CDN administrada y generar una URL HTTPS pública para que se pueda acceder al sitio web desde cualquier lugar. Para obtener más información, consulte [Implementación de un sitio web estático desde S3 mediante la consola de Amplify](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) en la *Guía del usuario de AWS Amplify Hosting*.

# Tutorial: Alojamiento de video en streaming bajo demanda con Amazon S3, Amazon CloudFront y Amazon Route 53
<a name="tutorial-s3-cloudfront-route53-video-streaming"></a>

Puede utilizar Amazon S3 con Amazon CloudFront para alojar videos y visualizarlos bajo demanda con seguridad y escalabilidad. Streaming de video bajo demanda (VOD) significa que el contenido de video se almacena en un servidor, y los usuarios pueden verlo en cualquier momento.

CloudFront es un servicio de red de entrega de contenido (CDN) rápido, altamente seguro y programable. CloudFront puede entregar su contenido de forma segura a través de HTTPS desde todas las ubicaciones de borde de CloudFront en el mundo. Para obtener más información acerca de CloudFront, consulte [¿Qué es Amazon CloudFront?](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) en la *Guía para desarrolladores de Amazon CloudFront*.

El almacenamiento en caché de CloudFront reduce la cantidad de solicitudes a las que debe responder directamente el servidor de origen. Cuando un espectador (usuario final) solicita un video servido por usted con CloudFront, la solicitud se dirige a una ubicación periférica próxima más cercana a donde se encuentra el espectador. CloudFront sirve el video desde su caché y lo recupera del bucket de S3 solo si aún no está almacenado en caché. Esta característica de administración acelera la entrega de video a los usuarios de todo el mundo con baja latencia, alto rendimiento y altas velocidades de transferencia. Para obtener más información acerca de la administración del almacenamiento en caché de CloudFront, consulte [Optimización del almacenamiento en caché y la disponibilidad](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ConfiguringCaching.html) en la *Guía para desarrolladores de Amazon CloudFront*.

![\[Diagrama que muestra cómo funciona el mecanismo de almacenamiento en caché de CloudFront\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/cf-example-image-global.png)


**Objetivo**  
En este tutorial, configura un bucket de S3 para alojar el streaming de video bajo demanda mediante CloudFront para la entrega y Amazon Route 53 para el sistema de nombres de dominio (DNS) y la administración de dominios personalizados.

**Topics**
+ [Requisitos previos: registrar y configurar un dominio personalizado con Route 53](#cf-s3-prerequisites)
+ [Paso 1: crear un bucket de S3](#cf-s3-step1)
+ [Paso 2: Cargar un video en el bucket de S3](#cf-s3-step2)
+ [Paso 3: Cree una identidad de acceso de origen de CloudFront](#cf-s3-step3)
+ [Paso 4: crear una distribución de CloudFront](#cf-s3-step4)
+ [Paso 5: Acceda al video a través de la distribución de CloudFront](#cf-s3-step5)
+ [Paso 6: Configure su distribución de CloudFront para usar el nombre de dominio personalizado](#cf-s3-step6)
+ [Paso 7: acceda al video de S3 a través de la distribución CloudFront con el nombre de dominio personalizado](#cf-s3-step7)
+ [(Opcional) Paso 8: vea los datos sobre las solicitudes recibidas por su distribución de CloudFront](#cf-s3-step8)
+ [Paso 9: limpieza](#cf-s3-step9)
+ [Siguientes pasos](#cf-s3-next-steps)

## Requisitos previos: registrar y configurar un dominio personalizado con Route 53
<a name="cf-s3-prerequisites"></a>

Antes de comenzar este tutorial, debe registrar y configurar un dominio personalizado (por ejemplo, **example.com**) con Route 53 para configurar su distribución de CloudFront para que use un nombre de dominio personalizado más adelante. 

Sin un nombre de dominio personalizado, el video de S3 es accesible públicamente y está alojado a través de CloudFront en una URL similar a la siguiente: 

```
https://CloudFront distribution domain name/Path to an S3 video
```

Por ejemplo, **https://d111111abcdef8.cloudfront.net/sample.mp4**.

Después de configurar la distribución de CloudFront para utilizar un nombre de dominio personalizado configurado con Route 53, el video de S3 será accesible públicamente y estará alojado a través de CloudFront en una dirección URL similar a la siguiente: 

```
https://CloudFront distribution alternate domain name/Path to an S3 video
```

Por ejemplo, **https://www.example.com/sample.mp4**. A los espectadores les resultará más sencillo e intuitivo usar un nombre de dominio personalizado.

****  
Para registrar el nombre de un dominio, consulte [Registro de nombres de dominio mediante Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) en la *Guía para desarrolladores de Amazon Route 53*.

Cuando registra un nombre de dominio con Route 53, Route 53 crea la zona alojada para usted, que usará más adelante en este tutorial. Esta zona alojada es el lugar donde almacena la información acerca de cómo dirigir el tráfico de su dominio; por ejemplo, a una instancia de Amazon EC2 o una distribución de CloudFront. 

Hay tarifas asociadas al registro de dominios, la zona alojada y las consultas de DNS que recibe su dominio. Para obtener más información, consulte [Precios de Amazon Route 53](https://aws.amazon.com/route53/pricing/). 

**nota**  
Cuando registra un dominio, cuesta dinero inmediatamente y es irreversible. Puede elegir no renovar automáticamente el dominio, pero paga por adelantado y lo posee durante el año. Para obtener más información, consulte [Renovación de un nuevo dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) en la *Guía para desarrolladores de Amazon Route 53*.

## Paso 1: crear un bucket de S3
<a name="cf-s3-step1"></a>

Debe crear un bucket para almacenar el video original que planea transmitir.

**Creación de un bucket**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la barra de navegación de la parte superior de la página, elija el nombre de la Región de AWS que aparece. A continuación, en Región, elija la región en la que desea crear un bucket. 
**nota**  
Puede seleccionar una región cercana para minimizar la latencia y los costos, así como para satisfacer los requisitos normativos. Los objetos almacenados en una región nunca abandonarán esa región salvo que usted los transfiera de forma específica a otra. Para una lista de Regiones de AWS de Amazon S3, consulte [Puntos de conexión de Servicio de AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) en la *Referencia general de Amazon Web Services*.

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. Elija **Crear bucket**. Se abrirá la página **Create bucket** (Crear bucket).

1. En **Bucket name (Nombre de bucket)**, ingrese el nombre del bucket (por ejemplo, **tutorial-bucket**). 

   Para obtener más información acerca de las reglas de nomenclatura del bucket de Amazon S3, consulte [Reglas de nomenclatura de buckets de uso general](bucketnamingrules.md).

1. En **Region** (Región), elija la Región de AWS en la que desea que se encuentre el bucket. 

   Si es posible, debe elegir la ubicación de la región que probablemente esté más cerca de la mayoría de sus usuarios. Para obtener más información acerca de bucket Region, consulte [Información general de los buckets de uso general](UsingBucket.md).

1. Para **Configuración de Block Public Access para este bucket**, conserve la configuración predeterminada (**Bloquear *todo *acceso público** está habilitado). 

   Incluso con la opción **Block *all* public access (Bloquear todo el acceso público)** habilitada, los usuarios pueden acceder al video cargado a través de CloudFront. Esta característica es una ventaja importante de utilizar CloudFront para alojar un video almacenado en S3.

   Le recomendamos que deje todas las configuraciones habilitadas, a menos que sepa que necesita desactivar una o varias de ellas para su caso de uso. Para obtener más información acerca del bloqueo del acceso público, consulte [Bloquear el acceso público a su almacenamiento de Amazon S3](access-control-block-public-access.md).

1. Mantenga la configuración restante establecida en los valores predeterminados. 

   (Opcional) Si desea configurar opciones de bucket adicionales para el caso de uso específico, consulte [Creación de un bucket de uso general](create-bucket-overview.md).

1. Elija **Crear bucket**.

## Paso 2: Cargar un video en el bucket de S3
<a name="cf-s3-step2"></a>

En el siguiente procedimiento, se describe cómo cargar un archivo de video a un bucket de S3 mediante la consola. Cuando carga muchos videos grandes a S3, también puede usar [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration) para configurar transferencias de archivos rápidas y seguras. Aceleración de transferencias puede acelerar la carga de vídeo en su bucket de S3 para transferir a larga distancia vídeos más grandes. Para obtener más información, consulte [Configuración de transferencias de archivos rápidas y seguras con Aceleración de transferencias de Amazon S3](transfer-acceleration.md). 

**Para cargar un archivo en el bucket**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista **Buckets de uso general**, elija el nombre del bucket que creó en el [Paso 1](#cf-s3-step1) (por ejemplo: **tutorial-bucket**) para cargar el archivo.

1. En la pestaña **Objetos** del bucket, elija **Cargar**.

1. En la página **Cargar**, en **Archivos y carpetas**, elija **Añadir archivos**.

1. Seleccione un archivo que cargar y luego seleccione **Abrir**.

   Por ejemplo, puede cargar un archivo de video denominado `sample.mp4`.

1. Seleccione **Upload** (Cargar).

## Paso 3: Cree una identidad de acceso de origen de CloudFront
<a name="cf-s3-step3"></a>

Para restringir el acceso directo al video desde el bucket de S3, debe crear un usuario de CloudFront especial denominado identidad de acceso de origen (OAI). Asociará la OAI a su distribución más adelante en este tutorial. Al usar una OAI, se asegura de que los usuarios no puedan omitir CloudFront y obtengan el video directamente desde el bucket de S3. Solo la OAI de CloudFront puede acceder al archivo en el bucket de S3. Para obtener más información, consulte [Restricción del acceso a un origen de Amazon S3](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) en la *Guía para desarrolladores de Amazon CloudFront*.



**importante**  
Si el bucket que utiliza para alojar el sitio web estático se ha cifrado mediante el cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS), debe usar el control de acceso de origen (OAC) en lugar de la identidad de acceso de origen (OAI) para proteger el origen. La OAI no es compatible con SSE-KMS, por lo que debe usar OAC en su lugar. Para obtener más información sobre OAC, consulte [Restricción del acceso a un origen de Amazon S3](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) en la *Guía para desarrolladores de Amazon CloudFront*.

**Para crear una OAI de CloudFront**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. En el panel de navegación izquierdo, en la sección **Seguridad**, elija **Acceso de origen**.

1. En la pestaña **Identidades**, elija **Crear identidad de acceso de origen**.

1. Ingrese un nombre (por ejemplo, **S3-OAI**) para la nueva identidad de acceso de origen.

1. Seleccione **Create ** (Crear).

## Paso 4: crear una distribución de CloudFront
<a name="cf-s3-step4"></a>

Para utilizar CloudFront para servir y distribuir el video en su bucket de S3, debe crear una distribución de CloudFront. 

**Topics**
+ [Crear una distribución de CloudFront.](#cf-s3-step4-create-cloudfront)
+ [Revisar la política de bucket](#cf-s3-step4-review-bucket-policy)

### Crear una distribución de CloudFront.
<a name="cf-s3-step4-create-cloudfront"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. En el panel de navegación izquierdo, elija **Distributions (Distribuciones)**.

1. Elija **Create distribution** (Crear distribución).

1. En la sección **Origin (Origen)**, para **Origin domain (Dominio de origen)**, elija el nombre de dominio de su origen de S3, que comienza con el nombre del bucket de S3 que creó en el [Paso 1](#cf-s3-step1) (por ejemplo: **tutorial-bucket**).

1. Para **Acceder al origen**, seleccione **Identidades de acceso antiguas**.

1. En **Origin access identity (Identidad de acceso de origen)**, elija la identidad de acceso de origen que creó en el [Paso 3](#cf-s3-step3) (por ejemplo, **S3-OAI**).

1. En **Bucket policy** (Política de bucket), elija **Yes, update the bucket policy** (Sí, actualizar la política de bucket). 

1. En la sección **Default cache behavior (Comportamiento de caché predeterminado)**, en la **política de protocolo del usuario**, elija **Redirect HTTP to HTTPS (Redireccionamiento de HTTP a HTTPS)**. 

   Cuando elige esta característica, las solicitudes HTTP se redirigen automáticamente a HTTPS para proteger su sitio web y los datos de sus usuarios. 

1. Para las otras opciones de configuración de la sección **Default Cache Behavior Settings (Configuración del comportamiento de caché predeterminado)**, mantenga los valores predeterminados.

   (Opcional) Puede controlar el tiempo en el que se mantienen los archivos en una caché de CloudFront antes de que CloudFront reenvíe otra solicitud al origen. Reducir la duración le permite ofrecer contenido dinámico. Aumentar la duración implica que sus usuarios podrán disfrutar de un mejor rendimiento, ya que es más probable que los archivos se ofrezcan directamente desde la caché de borde. Una mayor duración también reduce la carga en el origen. Para obtener más información, consulte [Administración de cuánto tiempo se mantiene el contenido en una caché perimetral (vencimiento)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) en la *Guía para desarrolladores de Amazon CloudFront*.

1. En las otras secciones, conserve la configuración restante establecida en los valores predeterminados. 

   Para obtener más información sobre estas opciones de configuración, consulte [Valores que deben especificarse al crear o actualizar una distribución](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html) en la *Guía para desarrolladores de Amazon CloudFront*. 

1. En la parte inferior de la página, elija **Create Distribution** (Crear distribución). 

1. En la pestaña **General** de su distribución de CloudFront, en **Detalles**, el valor de la columna **Última modificación** de la distribución cambia de **Implementación** a la marca temporal de la última modificación de la distribución. Este proceso normalmente dura unos minutos. 

### Revisar la política de bucket
<a name="cf-s3-step4-review-bucket-policy"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el nombre del bucket que utilizó anteriormente como origen de la distribución de CloudFront (por ejemplo: **tutorial-bucket**).

1. Elija la pestaña **Permissions** (Permisos).

1. En la sección **Bucket policy (Política de bucket)**, confirme que aparece una instrucción similar a la siguiente en el texto de la política de bucket: 

   ```
   {
       "Version": "2008-10-17",		 	 	 
       "Id": "PolicyForCloudFrontPrivateContent",
       "Statement": [
           {
               "Sid": "1",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC"
               },
               "Action": "s3:GetObject",
               "Resource": "arn:aws:s3:::tutorial-bucket/*"
           }
       ]
   }
   ```

   Esta es la declaración que su distribución de CloudFront agrega a su política de bucket cuando elige **Yes, update the bucket policy (Sí, actualizar la política de bucket)**.

   Esta actualización de la política de bucket indica que configuró correctamente la distribución de CloudFront para restringir el acceso al bucket de S3. Debido a esta restricción, solo se puede acceder a los objetos del bucket a través de su distribución de CloudFront. 

## Paso 5: Acceda al video a través de la distribución de CloudFront
<a name="cf-s3-step5"></a>

Ahora, CloudFront puede servir el video almacenado en el bucket de S3. Para acceder a su video a través de CloudFront, debe combinar el nombre de dominio de distribución de CloudFront con la ruta de acceso al video en el bucket de S3.

**Para crear una dirección URL para el video de S3 con el nombre de dominio de distribución de CloudFront**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. En el panel de navegación izquierdo, elija **Distributions** (Distribuciones).

1. Para obtener el nombre de dominio de distribución, haga lo siguiente:

   1. En la columna **Origins (Orígenes)**, identifique la distribución de CloudFront; para ello, busque el nombre de origen, que comienza con el bucket de S3 que creó en el [Paso 1](#cf-s3-step1) (por ejemplo, **tutorial-bucket**). 

   1. Después de encontrar la distribución de la lista, amplíe la columna **Domain name (Nombre del dominio)** para copiar el valor del nombre del dominio para la distribución de CloudFront.

1. En una nueva pestaña del navegador, pegue el nombre del dominio de distribución que copió anteriormente. 

1. Vuelva a la pestaña anterior del navegador y abra la consola de S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/). 

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, seleccione el nombre del bucket que creó en el [paso 1](#cf-s3-step1) (por ejemplo: **tutorial-bucket**). 

1. En la lista **Objects (Objetos)**, elija el nombre del video que cargó en el [Paso 2](#cf-s3-step2) (por ejemplo, `sample.mp4`). 

1. En la página de detalles del objeto, sección **Object overview (Información general del objeto)**, copie el valor de la **clave**. Este valor es la ruta al objeto de video que se cargó en el bucket de S3. 

1. Vuelva a la pestaña del navegador en la que pegó previamente el nombre de dominio de distribución, ingrese una barra diagonal (**/**) después del nombre de dominio de distribución y pegue la ruta al video que copió anteriormente (por ejemplo, `sample.mp4`). 

   Ahora, su video de S3 es accesible públicamente y está alojado a través de CloudFront en una URL similar a la siguiente: 

   ```
   https://CloudFront distribution domain name/Path to the S3 video
   ```

   Reemplace el *nombre de dominio de distribución de CloudFront* y la *ruta al video de S3* con los valores apropiados. La dirección URL de ejemplo es: **https://d111111abcdef8.cloudfront.net/sample.mp4**.

## Paso 6: Configure su distribución de CloudFront para usar el nombre de dominio personalizado
<a name="cf-s3-step6"></a>

Para utilizar su propio nombre de dominio en lugar del nombre de dominio de CloudFront en la URL para acceder al video de S3, agregue un nombre de dominio alternativo a la distribución de CloudFront. 

**Topics**
+ [Solicite un certificado SSL](#cf-s3-step6-create-SSL)
+ [Agregue un nombre de dominio alternativo a su distribución de CloudFront.](#cf-s3-step6-custom-domain)
+ [Cree un registro de DNS para enrutar el tráfico de su nombre de dominio alternativo al nombre de dominio de su distribución de CloudFront](#cf-s3-step6-DNS-record)
+ [Verifique si IPv6 está habilitado para su distribución y cree otro registro de DNS si es necesario](#s3-step6-ipv6)

### Solicite un certificado SSL
<a name="cf-s3-step6-create-SSL"></a>

Para permitir que los usuarios utilicen HTTPS y su nombre de dominio personalizado en la URL de la transmisión de video, utilice AWS Certificate Manager (ACM) para solicitar un certificado de capa de conexión segura (SSL). El certificado de SSL establece una conexión de red cifrada al sitio web. 

1. Inicie sesión en Consola de administración de AWS y abra la consola de ACM en [https://console.aws.amazon.com/cloudfront/](https://console.aws.amazon.com/acm/).

1. Si aparece la página de introducción, en **Provision certificates** (Aprovisionar certificados), elija **Get Started** (Comenzar).

1. En la página **Request a certificate (Solicitar un certificado)**, elija **Request a public certificate (Solicitar un certificado público)** y luego, **Request a certificate (Solicitar un certificado)**.

1. En la página **Add domain names (Agregar nombres de dominio)**, ingrese el nombre de dominio completo del sitio (FQDN) que desea proteger con un certificado de SSL/TLS. Utilice un asterisco (`*`) para solicitar un certificado comodín que proteja varios nombres de sitios del mismo dominio. Para este tutorial, ingrese **\$1** y el nombre de dominio personalizado que configuró en [Prerequisites (Requisitos previos)](#cf-s3-prerequisites). Por ejemplo, ingrese **\$1.example.com** y luego, elija **Next (Siguiente)**. 

   Para obtener más información, consulte [Para solicitar un certificado público de ACM (consola)](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html#request-public-console) en la *AWS Certificate ManagerGuía del usuario*.

1. En la página **Select validation method** (Seleccionar método de validación), elija **DNS validation** (Validación por DNS). A continuación, elija **Siguiente**. 

   Si no puede editar su configuración de DNS, recomendamos que utilice la validación de dominios de DNS en lugar de la validación por correo electrónico. La validación por DNS presenta varios beneficios con respecto a la validación por correo electrónico. Para obtener más información, consulte [Opción 1: validación de DNS](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html)en la *Guía del usuario de AWS Certificate Manager*. 

1. (Opcional) En la página **Add tags (Agregar etiquetas)**, etiquete el certificado con metadatos.

1. Elija **Revisar**. 

1. En la página **Review (Revisar)**, verifique que la información en **Domain name (Nombre del dominio)** y **Validation methods (Método de validación)** sea la correcta. Elija **Confirm and request**. 

   En la página **Validation (Validación)**, se muestra que su solicitud se está procesando y que los dominios de certificado se están validando. Los certificados pendientes de validación se encuentran en el estado **Pending validation** (Pendiente de validación). 

1. En la página **Validation (Validación)**, elija la flecha hacia abajo situada a la izquierda del nombre de dominio personalizado y luego, **Create record in Route 53 (Crear registro en Route 53)** para validar la propiedad del dominio a través de DNS.

   Esto agrega un registro CNAME proporcionado por AWS Certificate Manager a la configuración de DNS.

1. En el cuadro de diálogo **Create record in Route 53** (Crear registro en Route 53), elija **Create** (Crear).

   La página **Validation (Validación)** debería mostrar una notificación de estado **Success (Correcto)** en la parte inferior.

1. Seleccione **Continue** (Continuar) para ver la página de lista **Certificates** (Certificados). 

   El **estado** para su nuevo certificado cambiará de **Pending validation (Pendiente de validación)** a **Issued (Emitido)** en 30 minutos.

### Agregue un nombre de dominio alternativo a su distribución de CloudFront.
<a name="cf-s3-step6-custom-domain"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. En el panel de navegación izquierdo, elija **Distributions (Distribuciones)**.

1. Elija el ID de la distribución que creó en el [paso 4](#cf-s3-step3).

1. En la pestaña **General**, vaya a la sección **Settings (Configuración)** y elija **Edit (Editar)**.

1. En la página **Editar configuración**, en **Nombres de dominio alternativo (CNAME): *opcional***, elija **Agregar elemento** para agregar los nombres de dominio personalizados que desee utilizar en la URL del vídeo de S3 servido por esta distribución de CloudFront.

   En este tutorial, por ejemplo, si desea dirigir el tráfico de un subdominio, como `www.example.com`, ingrese el nombre del subdominio (`www`) con el nombre de dominio (`example.com`). En concreto, escriba **www.example.com**. 
**nota**  
El nombre de dominio alternativo (CNAME) que agregue debe estar cubierto por el certificado SSL que previamente adjuntó a la distribución de CloudFront.

1. Para **Custom SSL certificate - *optional* (Certificado de SSL personalizado: opcional)**, elija el certificado de SSL que solicitó anteriormente (por ejemplo, **\$1.example.com**).
**nota**  
Si no ve el certificado de SSL inmediatamente después de solicitarlo, espere 30 minutos y actualice la lista hasta que el certificado de SSL esté disponible.

1. Mantenga la configuración restante establecida en los valores predeterminados. Seleccione **Save changes (Guardar cambios)**. 

1. En la pestaña **General** para la distribución, espere hasta que el valor**Last modified (Última modificación)** cambie de **Deploying (Implementación)** a la marca temporal en que se modificó la distribución por última vez. 

### Cree un registro de DNS para enrutar el tráfico de su nombre de dominio alternativo al nombre de dominio de su distribución de CloudFront
<a name="cf-s3-step6-DNS-record"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Route 53 en [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. En el panel de navegación, elija **Hosted zones** (Zonas alojadas).

1. En la página **Hosted zones (Zonas alojadas)**, elija el nombre de la zona alojada que Route 53 creó por usted en [Prerequisites (Requisitos previos)](#cf-s3-prerequisites) (por ejemplo, **example.com**).

1. Elija **Create record (Crear registro)** y luego utilice el método de **registro de creación rápida**. 

1. Para **Record name (Nombre del registro)**, mantenga el valor del nombre del registro igual que el nombre de dominio alternativo de la distribución de CloudFront que agregó anteriormente.

   En este tutorial, para dirigir el tráfico a un subdominio, como `www.example.com`, introduzca el nombre del subdominio sin el nombre de dominio. Por ejemplo, escriba solo **www** en el campo de texto anterior al nombre de dominio personalizado.

1. En **Tipo de registro**, elija **A - Enruta el tráfico a una dirección IPv4 y algunos recursos de AWS**.

1. Para **Value (Valor)**, elija **Alias** para activar el recurso de alias. 

1. En **Route traffic to (Dirigir tráfico a)**, elija **Alias to Cloudfront distribution (Alias a distribución de CloudFront)** en el menú desplegable. 

1. En el cuadro de búsqueda que dice **Choose distribution (Elegir distribución)**, elija el nombre de dominio de la distribución de CloudFront que creó en el [Paso 4](#cf-s3-step4). 

   Para buscar el nombre de dominio de la distribución de CloudFront, haga lo siguiente:

   1. En una nueva pestaña del navegador, inicie sesión en la Consola de administración de AWS y abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v3/home](https://console.aws.amazon.com/cloudfront/v3/home).

   1. En el panel de navegación izquierdo, elija **Distributions (Distribuciones)**.

   1. En la columna **Origins (Orígenes)**, identifique la distribución de CloudFront; para ello, busque el nombre de origen, que comienza con el bucket de S3 que creó en el [Paso 1](#cf-s3-step1) (por ejemplo, **tutorial-bucket**).

   1. Después de encontrar la distribución de la lista, amplíe la columna **Domain name (Nombre del dominio)** para ver el valor del nombre del dominio para la distribución de CloudFront. 

1. En la página **Create record (Crear registro)** en la consola de Route 53, para el resto de la configuración, conserve los valores predeterminados. 

1. Elija **Create records** (Crear registros).

### Verifique si IPv6 está habilitado para su distribución y cree otro registro de DNS si es necesario
<a name="s3-step6-ipv6"></a>

Si IPv6 está habilitado para la distribución, debe crear otro registro de DNS. 

1. Para comprobar si IPv6 está habilitado para la distribución, haga lo siguiente:

   1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

   1. En el panel de navegación izquierdo, elija **Distributions (Distribuciones)**.

   1. Elija el ID de la distribución de CloudFront que creó en el [Paso 4](#cf-s3-step4).

   1. En la pestaña **General**, en **Settings (Configuración)**, verifique si **IPv6** está configurado como **Enabled (Habilitado)**. 

      Si IPv6 está habilitado para la distribución, debe crear otro registro de DNS.

1. Si IPv6 está habilitado para la distribución, haga lo siguiente para crear un registro de DNS:

   1. Inicie sesión en la Consola de administración de AWS y abra la consola de Route 53 en [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

   1. En el panel de navegación, elija **Hosted zones** (Zonas alojadas).

   1. En la página **Hosted zones (Zonas alojadas)**, elija el nombre de la zona alojada que Route 53 creó por usted en [Prerequisites (Requisitos previos)](#cf-s3-prerequisites) (por ejemplo, **example.com**).

   1. Elija **Create record (Crear registro)** y luego utilice el método de **registro de creación rápida**.

   1. Para **Record name (Nombre del registro)**, en el campo de texto anterior al nombre de dominio personalizado, escriba el mismo valor que escribió cuando creó el registro de DNS IPv4 anterior. Por ejemplo, en este tutorial, para dirigir el tráfico del subdominio `www.example.com`, ingrese solo **www**. 

   1. En **Tipo de registro**, elija **AAAA - Enruta el tráfico a una dirección IPv6 y algunos recursos de AWS**. 

   1. Para **Value (Valor)**, elija **Alias** para activar el recurso de alias. 

   1. En **Route traffic to (Dirigir tráfico a)**, elija **Alias to Cloudfront distribution (Alias a distribución de CloudFront)** en el menú desplegable. 

   1. En el cuadro de búsqueda que dice **Choose distribution (Elegir distribución)**, elija el nombre de dominio de la distribución de CloudFront que creó en el [Paso 4](#cf-s3-step4). 

   1. Mantenga la configuración restante establecida en los valores predeterminados. 

   1. Elija **Crear registros**.

## Paso 7: acceda al video de S3 a través de la distribución CloudFront con el nombre de dominio personalizado
<a name="cf-s3-step7"></a>

Para acceder al video de S3 con la URL personalizada, debe combinar su nombre de dominio alternativo con la ruta al video en el bucket de S3. 

**Para crear una URL personalizada para acceder al video de S3 a través de la distribución de CloudFront**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. En el panel de navegación izquierdo, elija **Distributions (Distribuciones)**.

1. Para obtener el nombre de dominio alternativo de la distribución de CloudFront, haga lo siguiente:

   1. En la columna **Origins (Orígenes)**, busque la distribución de CloudFront correcta; para ello, busque el nombre de origen, que comienza con el bucket de S3 que creó en el [Paso 1](#cf-s3-step1) (por ejemplo, **tutorial-bucket**). 

   1. Después de encontrar la distribución de la lista, amplíe la columna **Alternate domain names (Nombres de dominio alternativos)** para copiar el valor del nombre de dominio alternativo de la distribución de CloudFront.

1. En una nueva pestaña del navegador, pegue el nombre de dominio alternativo de la distribución de CloudFront. 

1. Vuelva a la pestaña anterior del navegador y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/). 

1. Encuentre la ruta a su video de S3, como se explica en el [Paso 5](#cf-s3-step5). 

1. Vuelva a la pestaña del navegador donde pegó previamente el nombre de dominio alternativo, ingrese una barra diagonal (**/**) y pegue la ruta al video de S3 (por ejemplo, `sample.mp4`). 

   Ahora, su video de S3 es accesible públicamente y está alojado a través de CloudFront en una URL personalizada similar a la siguiente: 

   ```
   https://CloudFront distribution alternate domain name/Path to the S3 video
   ```

   Reemplace el *nombre de dominio alternativo de distribución de CloudFront* y la *ruta al video de S3* con los valores apropiados. La dirección URL de ejemplo es: **https://www.example.com/sample.mp4**.

## (Opcional) Paso 8: vea los datos sobre las solicitudes recibidas por su distribución de CloudFront
<a name="cf-s3-step8"></a>

**Para ver los datos sobre las solicitudes recibidas por la distribución de CloudFront**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. En el panel de navegación izquierdo, en **Reports & analytics (Informes y análisis)**, elija los informes de la consola, que van desde **Cache statistics (Estadísticas de caché)**, **Popular objects (Objetos populares)**, **Top Referrers (Principales referentes)**, **Usage (Uso)** y **Viewers (Usuarios)**. 

   Puede filtrar cada panel de informes. Para obtener más información, consulte [Informes de CloudFront en la consola](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/reports.html) en la *Guía para desarrolladores de Amazon CloudFront*. 

1. Para filtrar datos, elija el ID de la distribución de CloudFront que creó en el [paso 4](#cf-s3-step4).

## Paso 9: limpieza
<a name="cf-s3-step9"></a>

Si alojó un video de streaming de S3 mediante CloudFront y Route 53 solo como ejercicio de aprendizaje, elimine los recursos de AWS que asignó para dejar de acumular cargos.

**nota**  
Cuando registra un dominio, cuesta dinero inmediatamente y es irreversible. Puede elegir no renovar automáticamente el dominio, pero paga por adelantado y lo posee durante el año. Para obtener más información, consulte [Renovación de un nuevo dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) en la *Guía para desarrolladores de Amazon Route 53*. 

**Topics**
+ [Eliminar la distribución de CloudFront](#cf-s3-step9-delete-cf)
+ [Eliminar el registro de DNS](#cf-s3-step9-delete-dns)
+ [Eliminar la zona alojada pública de su dominio personalizado](#cf-s3-step9-delete-hosted-zone)
+ [Eliminar el nombre de dominio personalizado de Route 53](#cf-s3-step9-delete-domain)
+ [Eliminar el video original en el bucket de origen de S3](#cf-s3-step9-delete-video)
+ [Eliminar el bucket de origen de S3](#cf-s3-step9-delete-bucket)

### Eliminar la distribución de CloudFront
<a name="cf-s3-step9-delete-cf"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. En el panel de navegación izquierdo, elija **Distributions (Distribuciones)**.

1. En la columna **Origins (Orígenes)**, busque la distribución de CloudFront correcta; para ello, busque el nombre de origen, que comienza con el bucket de S3 que creó en el [Paso 1](#cf-s3-step1) (por ejemplo, **tutorial-bucket**). 

1. Antes de eliminar una distribución de CloudFront, debe desactivarla.
   + Si el valor de la columna **Status (Estado)** está como **Enabled (Habilitado)** y el valor **Last modified (Última modificación)** es la marca de tiempo en la que se modificó la distribución por última vez, desactive la distribución antes de eliminarla.
   + Si el valor de **Estado** es **Habilitado** y el valor de **Última modificación** es **Implementación**, espere hasta que el valor de **Estado** cambie a la marca de tiempo del momento en que se modificó la distribución por última vez. A continuación, siga con el paso 4 para deshabilitar la distribución antes de eliminarla.

1. Para desactivar la distribución de CloudFront, haga lo siguiente:

   1. En la lista **Distributions (Distribuciones)**, seleccione la casilla de verificación junto al ID de la distribución que desea eliminar. 

   1. Para deshabilitar la distribución, elija **Disable (Deshabilitar)** y luego, **Disable (Deshabilitar)** para confirmar la operación.

      Si desactiva una distribución que tiene asociado un nombre de dominio alternativo, CloudFront deja de aceptar tráfico para ese nombre de dominio (por ejemplo: `www.example.com`), aunque haya otra distribución que tenga un nombre de dominio alternativo con un carácter comodín (`*`) que coincida con el mismo dominio (por ejemplo: `*.example.com`).

   1. El valor de la columna **State** (Estado) cambia inmediatamente a **Disabled** (Deshabilitada). Espere hasta que el valor **Last modified (Última modificación)** cambie de **Deploying (Implementación)** a la marca temporal en que se modificó la distribución por última vez. 

      Dado que CloudFront debe propagar este cambio a todas las ubicaciones de borde, es posible que tenga que esperar unos minutos hasta que finalice la actualización para poder **eliminar** la distribución. 

1. Para eliminar la distribución desactivada, haga lo siguiente:

   1. Elija la casilla de verificación junto al ID de la distribución que desea eliminar.

   1. Elija **Delete (Eliminar)** y luego, **Delete (Eliminar)** para confirmar la acción.

### Eliminar el registro de DNS
<a name="cf-s3-step9-delete-dns"></a>

Si desea eliminar la zona alojada pública del dominio (incluido el registro de DNS), consulte [Eliminar la zona alojada pública de su dominio personalizado](#cf-s3-step9-delete-hosted-zone) en la *Guía para desarrolladores de Amazon Route 53*. Si solo quiere eliminar el registro de DNS creado en el [Paso 6](#cf-s3-step6)), haga lo siguiente:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Route 53 en [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. En el panel de navegación, elija **Hosted zones** (Zonas alojadas).

1. En la página **Hosted zones (Zonas alojadas)**, elija el nombre de la zona alojada que Route 53 creó por usted en [Prerequisites (Requisitos previos)](#cf-s3-prerequisites) (por ejemplo, **example.com**).

1. En la lista de registros, seleccione la casilla de verificación junto a los registros que desea eliminar (los registros que creó en el [Paso 6](#cf-s3-step6)). 
**nota**  
No puede eliminar los registros que tengan el valor **NS** o **SOA** en **Type (Tipo)**. 

1. Seleccione la opción **Delete Record Set** (Eliminar conjunto de registros). 

1. Para confirmar la eliminación, elija **Delete** (Eliminar).

   Los cambios en los registros tardan tiempo en propagarse a los servidores DNS de Route 53. En la actualidad, el único modo de verificar si los cambios se propagan es utilizar la [acción de la API GetChange](https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html). Por lo general, los cambios se propagan a todos los servidores de Route 53 en un plazo de 60 segundos.

### Eliminar la zona alojada pública de su dominio personalizado
<a name="cf-s3-step9-delete-hosted-zone"></a>

**aviso**  
Si desea conservar el registro del dominio, pero desea detener el enrutamiento del tráfico de Internet a su sitio web o aplicación web, se recomienda eliminar los registros en la zona alojada (como se describe en la sección anterior) en lugar de eliminar la zona alojada.   
Además, si elimina una zona alojada, alguien podría usar el dominio y dirigir el tráfico a sus propios recursos mediante su nombre de dominio.  
Además, la eliminación de una zona alojada es una acción que no se puede deshacer. Debe crear una nueva zona hospedada y actualizar los servidores de nombres de su registro de dominio, proceso que puede requerir hasta 48 horas en surtir efecto.   
Si desea hacer que el dominio no esté disponible en Internet, puede transferir el servicio DNS a un servicio DNS gratuito y eliminar la zona alojada de Route 53. Esto evita que las futuras consultas DNS puedan dirigirse erróneamente.   
Si el dominio está registrado en Route 53, consulte [Adición o modificación de servidores de nombres y registros de conexión de un dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-name-servers-glue-records.html) en la *Guía para desarrolladores de Amazon Route 53* a fin de obtener información para reemplazar los servidores de nombres de Route 53 con los servidores de nombres del nuevo servicio DNS. 
Si el dominio está registrado en otro registrador, utilice el método proporcionado por el registrador para cambiar servidores de nombres en el dominio. 
Si desea eliminar una zona hospedada para un subdominio (`www.example.com`), no es necesario cambiar servidores de nombres del dominio (`example.com`).

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Route 53 en [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. En el panel de navegación, elija **Hosted zones** (Zonas alojadas).

1. En la página **Hosted Zones**, elija la fila de la zona hospedada que desea eliminar.

1. En la pestaña **Records** (Registros) de su zona alojada, confirme que la zona alojada que desea eliminar solo contiene un registro **NS** y otro **SOA**.

   Si contiene registros adicionales, elimínelos.

   Si ha creado cualquier registros NS para subdominios en la zona hospedada, elimine también esos registros.

1. En la pestaña **DNSSEC signing** (Firma de DNSSEC) de su zona alojada, desactive la firma de DNNSSEC si estaba habilitada. Para obtener más información, consulte [Disabling DNSSEC signing (Desactivación de la firma de DNSSEC)](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-disable.html) en la *Guía para desarrolladores de Amazon Route 53*.

1. En la parte superior de la página de detalles de la zona alojada, elija **Delete zone (Eliminar zona)**.

1. Ingrese **delete** para confirmar la eliminación y luego, elija **Delete (Eliminar)**.

### Eliminar el nombre de dominio personalizado de Route 53
<a name="cf-s3-step9-delete-domain"></a>

Para la mayoría de los dominios de nivel superior (TLD), puede eliminar el registro si ya no lo quiere. Si elimina un registro de nombre de dominio de Route 53 antes de la fecha de vencimiento programada, AWS no le reembolsará la cuota de registro. Para obtener más información, consulte [Eliminar un registro de nombre de dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-delete.html) en la *Guía para desarrolladores de Amazon Route 53*.

**importante**  
Si desea transferir el dominio entre Cuentas de AWS o transferir el dominio a otro registrador, no elimine un dominio y espere a volver a registrarlo de inmediato. En su lugar, consulte la documentación aplicable en la *Guía para desarrolladores de Amazon Route 53*:  
[Transferencia de un dominio a otra Cuenta de AWS](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-between-aws-accounts.html)
[Transferencia de un dominio de Amazon Route 53 a otro registrador](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-from-route-53.html)

### Eliminar el video original en el bucket de origen de S3
<a name="cf-s3-step9-delete-video"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Bucket name (Nombre del bucket)**, elija el nombre del bucket al que ha cargado el video en el [Paso 2](#cf-s3-step2) (por ejemplo: **tutorial-bucket**).

1. En la pestaña **Objects (Objetos)**, seleccione la casilla de verificación junto al nombre del objeto que desea eliminar (por ejemplo, `sample.mp4`).

1. Elija **Eliminar**. 

1. En **Permanently delete objects? (¿Borrar objetos de forma permanente?)**, ingrese **permanently delete** para confirmar que desea eliminar este objeto.

1. Elija **Eliminar objetos**.

### Eliminar el bucket de origen de S3
<a name="cf-s3-step9-delete-bucket"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el botón de opción junto al nombre del bucket que creó en el [Paso 1](#cf-s3-step1) (por ejemplo, **tutorial-bucket**).

1. Elija **Eliminar**.

1. En la página **Eliminar bucket**, confirme que desea eliminar el bucket introduciendo el nombre del bucket en el campo de texto y, a continuación, elija **Eliminar bucket**.

## Siguientes pasos
<a name="cf-s3-next-steps"></a>

Después de completar este tutorial, puede explorar más a fondo los siguientes casos de uso relacionados:
+ Transcodifique los videos de S3 a los formatos de streaming necesarios para un televisor o dispositivo conectado en particular antes de alojar estos videos con una distribución de CloudFront.

  Para utilizar las operaciones por lotes de Amazon S3, AWS Lambda y AWS Elemental MediaConvert para transcodificar por lotes una recopilación de vídeos a una variedad de formatos de medios de salida, consulte [Tutorial: vídeos de transcodificación por lotes con Operaciones por lotes de S3](tutorial-s3-batchops-lambda-mediaconvert-video.md). 
+ Aloje otros objetos almacenados en S3, como imágenes, audio, gráficos animados, hojas de estilo, HTML, JavaScript, aplicaciones React, etc., mediante CloudFront y Route 53.

  Para ver un ejemplo, consulte [Tutorial: Configuración de un sitio web estático mediante un dominio personalizado registrado con Route 53](website-hosting-custom-domain-walkthrough.md) y [Aceleración de su sitio web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md). 
+ Use [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration) para configurar transferencias de archivos rápidas y seguras. Aceleración de transferencias puede acelerar la carga de vídeo en su bucket de S3 para transferir a larga distancia vídeos más grandes. Transfer Acceleration mejora el rendimiento de transferencia al enrutar el tráfico a través de las ubicaciones periféricas distribuidas globalmente de CloudFront y las redes troncales de AWS. También utiliza optimizaciones de protocolo de red. Para obtener más información, consulte [Configuración de transferencias de archivos rápidas y seguras con Aceleración de transferencias de Amazon S3](transfer-acceleration.md). 

# Tutorial: configuración de un sitio web estático en Amazon S3
<a name="HostingWebsiteOnS3Setup"></a>

**importante**  
Amazon S3 aplica ahora el cifrado del servidor con claves administradas por Amazon S3 (SSE-S3) como el nivel básico de cifrado para cada bucket de Amazon S3. Desde el 5 de enero de 2023, todas las cargas de objetos nuevos a Amazon S3 se cifran automáticamente sin costo adicional y sin afectar al rendimiento. El estado de cifrado automático para la configuración de cifrado predeterminada del bucket de S3 y para cargas de objetos nuevos está disponible en registros de CloudTrail, inventario de S3, Lente de almacenamiento de S3, la consola de Amazon S3 y como encabezado de respuesta a la API de Amazon S3 adicional en la AWS CLI y los AWS SDK. Para obtener más información, consulte [Preguntas frecuentes del cifrado predeterminado](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Puede configurar un bucket de Amazon S3 para que funcione como un sitio web. En este ejemplo se muestran los pasos para el alojamiento de un sitio web en Amazon S3.

**importante**  
Para el siguiente tutorial hay que desactivar la opción Bloqueo de acceso público. Le recomendamos que deje activada la opción Bloqueo de acceso público. Si desea conservar las cuatro configuraciones de Bloqueo de acceso público activadas y alojar un sitio web estático, puede utilizar el control de acceso de origen (OAC) de Amazon CloudFront. Amazon CloudFront proporciona las capacidades necesarias para configurar un sitio web estático seguro. Los sitios web estáticos de Amazon S3 solo admiten puntos de conexión HTTP. Amazon CloudFront utiliza el almacenamiento duradero de Amazon S3 a la vez que proporciona encabezados de seguridad adicionales, como HTTPS. HTTPS agrega seguridad al cifrar una solicitud HTTP normal y proteger contra ataques cibernéticos comunes. Para obtener información, consulte [Introducción a un sitio web estático seguro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html) en la *guía para desarrolladores de Amazon CloudFront*. 

**Topics**
+ [Paso 1: crear un bucket](#step1-create-bucket-config-as-website)
+ [Paso 2: habilitar el alojamiento de un sitio web estático](#step2-create-bucket-config-as-website)
+ [Paso 3: editar la configuración de bloqueo de acceso público](#step3-edit-block-public-access)
+ [Paso 4: agregar una política de bucket para que el contenido del bucket sea público](#step4-add-bucket-policy-make-content-public)
+ [Paso 5: configurar un documento de índice](#step5-upload-index-doc)
+ [Paso 6: configurar un documento de error](#step6-upload-error-doc)
+ [Paso 7: probar el punto de conexión del sitio web](#step7-test-web-site)
+ [Paso 8: eliminar](#getting-started-cleanup-s3-website-overview)

## Paso 1: crear un bucket
<a name="step1-create-bucket-config-as-website"></a>

Las siguientes instrucciones proporcionan información general sobre cómo crear los buckets para el alojamiento de sitios web. Para obtener instrucciones detalladas paso a paso sobre la creación de un bucket, consulte [Creación de un bucket de uso general](create-bucket-overview.md).

**Para crear un bucket**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Elija **Create bucket (Crear bucket)**.

1. Introduzca el **Bucket name** (Nombre del bucket) (por ejemplo: **example.com**).

1. Elija la región en la que desea crear el bucket. 

   Elija una región que esté cercana geográficamente para minimizar la latencia y los costos, o para cumplir los requisitos normativos. La región que elija determina el punto de conexión de sitio web de Amazon S3. Para obtener más información, consulte [Puntos de enlace de sitio web](WebsiteEndpoints.md).

1. Para aceptar la configuración predeterminada y crear el bucket, elija **Create (Crear)**.

## Paso 2: habilitar el alojamiento de un sitio web estático
<a name="step2-create-bucket-config-as-website"></a>

Después de crear un bucket, puede habilitar el alojamiento de sitios web estático para su bucket. Puede crear un nuevo bucket o utilizar un bucket existente.

**Para habilitar el alojamiento estático de sitios web**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, seleccione el nombre del bucket para el que desea habilitar el alojamiento de sitios web estáticos.

1. Seleccione **Propiedades**.

1. Elija **Alojamiento de sitios web estáticos** y luego **Editar**.

1. Elija **Usar este bucket para alojar un sitio web**. 

1. En **Alojamiento de sitios web estáticos**, elija **Habilitar**.

1. En **Documento de índice**, escriba el nombre de archivo del documento de índice, normalmente `index.html`. 

   El nombre del documento de índice distingue entre mayúsculas y minúsculas y debe coincidir exactamente con el nombre del archivo del documento de índice HTML que tiene previsto cargar en el bucket de S3. Al configurar un bucket para el alojamiento de sitios web, debe especificar un documento de índice. Amazon S3 devuelve este documento de índice cuando se reciben solicitudes en el dominio raíz o en cualquiera de las subcarpetas. Para obtener más información, consulte [Configurar un documento de índice](IndexDocumentSupport.md).

1. Si desea proporcionar su propio documento de error personalizado para los errores de clase 4XX, escriba el nombre de archivo del documento de error personalizado en **Documento de error**. 

   El nombre del documento de error distingue entre mayúsculas y minúsculas y debe coincidir exactamente con el nombre del archivo del documento de error HTML que tiene previsto cargar en el bucket de S3. Si no especifica un documento de error personalizado y se produce un error, Amazon S3 devuelve un documento de error HTML predeterminado. Para obtener más información, consulte [Configurar un documento de error personalizado](CustomErrorDocSupport.md).

1. (Opcional) Si desea especificar reglas de redireccionamiento avanzadas, en **Reglas de redireccionamiento**, especifique JSON para describir las reglas.

   Por ejemplo, puede dirigir condicionalmente las solicitudes según nombres de clave de objeto o prefijos específicos en la solicitud. Para obtener más información, consulte [Configurar reglas de redireccionamiento para utilizar redireccionamiento condicional avanzado](how-to-page-redirect.md#advanced-conditional-redirects).

1. Elija **Guardar cambios**.

   Amazon S3 permite activar el alojamiento de sitios web estáticos para su bucket. En la parte inferior de la página, en **Alojamiento de sitios web estáticos**, verá el punto de conexión del sitio web para su bucket.

1. En **Alojamiento de sitios web estáticos**, anote el valor de **Punto de conexión**.

   **Punto de conexión** es el punto de conexión del sitio web de Amazon S3 para el bucket. Cuando termine de configurar el bucket como un sitio web estático, puede utilizar este punto de conexión para probar el sitio web.

## Paso 3: editar la configuración de bloqueo de acceso público
<a name="step3-edit-block-public-access"></a>

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](access-control-block-public-access.md) 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.

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

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

1. Elija **Permisos**.

1. En **Bloquear acceso público (configuración de bucket)**, elija **Editar**.

1. Desactive **Bloquear *todo el* acceso público** y elija **Guardar cambios**.  
![\[La consola de Amazon S3, que muestra la configuración del bucket de acceso público al bloque.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   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](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) 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 4: agregar una política de bucket para que el contenido del bucket sea público
<a name="step4-add-bucket-policy-make-content-public"></a>

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?](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/) 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.

1. Elija **Permisos**.

1. En **Política de bucket**, elija **Editar**.

1. Para conceder acceso público de lectura a su sitio web, copie la siguiente política de bucket y péguela en el **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/*"
               ]
           }
       ]
   }
   ```

1. 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.

1. 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?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)

   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.

## Paso 5: configurar un documento de índice
<a name="step5-upload-index-doc"></a>

Cuando habilite el alojamiento de sitio web estático para su bucket, escriba el nombre del documento de índice (por ejemplo: )., **index.html**). Después de habilitar el alojamiento de sitio web estático para el bucket, cargue un archivo HTML con el nombre de este documento de índice en el bucket.

**Para configurar el documento de índice**

1. Cree un archivo `index.html`.

   Si no tiene un archivo `index.html`, puede usar el siguiente HTML para crear uno:

   ```
   <html xmlns="http://www.w3.org/1999/xhtml" >
   <head>
       <title>My Website Home Page</title>
   </head>
   <body>
     <h1>Welcome to my website</h1>
     <p>Now hosted on Amazon S3!</p>
   </body>
   </html>
   ```

1. Guarde el archivo de índice localmente.

   El nombre del archivo de documento de índice debe coincidir exactamente con el nombre del documento de índice que especifique en el cuadro de diálogo **Alojamiento de sitio web estático**. El nombre del documento de índice distingue entre mayúsculas y minúsculas. Por ejemplo, si escribe `index.html` en el nombre del **Documento de índice** en el cuadro de diálogo **Alojamiento de sitios web estáticos**, el nombre del archivo de documento de índice también debe ser `index.html` y no `Index.html`.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, elija el nombre del bucket que desea utilizar para alojar un sitio web estático.

1. Habilite el alojamiento de sitios web estáticos para su bucket e introduzca el nombre exacto del documento de índice (por ejemplo: )., `index.html`). Para obtener más información, consulte [Habilitar el alojamiento de sitios web](EnableWebsiteHosting.md).

   Después de habilitar el alojamiento estático del sitio web, continúe con el paso 6. 

1. Para cargar el documento de índice en el bucket, realice una de las siguientes acciones:
   + Arrastre y suelte el archivo de índice en la lista de buckets de la consola.
   + Elija **Cargar** y siga las instrucciones para elegir y cargar el archivo de índice.

   Para obtener instrucciones paso a paso, consulte [Carga de objetos](upload-objects.md).

1. (Opcional) Cargue otros contenidos del sitio web en su bucket.

## Paso 6: configurar un documento de error
<a name="step6-upload-error-doc"></a>

Cuando habilite el alojamiento de sitios webs estáticos para el bucket, escriba el nombre del documento de error (por ejemplo: )., **404.html**). Después de habilitar el alojamiento de sitios web estáticos para el bucket, cargue un archivo HTML con el nombre de este documento de error en el bucket.

**Para configurar un documento de error,**

1. Cree un documento de error, por ejemplo `404.html`.

1. Guarde el archivo de documento de error localmente.

   El nombre del documento de error distingue mayúsculas y minúsculas y debe coincidir exactamente con el nombre que escriba al habilitar el alojamiento de sitios web estáticos. Por ejemplo, si escribe `404.html` en el nombre del **Documento de error** en el cuadro de diálogo **Alojamiento de sitios web estáticos**, el nombre del archivo del documento de error también debe ser `404.html`.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, elija el nombre del bucket que desea utilizar para alojar un sitio web estático.

1. Habilite el alojamiento de sitios web estáticos para su bucket y escriba el nombre exacto del documento de error (por ejemplo: )., `404.html`). Para obtener más información, consulte [Habilitar el alojamiento de sitios web](EnableWebsiteHosting.md) y [Configurar un documento de error personalizado](CustomErrorDocSupport.md).

   Después de habilitar el alojamiento estático del sitio web, continúe con el paso 6. 

1. Para cargar el documento de error en el bucket, realice una de las siguientes acciones:
   + Arrastre y suelte el archivo del documento de error a la lista de buckets de la consola.
   + Elija **Cargar** y siga las instrucciones para elegir y cargar el archivo de índice.

   Para obtener instrucciones paso a paso, consulte [Carga de objetos](upload-objects.md).

## Paso 7: probar el punto de conexión del sitio web
<a name="step7-test-web-site"></a>

Después de configurar el alojamiento de sitios web estáticos para el bucket, puede probar el punto de conexión del sitio web.

**nota**  
Amazon S3 no admite el acceso HTTPS al sitio web. Si desea usar HTTPS, puede emplear Amazon CloudFront para atender a un sitio web estático alojado en Amazon S3.  
Para obtener más información, consulte [Cómo usar CloudFront para dar servicio a un sitio web estático alojado en Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/) y [Requerir HTTPS para la comunicación entre lectores y CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html).

1. En **Buckets**, elija el nombre del bucket.

1. Seleccione **Properties (Propiedades)**.

1. En la parte inferior de la página, en **Static website hosting (Alojamiento de sitios web estáticos)**, elija el **punto de conexión del sitio web del bucket**.

   El documento de índice se abre en una ventana independiente del explorador.

Ahora puede alojar un sitio web en Amazon S3. Este sitio web está disponible en el punto de conexión del sitio web de Amazon S3. Sin embargo, es posible que tenga un dominio, como `example.com`, que desee utilizar para distribuir el contenido del sitio web creado. Es posible que también desee utilizar el soporte para dominio raíz de Amazon S3 para distribuir las solicitudes para `http://www.example.com` y `http://example.com`. Esto requiere pasos adicionales. Para ver un ejemplo, consulte [Tutorial: Configuración de un sitio web estático mediante un dominio personalizado registrado con Route 53](website-hosting-custom-domain-walkthrough.md). 

## Paso 8: eliminar
<a name="getting-started-cleanup-s3-website-overview"></a>

Si creó un sitio web estático solo como parte de un ejercicio de aprendizaje, elimine los recursos de AWS que asignó para dejar de acumular cargos. Después de que haya eliminado los recursos de AWS, el sitio web ya no estará disponible. Para obtener más información, consulte [Eliminación de un bucket de uso general](delete-bucket.md).

# Tutorial: Configuración de un sitio web estático mediante un dominio personalizado registrado con Route 53
<a name="website-hosting-custom-domain-walkthrough"></a>

Suponga que desea alojar un sitio web estático en Amazon S3. Ha registrado un dominio con Amazon Route 53 (por ejemplo: `example.com`) y desea que las solicitudes de contenido de Amazon S3 `http://www.example.com` y `http://example.com` se envíen desde él. Puede utilizar esta explicación para aprender a alojar un sitio web estático y crear redirecciones en Amazon S3 para un sitio web con un nombre de dominio personalizado registrado en Route 53. Puede trabajar con un sitio web existente que desee alojar en Amazon S3, o bien usar esta explicación para comenzar desde cero. 

Una vez completada esta explicación, puede utilizar opcionalmente Amazon CloudFront para mejorar el rendimiento de su sitio web. Para obtener más información, consulte [Aceleración de su sitio web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md).

**nota**  
Los puntos de enlace del sitio web de Amazon S3 no admiten HTTPS ni puntos de acceso. Si desea usar HTTPS, puede emplear Amazon CloudFront para atender a un sitio web estático alojado en Amazon S3.  
Para ver un tutorial sobre cómo alojar su contenido de forma segura con CloudFront y Amazon S3, consulte [Tutorial: Alojamiento de video en streaming bajo demanda con Amazon S3, Amazon CloudFront y Amazon Route 53](tutorial-s3-cloudfront-route53-video-streaming.md). Para obtener más información, consulte [Cómo usar CloudFront para dar servicio a un sitio web estático alojado en Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/) y [Requerir HTTPS para la comunicación entre lectores y CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html).

**Automatización de la configuración del sitio web estático con una plantilla de CloudFormation**  
Puede utilizar una plantilla de CloudFormation para automatizar la configuración de su sitio web estático. La plantilla de CloudFormation configura los componentes que tiene que alojar en un sitio web estático seguro para que pueda centrarse más en el contenido de su sitio web y menos en la configuración de componentes.

La plantilla de CloudFormation incluye los siguientes componentes:
+ Amazon S3: crea un bucket de Amazon S3 para alojar su sitio web estático.
+ CloudFront: crea una distribución de CloudFront para acelerar su sitio web estático.
+ Lambda@Edge: usa [Lambda@Edge](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html) para agregar encabezados de seguridad a cada respuesta del servidor. Los encabezados de seguridad son un grupo de encabezados en la respuesta del servidor web que indican a los navegadores web que tomen precauciones de seguridad adicionales. Para obtener más información, consulte esta entrada de blog: [Adding HTTP security headers using Lambda@Edge and Amazon CloudFront](https://aws.amazon.com/blogs/networking-and-content-delivery/adding-http-security-headers-using-lambdaedge-and-amazon-cloudfront/).

Esta plantilla de CloudFormation está disponible para que pueda descargarla y utilizarla. Para obtener información e instrucciones, consulte [Introducción a un sitio web estático seguro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html) en la *guía para desarrolladores de Amazon CloudFront*.

**Topics**
+ [Antes de empezar](#root-domain-walkthrough-before-you-begin)
+ [Paso 1: registrar un dominio personalizado con Route 53](#website-hosting-custom-domain-walkthrough-domain-registry)
+ [Paso 2: crear dos buckets](#root-domain-walkthrough-create-buckets)
+ [Paso 3: configurar el bucket de dominio raíz para el alojamiento de sitios web](#root-domain-walkthrough-configure-bucket-aswebsite)
+ [Paso 4: configurar el bucket de subdominio para el redireccionamiento del sitio web](#root-domain-walkthrough-configure-redirect)
+ [Paso 5: configurar registros para el tráfico del sitio web](#root-domain-walkthrough-configure-logging)
+ [Paso 6: cargar índice y contenido del sitio web](#upload-website-content)
+ [Paso 7: cargar un documento de error](#configure-error-document-root-domain)
+ [Paso 8: editar la configuración del S3 Block Public Access](#root-domain-walkthrough-configure-bucket-permissions)
+ [Paso 9: adjuntar una política de bucket](#add-bucket-policy-root-domain)
+ [Paso 10: probar el punto de conexión del dominio](#root-domain-walkthrough-test-website)
+ [Paso 11: agregar registros de alias para su dominio y subdominio](#root-domain-walkthrough-add-record-to-hostedzone)
+ [Paso 12: probar el sitio web](#root-domain-testing)
+ [Aceleración de su sitio web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md)
+ [Limpiar los recursos de ejemplo](getting-started-cleanup.md)

## Antes de empezar
<a name="root-domain-walkthrough-before-you-begin"></a>

A medida que siga los pasos de este ejemplo, trabajará con los siguientes servicios:

**Amazon Route 53**: puede utilizar Route 53 para registrar dominios y para definir a dónde quiere dirigir el tráfico de Internet para su dominio. El ejemplo muestra cómo crear registros de alias de Route 53 que dirigen el tráfico para su dominio (`example.com`) y subdominio (`www.example.com`) a un bucket de Amazon S3 que contiene un archivo HTML.

**Amazon S3**: puede utilizar Amazon S3 para crear buckets, cargar una página de sitio web de muestra, configurar permisos para que todos puedan ver el contenido y configurar los buckets para el alojamiento en el sitio web.

## Paso 1: registrar un dominio personalizado con Route 53
<a name="website-hosting-custom-domain-walkthrough-domain-registry"></a>

Si aún no tiene un nombre de dominio registrado, como `example.com`, registre uno con Route 53. Para obtener más información, consulte [Renovación de un nuevo dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) en la *Guía para desarrolladores de Amazon Route 53*. Después de registrar su nombre de dominio, puede crear y configurar sus buckets de Amazon S3 para el alojamiento de sitios web. 

## Paso 2: crear dos buckets
<a name="root-domain-walkthrough-create-buckets"></a>

Para admitir solicitudes desde el dominio raíz y del subdominio, debe crear dos buckets:
+ **Bucket de dominio** – `example.com`
+ **Bucket de subdominio** – `www.example.com` 

Estos nombres de bucket deben coincidir exactamente con su nombre de dominio. En este ejemplo, el nombre de dominio es `example.com`. Alojará su contenido fuera del bucket del dominio raíz (`example.com`). Creará una solicitud de redireccionamiento para el bucket de subdominio (`www.example.com`). Si alguien escribe `www.example.com` en su navegador, se redirigen a `example.com` y ven el contenido que está alojado en el bucket de Amazon S3 con ese nombre. 

**Para crear los buckets para el alojamiento de sitios web**

Las siguientes instrucciones proporcionan información general sobre cómo crear los buckets para el alojamiento de sitios web. Para obtener instrucciones detalladas paso a paso sobre la creación de un bucket, consulte [Creación de un bucket de uso general](create-bucket-overview.md).

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Cree el bucket del dominio raíz: 

   1. En la barra de navegación de la parte superior de la página, elija el nombre de la Región de AWS que aparece. A continuación, en Región, elija la región en la que desea crear un bucket. 
**nota**  
Puede seleccionar una región cercana para minimizar la latencia y los costos, así como para satisfacer los requisitos normativos. Los objetos almacenados en una región nunca abandonarán esa región salvo que usted los transfiera de forma específica a otra. Para una lista de Regiones de AWS de Amazon S3, consulte [Puntos de conexión de Servicio de AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) en la *Referencia general de Amazon Web Services*.

   1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

   1. Elija **Crear bucket**. Se abrirá la página **Crear bucket**.

   1. Introduzca el **Bucket name** (Nombre del bucket) (por ejemplo: **example.com**).

   1. Elija la región en la que desea crear el bucket. 

      Elija una región que esté cercana geográficamente para minimizar la latencia y los costos, o para cumplir los requisitos normativos. La región que elija determina el punto de conexión de sitio web de Amazon S3. Para obtener más información, consulte [Puntos de enlace de sitio web](WebsiteEndpoints.md).

   1. Para aceptar la configuración predeterminada y crear el bucket, elija **Create (Crear)**.

1. Cree el bucket del subdominio: 

   1. Elija **Create bucket (Crear bucket)**.

   1. Introduzca el **Bucket name** (Nombre del bucket) (por ejemplo: **www.example.com**).

   1. Elija la región en la que desea crear el bucket. 

      Elija una región que esté cercana geográficamente para minimizar la latencia y los costos, o para cumplir los requisitos normativos. La región que elija determina el punto de conexión de sitio web de Amazon S3. Para obtener más información, consulte [Puntos de enlace de sitio web](WebsiteEndpoints.md).

   1. Para aceptar la configuración predeterminada y crear el bucket, elija **Create (Crear)**.

En el paso siguiente, configure `example.com` para el alojamiento de sitio web. 

## Paso 3: configurar el bucket de dominio raíz para el alojamiento de sitios web
<a name="root-domain-walkthrough-configure-bucket-aswebsite"></a>

En este paso, configurará el bucket de dominio raíz (`example.com`) como un sitio web. Este bucket incluirá el contenido de su sitio web. Al configurar un bucket para el alojamiento de sitios web, puede acceder al sitio web a través de [Puntos de enlace de sitio web](WebsiteEndpoints.md). 

**Para habilitar el alojamiento estático de sitios web**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, seleccione el nombre del bucket para el que desea habilitar el alojamiento de sitios web estáticos.

1. Seleccione **Propiedades**.

1. Elija **Alojamiento de sitios web estáticos** y luego **Editar**.

1. Elija **Usar este bucket para alojar un sitio web**. 

1. En **Alojamiento de sitios web estáticos**, elija **Habilitar**.

1. En **Documento de índice**, escriba el nombre de archivo del documento de índice, normalmente `index.html`. 

   El nombre del documento de índice distingue entre mayúsculas y minúsculas y debe coincidir exactamente con el nombre del archivo del documento de índice HTML que tiene previsto cargar en el bucket de S3. Al configurar un bucket para el alojamiento de sitios web, debe especificar un documento de índice. Amazon S3 devuelve este documento de índice cuando se reciben solicitudes en el dominio raíz o en cualquiera de las subcarpetas. Para obtener más información, consulte [Configurar un documento de índice](IndexDocumentSupport.md).

1. Si desea proporcionar su propio documento de error personalizado para los errores de clase 4XX, escriba el nombre de archivo del documento de error personalizado en **Documento de error**. 

   El nombre del documento de error distingue entre mayúsculas y minúsculas y debe coincidir exactamente con el nombre del archivo del documento de error HTML que tiene previsto cargar en el bucket de S3. Si no especifica un documento de error personalizado y se produce un error, Amazon S3 devuelve un documento de error HTML predeterminado. Para obtener más información, consulte [Configurar un documento de error personalizado](CustomErrorDocSupport.md).

1. (Opcional) Si desea especificar reglas de redireccionamiento avanzadas, en **Reglas de redireccionamiento**, especifique JSON para describir las reglas.

   Por ejemplo, puede dirigir condicionalmente las solicitudes según nombres de clave de objeto o prefijos específicos en la solicitud. Para obtener más información, consulte [Configurar reglas de redireccionamiento para utilizar redireccionamiento condicional avanzado](how-to-page-redirect.md#advanced-conditional-redirects).

1. Elija **Guardar cambios**.

   Amazon S3 permite activar el alojamiento de sitios web estáticos para su bucket. En la parte inferior de la página, en **Alojamiento de sitios web estáticos**, verá el punto de conexión del sitio web para su bucket.

1. En **Alojamiento de sitios web estáticos**, anote el valor de **Punto de conexión**.

   **Punto de conexión** es el punto de conexión del sitio web de Amazon S3 para el bucket. Cuando termine de configurar el bucket como un sitio web estático, puede utilizar este punto de conexión para probar el sitio web.

Después de [editar la configuración de bloqueo de acceso público](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html#root-domain-walkthrough-configure-bucket-permissions) y [agregar una política de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html#add-bucket-policy-root-domain) que permita el acceso de lectura pública, puede utilizar el punto de conexión del sitio web para acceder a su sitio web. 

En el paso siguiente, configure su subdominio (`www.example.com`) para redirigir las solicitudes a su dominio (`example.com`). 

## Paso 4: configurar el bucket de subdominio para el redireccionamiento del sitio web
<a name="root-domain-walkthrough-configure-redirect"></a>

Una vez que ha configurado su bucket de dominio raíz para el alojamiento de sitio web, puede configurar el bucket de subdominio para redireccionar todas las solicitudes al dominio. En este ejemplo, todas las solicitudes para `www.example.com` se redirigen a `example.com`.

**Para configurar una solicitud de redirección, realice el siguiente procedimiento:**

1. En la consola de Amazon S3, en la lista **Buckets de uso general**, elija el nombre de bucket de subdominio (`www.example.com` en este ejemplo).

1. Seleccione **Propiedades**.

1. Elija **Alojamiento de sitios web estáticos**, elija **Editar**.

1. Elija **Redirect requests for an object (Redirigir solicitudes de un objeto)**. 

1. En el cuadro **Target bucket (Bucket de destino)**, escriba su dominio raíz (por ejemplo: **example.com**).

1. En **Protocol (Protocolo)**, elija **http**.

1. Elija **Save changes**.

## Paso 5: configurar registros para el tráfico del sitio web
<a name="root-domain-walkthrough-configure-logging"></a>

Si desea hacer un seguimiento de la cantidad de visitas que acceden a su sitio web, puede habilitar el registro en el bucket del dominio raíz. Para obtener más información, consulte [Registro de solicitudes con registro de acceso al servidor](ServerLogs.md). Si tiene previsto utilizar Amazon CloudFront para acelerar su sitio web, también puede usar el registro de CloudFront.

**Para habilitar el registro de acceso al servidor para el bucket del dominio raíz**

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

1. En la misma región en la que creó el bucket configurado como sitio web estático, cree un bucket para el registro, por ejemplo `logs.example.com`.

1. Cree una carpeta para los archivos de registro de acceso al servidor (por ejemplo: )., `logs`).

1. (Opcional) Si desea utilizar CloudFront para mejorar el rendimiento del sitio web, cree una carpeta para los archivos de registro de CloudFront (por ejemplo: )., `cdn`).
**importante**  
Al crear o actualizar una distribución y habilitar el registro de CloudFront, CloudFront actualiza la lista de control de acceso (ACL) del bucket para conceder a la cuenta `awslogsdelivery` permisos `FULL_CONTROL` para que escriba registros en el bucket. Para obtener más información, consulte [Permisos necesarios para configurar el registro estándar y acceder a los archivos de registro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#AccessLogsBucketAndFileOwnership) en la *Guía para desarrolladores de Amazon CloudFront*. Si el bucket que almacena los registros utiliza la configuración de propietario del bucket obligatorio de S3 Object Ownership para desactivar las ACL, CloudFront no puede escribir registros en el bucket. Para obtener más información, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](about-object-ownership.md).

1. En la lista **Buckets**, elija el bucket de dominio raíz.

1. Seleccione **Properties (Propiedades)**.

1. En **Registro de acceso al servidor**, elija **Editar**.

1. Elija **Enable**.

1. En el **bucket de destino**, elija el destino del bucket y la carpeta para los registros de acceso al servidor:
   + Busque la carpeta y la ubicación del bucket:

     1. Elija **Examinar S3**.

     1. Elija el nombre del bucket y, a continuación, elija la carpeta de registros. 

     1. Elija **Elegir ruta**.
   + Introduzca la ruta del bucket de S3, por ejemplo, `s3://logs.example.com/logs/`.

1. Elija **Guardar cambios**.

   En su bucket de registro, ahora puede acceder a sus registros. Amazon S3 escribe los registros de acceso al sitio web en su bucket de registro cada dos horas.

## Paso 6: cargar índice y contenido del sitio web
<a name="upload-website-content"></a>

En este paso, cargue el documento de índice y el contenido del sitio web opcional en el bucket de dominio raíz. 

Cuando habilite el alojamiento de sitio web estático para su bucket, escriba el nombre del documento de índice (por ejemplo: )., **index.html**). Después de habilitar el alojamiento de sitio web estático para el bucket, cargue un archivo HTML con el nombre de este documento de índice en el bucket.

**Para configurar el documento de índice**

1. Cree un archivo `index.html`.

   Si no tiene un archivo `index.html`, puede usar el siguiente HTML para crear uno:

   ```
   <html xmlns="http://www.w3.org/1999/xhtml" >
   <head>
       <title>My Website Home Page</title>
   </head>
   <body>
     <h1>Welcome to my website</h1>
     <p>Now hosted on Amazon S3!</p>
   </body>
   </html>
   ```

1. Guarde el archivo de índice localmente.

   El nombre del archivo de documento de índice debe coincidir exactamente con el nombre del documento de índice que especifique en el cuadro de diálogo **Alojamiento de sitio web estático**. El nombre del documento de índice distingue entre mayúsculas y minúsculas. Por ejemplo, si escribe `index.html` en el nombre del **Documento de índice** en el cuadro de diálogo **Alojamiento de sitios web estáticos**, el nombre del archivo de documento de índice también debe ser `index.html` y no `Index.html`.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, elija el nombre del bucket que desea utilizar para alojar un sitio web estático.

1. Habilite el alojamiento de sitios web estáticos para su bucket e introduzca el nombre exacto del documento de índice (por ejemplo: )., `index.html`). Para obtener más información, consulte [Habilitar el alojamiento de sitios web](EnableWebsiteHosting.md).

   Después de habilitar el alojamiento estático del sitio web, continúe con el paso 6. 

1. Para cargar el documento de índice en el bucket, realice una de las siguientes acciones:
   + Arrastre y suelte el archivo de índice en la lista de buckets de la consola.
   + Elija **Cargar** y siga las instrucciones para elegir y cargar el archivo de índice.

   Para obtener instrucciones paso a paso, consulte [Carga de objetos](upload-objects.md).

1. (Opcional) Cargue otros contenidos del sitio web en su bucket.

## Paso 7: cargar un documento de error
<a name="configure-error-document-root-domain"></a>

Cuando habilite el alojamiento de sitios webs estáticos para el bucket, escriba el nombre del documento de error (por ejemplo: )., **404.html**). Después de habilitar el alojamiento de sitios web estáticos para el bucket, cargue un archivo HTML con el nombre de este documento de error en el bucket.

**Para configurar un documento de error,**

1. Cree un documento de error, por ejemplo `404.html`.

1. Guarde el archivo de documento de error localmente.

   El nombre del documento de error distingue mayúsculas y minúsculas y debe coincidir exactamente con el nombre que escriba al habilitar el alojamiento de sitios web estáticos. Por ejemplo, si escribe `404.html` en el nombre del **Documento de error** en el cuadro de diálogo **Alojamiento de sitios web estáticos**, el nombre del archivo del documento de error también debe ser `404.html`.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, elija el nombre del bucket que desea utilizar para alojar un sitio web estático.

1. Habilite el alojamiento de sitios web estáticos para su bucket y escriba el nombre exacto del documento de error (por ejemplo: )., `404.html`). Para obtener más información, consulte [Habilitar el alojamiento de sitios web](EnableWebsiteHosting.md) y [Configurar un documento de error personalizado](CustomErrorDocSupport.md).

   Después de habilitar el alojamiento estático del sitio web, continúe con el paso 6. 

1. Para cargar el documento de error en el bucket, realice una de las siguientes acciones:
   + Arrastre y suelte el archivo del documento de error a la lista de buckets de la consola.
   + Elija **Cargar** y siga las instrucciones para elegir y cargar el archivo de índice.

   Para obtener instrucciones paso a paso, consulte [Carga de objetos](upload-objects.md).

## Paso 8: editar la configuración del S3 Block Public Access
<a name="root-domain-walkthrough-configure-bucket-permissions"></a>

En este ejemplo, se edita la configuración de acceso público del bloque en el bucket del dominio (`example.com`) para permitir el acceso público.

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](access-control-block-public-access.md) 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.

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

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

1. Elija **Permisos**.

1. En **Bloquear acceso público (configuración de bucket)**, elija **Editar**.

1. Desactive **Bloquear *todo el* acceso público** y elija **Guardar cambios**.  
![\[La consola de Amazon S3, que muestra la configuración del bucket de acceso público al bloque.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   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](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) 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 9: adjuntar una política de bucket
<a name="add-bucket-policy-root-domain"></a>

En este ejemplo, se adjunta una política de bucket al bucket de dominio (`example.com`) para permitir el acceso de lectura pública. Reemplaza el *Bucket-Name* de la política de bucket de ejemplo por el nombre del bucket de dominio, por ejemplo `example.com`.

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?](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/) 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.

1. Elija **Permisos**.

1. En **Política de bucket**, elija **Editar**.

1. Para conceder acceso público de lectura a su sitio web, copie la siguiente política de bucket y péguela en el **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/*"
               ]
           }
       ]
   }
   ```

1. 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.

1. 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?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)

   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.

En el paso siguiente, puede determinar los puntos de enlace de su sitio web y probar el punto de conexión de su dominio.

## Paso 10: probar el punto de conexión del dominio
<a name="root-domain-walkthrough-test-website"></a>

Después de configurar el bucket de dominio para alojar un sitio web público, puede probar el punto de conexión de su dominio. Para obtener más información, consulte [Puntos de enlace de sitio web](WebsiteEndpoints.md). Solo podrá probar el punto de conexión para su bucket de dominio, ya que este está configurado para el redireccionamiento de sitios web y no para el alojamiento de sitios web estáticos. 

**nota**  
Amazon S3 no admite el acceso HTTPS al sitio web. Si desea usar HTTPS, puede emplear Amazon CloudFront para atender a un sitio web estático alojado en Amazon S3.  
Para obtener más información, consulte [Cómo usar CloudFront para dar servicio a un sitio web estático alojado en Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/) y [Requerir HTTPS para la comunicación entre lectores y CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html).

1. En **Buckets**, elija el nombre del bucket.

1. Seleccione **Properties (Propiedades)**.

1. En la parte inferior de la página, en **Static website hosting (Alojamiento de sitios web estáticos)**, elija el **punto de conexión del sitio web del bucket**.

   El documento de índice se abre en una ventana independiente del explorador.

En el siguiente paso, utiliza Amazon Route 53 para permitir a los clientes utilizar sus URL personalizadas para navegar a su sitio. 

## Paso 11: agregar registros de alias para su dominio y subdominio
<a name="root-domain-walkthrough-add-record-to-hostedzone"></a>

En este paso, se crean los registros de alias que añade a la zona alojada para sus mapeos de dominio `example.com` y `www.example.com`. En lugar de utilizar direcciones IP, los registros de alias utilizan puntos de enlace de sitio web de Amazon S3. Amazon Route 53 mantiene el mapeo entre los registros de alias y las direcciones IP donde residen los buckets de Amazon S3. Se crean dos registros de alias, uno para el dominio raíz y otro para el subdominio.

### Agregar un registro de alias para el dominio raíz y el subdominio
<a name="add-alis-record"></a>

**Para agregar un registro de alias para su dominio raíz (`example.com`)**

1. Abra la consola de Route 53 en [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).
**nota**  
Si aún no utiliza Route 53, consulte el [Paso 1: registrar un dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html#getting-started-find-domain-name) en la *Guía para desarrolladores de Amazon Route 53*. Después de completar la configuración, puede reanudar las instrucciones.

1. Elija **Hosted zones (Zonas alojadas)**.

1. En la lista de zonas alojadas, elija el nombre de la zona alojada que coincide con su nombre de dominio.

1. Elija **Create record (Crear registro)**.

1. Elija **Switch to wizard (Cambiar al asistente)**.
**nota**  
Si desea utilizar la creación rápida para crear sus registros de alias, consulte [Configuring Route 53 to route traffic to an S3 Bucket (Configuración de Route 53 para dirigir el tráfico a un bucket de S3)](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RoutingToS3Bucket.html#routing-to-s3-bucket-configuring).

1. Elija **Simple routing (Direccionamiento sencillo)** y **Next (Siguiente)**.

1. Elija **Define simple record (Definir registro simple)**.

1. En **Record name (Nombre de registro)** acepte el valor predeterminado, que es el nombre de la zona alojada y el dominio.

1. En **Value/Route traffic to** (Valor/Dirigir tráfico a), elija **Alias to S3 website endpoint** (Alias a punto de conexión de sitio web de S3).

1. Elija la región.

1. Elija el bucket de S3.

   El nombre del bucket debe coincidir con el nombre que aparece en el cuadro **Name (Nombre)**. En la lista **Elegir bucket de S3** , el nombre del bucket aparece con el punto de conexión del sitio web de Amazon S3 para la región donde se creó el bucket, por ejemplo, `s3-website-us-west-1.amazonaws.com (example.com)`.

   **Choose S3 bucket (Elegir bucket de S3)** muestra un bucket si:
   + Configuró el bucket como un sitio web estático.
   + El nombre del bucket es el mismo que el del registro que está creando.
   + La Cuenta de AWS actual creó el bucket.

   Si el bucket no aparece en la descripción de **Choose S3 bucket (Elegir bucket de S3)**, escriba el punto de conexión del sitio web de Amazon S3 de la región en la que se creó el bucket, por ejemplo, **s3-website-us-west-2.amazonaws.com**. Para obtener una lista completa de los puntos de enlace del sitio web de Amazon S3, consulte [Puntos de enlace de sitio web de Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints). Para obtener más información acerca del destino de alias, consulte [Value/route traffic to (Valor/ruta de destino del tráfico)](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target) en la *Guía para desarrolladores de Amazon Route 53*.

1. En **Tipo de registro**, elija **A: Dirige el tráfico a una dirección IPv4 y algunos recursos de AWS**.

1. En **Evaluate target health (Evaluar el estado del destino)**, elija **No**.

1. Elija **Define simple record (Definir registro simple)**.

**Para agregar un registro de alias para su subdominio (`www.example.com`)**

1. En **Configure records (Configurar registros)**, elija **Define simple record (Definir registro simple)**.

1. En **Record name (Nombre de registro)** para el subdominio, escriba `www`.

1. En **Valor/Dirigir tráfico a**, elija **Alias a punto de conexión de sitio web de S3**.

1. Elija la región.

1. Elija el bucket de S3; por ejemplo, `s3-website-us-west-2.amazonaws.com (www.example.com)`.

   Si el bucket no aparece en la descripción de **Elegir bucket de S3**, escriba el punto de conexión del sitio web de Amazon S3 de la región en la que se creó el bucket, por ejemplo, **s3-website-us-west-2.amazonaws.com**. Para obtener una lista completa de los puntos de enlace del sitio web de Amazon S3, consulte [Puntos de enlace de sitio web de Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints). Para obtener más información acerca del destino de alias, consulte [Value/route traffic to (Valor/ruta de destino del tráfico)](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target) en la *Guía para desarrolladores de Amazon Route 53*.

1. En **Tipo de registro**, elija **A: Dirige el tráfico a una dirección IPv4 y algunos recursos de AWS**.

1. En **Evaluate target health (Evaluar el estado del destino)**, elija **No**.

1. Elija **Define simple record (Definir registro simple)**.

1. En la página **Configure records (Configurar registros)** , elija **Create records (Crear registros)**.

**nota**  
Por lo general, los cambios se propagan a todos los servidores de Route 53 en un plazo de 60 segundos. Una vez finalizada la propagación, puede dirigir el tráfico a su bucket de Amazon S3 mediante los nombres de los registros de alias que ha creado en este procedimiento.

### Adición de un registro de alias para el dominio raíz y el subdominio (consola de Route 53 antigua)
<a name="add-alis-record-old"></a>

**Para agregar un registro de alias para su dominio raíz (`example.com`)**

Se ha rediseñado la consola de Route 53. En la consola de Route 53 puede usar temporalmente la consola anterior. Si decide trabajar con la consola de Route 53 antigua, siga el procedimiento que se muestra a continuación.

1. Abra la consola de Route 53 en [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).
**nota**  
Si aún no utiliza Route 53, consulte el [Paso 1: registrar un dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html#getting-started-find-domain-name) en la *Guía para desarrolladores de Amazon Route 53*. Después de completar la configuración, puede reanudar las instrucciones.

1. Elija **Hosted Zones (Zonas alojadas)**.

1. En la lista de zonas alojadas, elija el nombre de la zona alojada que coincide con su nombre de dominio.

1. Elija **Create Record Set (Crear conjunto de registros)**.

1. Especifique los valores siguientes:  
**Nombre**  
Acepte el valor predeterminado, que es el nombre de la zona alojada y el dominio.   
Para el dominio raíz, no tiene que introducir ninguna información adicional en el campo **Name (Nombre)**.  
**Tipo**  
Elija **A - IPv4 address (A - Dirección IPv4)**.  
**Alias**  
Seleccione **Yes**.  
**Alias Target**  
En la sección de **Puntos de enlace del sitio web de S3** de la lista, elija el nombre del bucket.   
El nombre del bucket debe coincidir con el nombre que aparece en el cuadro **Name (Nombre)**. En la descripción de **Destino del alias**, el nombre del bucket va seguido del punto de conexión del sitio web de Amazon S3 de la región donde se creó el bucket, por ejemplo `example.com (s3-website-us-west-2.amazonaws.com)`. **Alias Target (Destino de alias)** muestra un bucket si:  
   + Configuró el bucket como un sitio web estático.
   + El nombre del bucket es el mismo que el del registro que está creando.
   + La Cuenta de AWS actual creó el bucket.
Si el bucket no aparece en la descripción de **Destino del alias**, escriba el punto de conexión del sitio web de Amazon S3 de la región en la que se creó el bucket, por ejemplo, `s3-website-us-west-2`. Para obtener una lista completa de los puntos de enlace del sitio web de Amazon S3, consulte [Puntos de enlace de sitio web de Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints). Para obtener más información acerca del destino de alias, consulte [Value/route traffic to (Valor/ruta de destino del tráfico)](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target) en la *Guía para desarrolladores de Amazon Route 53*.  
**Routing Policy**  
Acepte el valor predeterminado de **Simple**.  
**Evaluate Target Health**  
Acepte el valor predeterminado de **No**.

1. Seleccione **Create (Crear)**.

**Para agregar un registro de alias para su subdominio (`www.example.com`)**

1. En la zona alojada para su dominio raíz (`example.com`), elija **Create Record Set (Crear conjunto de registros)**.

1. Especifique los valores siguientes:  
**Nombre**  
Para el subdominio, introduzca `www` en el recuadro.   
**Tipo**  
Elija **A - IPv4 address (A - Dirección IPv4)**.  
**Alias**  
Seleccione **Yes**.  
**Alias Target**  
En la sección **S3 website endpoints (Puntos de enlace de sitio web de S3)** de la lista, elija el mismo nombre de bucket que aparece en el campo **Name (Nombre)**, por ejemplo `www.example.com (s3-website-us-west-2.amazonaws.com)`.  
**Routing Policy**  
Acepte el valor predeterminado de **Simple**.  
**Evaluate Target Health**  
Acepte el valor predeterminado de **No**.

1. Seleccione **Create (Crear)**.

**nota**  
Por lo general, los cambios se propagan a todos los servidores de Route 53 en un plazo de 60 segundos. Una vez finalizada la propagación, puede dirigir el tráfico a su bucket de Amazon S3 mediante los nombres de los registros de alias que ha creado en este procedimiento.

## Paso 12: probar el sitio web
<a name="root-domain-testing"></a>

Compruebe que el sitio web y el redireccionamiento funcionan correctamente. En el navegador, escriba sus URL. En este ejemplo, puede probar las siguientes URL:
+ **Domain (Dominio)** (`http://example.com`): muestra el documento de índice en el bucket `example.com`.
+ **Subdomain (Subdominio)** (`http://www.example.com`): redirige la solicitud a `http://example.com`. Verá el documento de índice en el bucket `example.com`.

Si el sitio web o los vínculos de redirección no funcionan, puede probar lo siguiente:
+ **Clear cache (Borrar caché)**: borra la caché de su navegador web.
+ **Check name servers (Comprobar servidores de nombres)**: si la página web y los vínculos de redireccionamiento no funcionan después de haber borrado la caché, puede comparar los servidores de nombres de su dominio y los servidores de nombres de su zona alojada. Si los servidores de nombres no coinciden, es posible que deba actualizar los servidores de nombres de dominio para que coincidan con los que figuran en la zona alojada. Para obtener más información, consulte [Agregar o cambiar servidores de nombres y pegar registros para un dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-name-servers-glue-records.html).

Una vez que haya probado correctamente el dominio raíz y el subdominio, puede configurar una distribución de [Amazon CloudFront](https://aws.amazon.com/cloudfront) para mejorar el rendimiento de su sitio web y proporcionar registros que puede utilizar para revisar el tráfico del sitio web. Para obtener más información, consulte [Aceleración de su sitio web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md).

# Aceleración de su sitio web con Amazon CloudFront
<a name="website-hosting-cloudfront-walkthrough"></a>

Puede usar [Amazon CloudFront](https://aws.amazon.com/cloudfront) para mejorar el rendimiento del sitio web de Amazon S3. CloudFront pone los archivos de su sitio web (archivos HTML, imágenes y videos) a disposición desde los centros de datos de todo el mundo. Estos centros de datos se conocen como *ubicaciones de borde*. Cuando un visitante solicita un archivo de su sitio web, CloudFront redirecciona automáticamente la solicitud a una copia del archivo en la ubicación de borde más cercana. Esto genera tiempos de descarga menores que los que se obtendrían si el visitante solicitara el contenido desde un centro de datos más lejano.

CloudFront copia en caché el contenido en las ubicaciones de borde durante el período que usted especifique. Si un visitante solicita contenido que se ha copiado en caché y ha excedido la fecha de vencimiento, CloudFront accede al servidor de origen para verificar si hay disponible una versión más reciente del contenido. Si se encuentra una versión más reciente, CloudFront copiará esta nueva versión en la ubicación de borde. Los cambios que realice en el contenido original se replicarán en las ubicaciones de borde a medida que los visitantes soliciten el contenido. 

**Uso de CloudFront sin Route 53**  
En los tutoriales de esta página, se utiliza Route 53 para apuntar a la distribución de CloudFront. Sin embargo, si quiere ofrecer contenido alojado en un bucket de Amazon S3 mediante CloudFront sin utilizar Route 53, consulte [Amazon CloudFront Tutorials: Setting up a Dynamic Content Distribution for Amazon S3](https://aws.amazon.com/cloudfront/getting-started/S3/) (Tutoriales de Amazon CloudFront: Configuración de una distribución dinámica de contenido para Amazon S3). Al ofrecer contenido alojado en un bucket de Amazon S3 mediante CloudFront, puede utilizar cualquier nombre de bucket y se admite tanto HTTP como HTTPS. 

**Automatizar la configuración con una plantilla de CloudFormation**  
Con el fin de obtener más información acerca del uso de una plantilla de CloudFormation para configurar un sitio web estático seguro que cree una distribución de CloudFront para dar servicio al sitio web, consulte [Introducción a un sitio web estático seguro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html) en la *Guía para desarrolladores de Amazon CloudFront*.

**Topics**
+ [Paso 1: crear una distribución de CloudFront](#create-distribution)
+ [Paso 2: Actualizar los conjuntos de registros para su dominio y subdominio](#update-record-sets)
+ [(Opcional) Paso 3: comprobar los archivos de registro](#check-log-files)

## Paso 1: crear una distribución de CloudFront
<a name="create-distribution"></a>

Primero, cree una distribución de CloudFront. Esto habilita el acceso a su sitio web desde los centros de datos de todo el mundo.

**Para crear una distribución con un origen de Amazon S3, realice las siguientes acciones:**

1. Abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Elija **Crear distribución**.

1. En la página **Crear distribución**, sección **Configuración del origen**, para **Nombre de dominio de origen**, escriba el punto de conexión del sitio web de Amazon S3 para su bucket, por ejemplo, **example.com.s3-website.us-west-1.amazonaws.com**.

   CloudFront completa el campo **Origin ID (ID de origen)** por usted.

1. En **Configuración predeterminada de comportamiento de caché**, conserve los valores predeterminados. 

   Con la configuración predeterminada de **Viewer Protocol Policy (Política del protocolo del lector)**, puede usar HTTPS para el sitio web estático. Para obtener más información de estas opciones de configuración, consulte [Valores que deben especificarse al crear o actualizar una distribución web](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WorkingWithDownloadDistributions.html#DownloadDistValuesYouSpecify) en la *guía para desarrolladores de Amazon CloudFront*.

1. En **Distribution Settings (Configuración de distribución)**, haga lo siguiente:

   1. En **Price Class (Clase de precio)**, deje la opción **Use All Edge Locations (Best Performance) (Usar todas las ubicaciones de borde [mejor rendimiento])**.

   1. Establezca **Alternate Domain Names (CNAMEs) (Nombres del dominio alternativos [CNAME])** en el dominio raíz y el subdominio `www`. En este tutorial, estos son `example.com` y `www.example.com`. 
**importante**  
Antes de realizar este paso, tenga en cuenta los [requisitos para el uso de nombres de dominio alternativos](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements), en concreto la necesidad de tener un certificado SSL/TLS válido. 

   1. En **SSL Certificate (Certificado SSL)**, elija **Custom SSL Certificate (example.com) (Certificado SSL personalizado [ejemplo.com])** y elija el certificado personalizado que cubra los nombres de dominio y subdominio.

      Para obtener más información, consulte [Certificado SSL](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesSSLCertificate) en la *guía para desarrolladores de Amazon CloudFront*.

   1. En **Objeto raíz predeterminado**, introduzca el nombre del documento de índice, por ejemplo, `index.html`. 

      Si la dirección URL utilizada para acceder a la distribución no contiene un nombre de archivo, la distribución de CloudFront devuelve el documento de índice. El **objeto raíz predeterminado** debe coincidir exactamente con el nombre del documento de índice de su sitio web estático. Para obtener más información, consulte [Configurar un documento de índice](IndexDocumentSupport.md).

   1. En **Logging** (Registro), seleccione la opción **On** (Activado).
**importante**  
Al crear o actualizar una distribución y habilitar el registro de CloudFront, CloudFront actualiza la lista de control de acceso (ACL) del bucket para conceder a la cuenta `awslogsdelivery` permisos `FULL_CONTROL` para que escriba registros en el bucket. Para obtener más información, consulte [Permisos necesarios para configurar el registro estándar y acceder a los archivos de registro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#AccessLogsBucketAndFileOwnership) en la *Guía para desarrolladores de Amazon CloudFront*. Si el bucket que almacena los registros utiliza la configuración de propietario del bucket obligatorio de S3 Object Ownership para desactivar las ACL, CloudFront no puede escribir registros en el bucket. Para obtener más información, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](about-object-ownership.md).

   1. En **Bucket for Logs** (Bucket para registros), seleccione el bucket de registro que creó.

      Para obtener más información acerca de la configuración de un bucket de registro, consulte [(Opcional) Registro del tráfico web](LoggingWebsiteTraffic.md).

   1. Si desea almacenar los registros generados por el tráfico en la distribución en una carpeta de CloudFront, en **Log Prefix (Prefijo de registro)**, escriba el nombre de la carpeta.

   1. No cambie ningún otro valor predeterminado.

1. Seleccione **Create Distribution (Crear distribución)**.

1. Para ver el estado de la distribución, busque la distribución en la consola y revise la columna **Status (Estado)**. 

   El estado `InProgress` indica que la implementación de la distribución no ha finalizado aún.

   Una vez que haya implementado la distribución, puede hacer referencia al contenido con el nuevo nombre del dominio de CloudFront.

1. Registre el valor de **Domain Name (Nombre de dominio)** que se muestra en la consola de CloudFront, por ejemplo, `dj4p1rv6mvubz.cloudfront.net`. 

1. Para verificar que la distribución de CloudFront funcione correctamente, escriba el nombre del dominio de la distribución en el navegador web.

   Si su sitio web es visible, la distribución de CloudFront funciona. Si su sitio web tiene un dominio personalizado registrado con Amazon Route 53, necesitará el nombre de dominio de CloudFront para actualizar el registro establecido en el siguiente paso.

## Paso 2: Actualizar los conjuntos de registros para su dominio y subdominio
<a name="update-record-sets"></a>

Como ya ha creado con éxito una distribución de CloudFront, actualice el registro de alias en Route 53 para que se asocien a la nueva distribución de CloudFront.

**Para actualizar el registro de alias para que apunte a una distribución de CloudFront, realice las siguientes tareas:**

1. Abra la consola de Route 53 en [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. En el panel de navegación izquierdo, elija **Hosted zones** (Zonas alojadas).

1. En la página **Hosted zones** (Zonas alojadas), elija la zona alojada que creó para su subdominio, como, por ejemplo, `www.example.com`.

1. En **Records** (Registros), seleccione el registro *A* que creó para el subdominio. 

1. En **Record details** (Detalles del registro), elija **Edit record** (Editar registro).

1. En **Route traffic to** (Dirigir tráfico a), elija **Alias to Cloudfront distribution** (Alias a distribución de CloudFront).

1. En **Choose distribution ** (Elegir distribución), elija la distribución de CloudFront.

1. Seleccione **Save**.

1. Para redirigir el registro *A* del dominio raíz a la distribución de CloudFront, repita este procedimiento del dominio raíz, por ejemplo, `example.com`.

   La actualización de los conjuntos de registros se realiza entre 2 y 48 horas. 

1. Para ver si los nuevos registros *A* han entrado en vigor, en un navegador web, introduzca la URL de su subdominio, por ejemplo, `http://www.example.com`. 

   Si el navegador ya no lo redirige al dominio raíz (por ejemplo: `http://example.com`), los nuevos registros A están en su lugar. Cuando se haya aplicado el nuevo registro *A*, el tráfico redirigido por el nuevo registro *A* a la distribución de CloudFront no se redirige al dominio raíz. Todos los visitantes que hagan referencia al sitio mediante `http://example.com` o `http://www.example.com` se redirigirán a la ubicación de borde de CloudFront más cercana. De esta manera, los tiempos de descarga serán más rápidos.
**sugerencia**  
Los navegadores pueden copiar en caché los ajustes de redirección. Si cree que se deberían haber aplicado los ajustes del nuevo registro *A*, pero el navegador aún redirige `http://www.example.com` a `http://example.com`, intente borrar el historial de navegador y las copias en caché y, luego, cierre y vuelva a abrir el navegador. También puede intentar con otro navegador web. 

## (Opcional) Paso 3: comprobar los archivos de registro
<a name="check-log-files"></a>

Los registros de acceso le informan cuántas personas visitan el sitio web. También contienen datos comerciales valiosos que puede analizar con otros servicios, como [Amazon EMR](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/). 

Los registros de CloudFront se almacenan en el bucket y la carpeta que elija al crear una distribución de CloudFront y habilitar el registro. CloudFront escribe registros en su bucket de registros dentro de las 24 horas en las que se realizaron las solicitudes correspondientes.

**Para ver los archivos de registro de su sitio web**

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

1. Seleccione el nombre del bucket de registro para su sitio web.

1. Elija la carpeta de registros de CloudFront.

1. Descargue los archivos `.gzip` escritos por CloudFront antes de abrirlos.

   Si creó un sitio web solo como parte de un ejercicio de aprendizaje, puede eliminar los recursos que asignó para dejar de acumular cargos. Para ello, consulte [Limpiar los recursos de ejemplo](getting-started-cleanup.md). Después de que haya eliminado los recursos de AWS, el sitio web ya no estará disponible.

# Limpiar los recursos de ejemplo
<a name="getting-started-cleanup"></a>

Si creó un sitio web estático como parte de un ejercicio de aprendizaje, debe eliminar los recursos de AWS que asignó para dejar de acumular cargos. Después de que haya eliminado los recursos de AWS, el sitio web ya no estará disponible.

**Topics**
+ [Paso 1: eliminar la distribución de Amazon CloudFront](#getting-started-cleanup-cloudfront)
+ [Paso 2: eliminar la zona alojada en Route 53](#getting-started-cleanup-route53)
+ [Paso 3: deshabilitar el registro y eliminar el bucket de S3](#getting-started-cleanup-s3)

## Paso 1: eliminar la distribución de Amazon CloudFront
<a name="getting-started-cleanup-cloudfront"></a>

Antes de eliminar una distribución de Amazon CloudFront, debe desactivarla. Una distribución deshabilitada ya no es funcional y no acumula cargos. Puede habilitar una distribución deshabilitada en cualquier momento. Después de eliminar una distribución deshabilitada, ya no estará disponible.

**Para desactivar y eliminar una distribución de CloudFront, realice las siguientes acciones:**

1. Abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Seleccione la distribución que desea deshabilitar y elija **Disable** (Deshabilitar).

1. Cuando se le indique que confirme, seleccione **Yes, Disable (Sí, deshabilitar)**.

1. Seleccione la distribución desactivada y después **Delete (Eliminar)**.

1. Cuando se le indique que confirme, seleccione **Yes, Delete**.

## Paso 2: eliminar la zona alojada en Route 53
<a name="getting-started-cleanup-route53"></a>

Antes de eliminar la zona alojada, debe eliminar los registros que creó. No es necesario que elimine los registros NS o SOA, ya que se eliminarán automáticamente cuando elimine la zona alojada.

**Para eliminar el conjunto de registros**

1. Abra la consola de Route 53 en [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1.  En la lista de nombres de dominio, seleccione su nombre de dominio y después **Go to Record Sets (Ir a conjuntos de registros)**. 

1. En la lista de conjuntos de registros, seleccione los registros *A* que haya creado. 

   El tipo de cada conjunto de registro está detallado en la columna **Type (Tipo)**. 

1. Seleccione la opción **Delete Record Set (Eliminar conjunto de registros)**. 

1. Cuando deba confirmar la selección, haga clic en **Confirm (Confirmar)**. 

**Para eliminar una zona alojada de Route 53, realice las siguientes acciones:**

1.  Al finalizar el procedimiento anterior, seleccione la opción **Back to Hosted Zones (Volver a zonas alojadas)**. 

1.  Seleccione el nombre de su dominio y, después, seleccione **Delete Hosted Zone (Eliminar zona alojada)**. 

1.  Cuando deba confirmar la selección, haga clic en **Confirm (Confirmar)**. 

## Paso 3: deshabilitar el registro y eliminar el bucket de S3
<a name="getting-started-cleanup-s3"></a>

Antes de eliminar su bucket de S3, asegúrese de que la función de registro esté desactivada para el bucket. De lo contrario, AWS seguirá escribiendo logs en el bucket mientras lo elimina.

**Para deshabilitar el registro en el bucket**

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

1. En **Buckets**, elija el nombre del bucket y, a continuación, **Propiedades**.

1. En **Properties (Propiedades)**, elija **Logging (Registro)**.

1. Elimine la selección del recuadro **Enabled (Habilitado)**.

1. Seleccione **Guardar**.

Ahora ya puede eliminar el bucket. Para obtener más información, consulte [Eliminación de un bucket de uso general](delete-bucket.md).

# Implementación de un sitio web estático para AWS Amplify Hosting desde un bucket de uso general de S3
<a name="website-hosting-amplify"></a>

Le recomendamos que utilice [AWS Amplify Hosting](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) para alojar el contenido estático de sitios web almacenado en S3. Amplify Hosting es un servicio totalmente administrado que facilita la implementación de los sitios web en una red de entrega de contenido (CDN) disponible en todo el mundo con tecnología de Amazon CloudFront, lo que permite alojar sitios web estáticos y seguros sin necesidad de una configuración exhaustiva. Con AWS Amplify Hosting, puede seleccionar la ubicación de los objetos en el bucket de uso general, implementar el contenido en una CDN administrada y generar una URL HTTPS pública para que se pueda acceder al sitio web desde cualquier lugar. La implementación de un sitio web estático con Amplify Hosting le brinda las siguientes ventajas y características:
+ **Implementación en la red de entrega de contenido (CDN) de AWS con la tecnología de Amazon CloudFront**: CloudFront es un servicio web que agiliza la distribución de contenido web estático y dinámico a los usuarios. CloudFront entrega el contenido a través de una red mundial de centros de datos que reciben el nombre de ubicaciones periféricas. Cuando un usuario solicita contenido que se distribuye con CloudFront, la solicitud se redirige a la ubicación periférica que ofrece la mínima latencia (retraso de tiempo), de modo que el contenido se entregue con el mejor rendimiento posible y mayor fiabilidad y disposinibilidad. Para obtener más información, consulte [Cómo CloudFront entrega el contenido](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html) en la *Guía para desarrolladores de Amazon CloudFront*.
+ **Compatibilidad con HTTPS**: proporciona una comunicación y una transferencia de datos seguras entre el sitio web y el navegador web de un usuario.
+ **Dominios personalizados**: conecte fácilmente el sitio web a una URL personalizada comprada a un registrador de dominio, como Amazon Route 53. 
+ **Certificados SSL personalizados**: cuando configura el dominio personalizado, puede utilizar el certificado administrado predeterminado que Amplify le proporciona o puede utilizar un certificado personalizado propio que haya comprado a la entidad de certificación que haya elegido.
+ **Supervisión incorporada de métricas y CloudWatch**: supervise el tráfico, los errores, la transferencia de datos y la latencia del sitio web.
+ **Protección con contraseña**: restrinja el acceso al sitio web mediante la configuración de un requisito de nombre de usuario y contraseña en la consola de Amplify.
+ **Redireccionamientos y reescrituras**: cree reglas de redireccionamiento y reescritura en la consola de Amplify para permitir que un servidor web redirija la navegación de una URL a otra.

Cuando implementa la aplicación en Amplify Hosting desde un bucket de uso general de Amazon S3, los cargos de AWS se basan en el modelo de precios de Amplify. Para más información, consulte [Precios de AWS Amplify](https://aws.amazon.com/amplify/pricing/).

**importante**  
Amplify Hosting no está disponible en todas las Regiones de AWS en las que está disponible Amazon S3. Para implementar un sitio web estático en Amplify Hosting, el bucket de uso general de Amazon S3 que contiene su sitio web debe ubicarse en una región en la que esté disponible Amplify. Para ver una lista de las regiones en las que está disponible Amplify, consulte [Amplify endpoints](https://docs.aws.amazon.com/general/latest/gr/amplify.html#amplify_region) en la *Referencia general de Amazon Web Services*.

Puede iniciar el proceso de implementación desde la consola de Amazon S3, la CLI de AWS o los SDK de AWS. Solo puede realizar la implementación en Amplify desde un bucket de uso general ubicado en una cuenta propia. Amplify no admite el acceso entre cuentas para el bucket de . 

Utilice las siguientes instrucciones para implementar un sitio web estático desde un bucket de uso general de Amazon S3 en Amplify Hosting mediante la consola de Amazon S3.

## Implementación de un sitio web estático en Amplify desde la consola de S3
<a name="DeployAmplify"></a>

**Implementación de un sitio web estático desde la consola de Amazon S3**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el bucket de uso general que contiene el sitio web que desea implementar en Amplify Hosting.

1. Elija la pestaña **Propiedades**.

1. En **Alojamiento de sitios web estáticos**, seleccione **Crear aplicación de Amplify**. En este paso, el proceso de implementación se trasladará a la consola de Amplify.

1. En la página **Implementar con S3**, realice uno de los siguientes pasos.

   1. En **Nombre de la aplicación**, escriba el nombre de la aplicación o el sitio web.

   1. En **Nombre de la ramificación**, introduzca el nombre del backend de la aplicación.

   1. En **Ubicación de S3 de los objetos para alojar**, introduzca la ruta de directorio al bucket de uso general o seleccione **Explorar S3** para localizarlo y seleccionarlo.

1. Elija **Guardar e implementar**.

**nota**  
 Si actualiza alguno de los objetos de un sitio web estático en el bucket de uso general alojado en Amplify, debe volver a implementar la aplicación en Amplify Hosting para que los cambios surtan efecto. Amplify Hosting no detecta automáticamente los cambios en el bucket. Para obtener más información, consulte [Actualización de un sitio web estático implementado en Amplify desde un bucket de S3](https://docs.aws.amazon.com//amplify/latest/userguide/update-website-deployed-from-s3.html) en la *Guía del usuario de AWS Amplify Hosting*. 

Para empezar directamente desde la consola de Amplify, consulte [Implementación de un sitio web estático desde S3 mediante la consola de Amplify](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) en la *Guía del usuario de AWS Amplify Hosting*.

Para empezar a usar los SDK de AWS, consulte [Creación de una política de bucket para implementar un sitio web estático desde S3 con los SDK de AWS](https://docs.aws.amazon.com//amplify/latest/userguide/deploy-with-sdks.html) en la *Guía del usuario de AWS Amplify Hosting*. 