

# Hospedagem de um site estático usando o Amazon S3
<a name="WebsiteHosting"></a>

Você pode usar o Amazon S3 para hospedar um site estático. Em um site *estático*, as páginas da Web individuais incluem conteúdo estático. Elas também podem conter scripts do lado do cliente.

**nota**  
Recomendamos que você use o [AWS Amplify Hosting](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) para hospedar conteúdo de site estático armazenado no S3. O Amplify Hosting é um serviço totalmente gerenciado que facilita a implantação de seus sites em uma rede de entrega de conteúdo (CDN) disponível globalmente, desenvolvida pelo Amazon CloudFront, permitindo hospedagem segura de site estático.   
Com o AWS Amplify Hosting, é possível selecionar a localização dos objetos no bucket de uso geral, implantar o conteúdo em uma CDN gerenciada e gerar um URL HTTPS público para que o site possa ser acessado em qualquer lugar. Consulte mais informações sobre o Amplify Hosting em [Implantar um site estático no AWS Amplify Hosting diretamente de um bucket do S3 de uso geral](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-amplify.html) e em [Deploying a static website from S3 using the Amplify console](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) no *Guia do usuário do console do AWS Amplify*.

Para obter mais informações sobre a hospedagem de um site estático no Simple Storage Service (Amazon S3), incluindo instruções e demonstrações detalhadas, consulte os tópicos a seguir.

**Importante**  
Se o bucket que você está usando para hospedar seu site estático tiver sido criptografado usando criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), você deverá criar uma distribuição do Amazon CloudFront para atender a seu site porque o SSE-KMS não permite usuários anônimos. Ao criar a distribuição do CloudFront, você deve usar o controle de acesso à origem (OAC) em vez da identidade do acesso de origem (OAI) para proteger a origem. Não é possível usar a OAI com o SSE-KMS, então, em vez disso, você deve usar o OAC.  
Para ter mais informações sobre OAC, consulte [Restringir o acesso a uma origem do Amazon S3](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) no *Guia do desenvolvedor do Amazon CloudFront*. Para ver um tutorial que mostra como hospedar um site estático usando o Amazon CloudFront, consulte [Tutorial: Hospedagem de transmissão sob demanda com o Amazon S3, Amazon CloudFront e Amazon Route 53](tutorial-s3-cloudfront-route53-video-streaming.md).

**Topics**
+ [Endpoints de site](WebsiteEndpoints.md)
+ [Habilitar a hospedagem de sites](EnableWebsiteHosting.md)
+ [Configurar um documento de índice](IndexDocumentSupport.md)
+ [Configurar um documento de erro personalizado](CustomErrorDocSupport.md)
+ [Configuração de permissões para acesso ao site](WebsiteAccessPermissionsReqd.md)
+ [(Opcional) Registrar em log o tráfego da web](LoggingWebsiteTraffic.md)
+ [(Opcional) Configurar um redirecionamento de uma página da Web](how-to-page-redirect.md)
+ [Usar o compartilhamento de recursos de origem cruzada (CORS)](cors.md)
+ [Tutoriais de site estático](static-website-tutorials.md)

# Endpoints de site
<a name="WebsiteEndpoints"></a>

Quando você configura seu bucket como um site estático, o site fica disponível no endpoint de site específico da Região da AWS do bucket. Os endpoints de site são diferentes dos endpoints para onde você envia solicitações de API REST. Para obter mais informações sobre as diferenças entre os endpoints, consulte [Principais diferenças entre um endpoint de site e um endpoint de API REST](#WebsiteRestEndpointDiff).

Dependendo da Região, os endpoints de site do Amazon S3 seguem um destes dois formatos.
+ **Região s3-website dash** ‐ `http://bucket-name.s3-website-Region.amazonaws.com`
+ **s3-website ponto (.) Região** ‐ `http://bucket-name.s3-website.Region.amazonaws.com`

Esses URLs retornam o documento de indexação padrão configurado para o site. Para obter uma lista completa dos endpoints do site do Amazon S3, consulte [Endpoints de site do Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints).

**nota**  
Para aumentar a segurança dos sites estáticos do Amazon S3, os domínios de endpoint do site do Amazon S3 (por exemplo, *s3-website-us-east-1.amazonaws.com* ou *s3-website.ap-south-1.amazonaws.com*) são registrados na [Lista Pública de Sufixos (PSL)](https://publicsuffix.org/). Para maior segurança, recomendamos que você use cookies com um prefiro `__Host-` caso precise definir cookies confidenciais no nome de domínio de sites estáticos do Amazon S3. Essa prática ajudará a defender seu domínio contra tentativas de falsificação de solicitação entre sites (CSRF). Para obter mais informações, consulte a página [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) na Mozilla Developer Network.

Se você quiser que seu site seja público, será necessário fazer com que seu conteúdo seja publicamente legível para que seus clientes possam acessá-lo no endpoint de site. Para obter mais informações, consulte [Configuração de permissões para acesso ao site](WebsiteAccessPermissionsReqd.md). 

**Importante**  
Os endpoints de site do Amazon S3 não oferecem suporte a HTTPS ou pontos de acesso. Se quiser usar HTTPS, você poderá utilizar uma destas opções:   
(Recomendado) Use o [AWS Amplify Hosting](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) para hospedar conteúdo de site estático armazenado no S3. O Amplify Hosting é um serviço totalmente gerenciado que facilita a implantação de seus sites em uma rede de entrega de conteúdo (CDN) disponível globalmente, desenvolvida pelo Amazon CloudFront, permitindo hospedagem segura de site estático.   
Com o AWS Amplify Hosting, é possível selecionar a localização dos objetos no bucket de uso geral, implantar o conteúdo em uma CDN gerenciada e gerar um URL HTTPS público para que o site possa ser acessado em qualquer lugar. Consulte mais informações sobre o Amplify Hosting em [Implantar um site estático no AWS Amplify Hosting diretamente de um bucket do S3 de uso geral](https://docs.aws.amazon.com//AmazonS3/latest/userguide/website-hosting-amplify) e em [Deploying a static website from S3 using the Amplify console](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) no *Guia do usuário do console do AWS Amplify*.
Use o Amazon CloudFront para atender a um site estático hospedado no Amazon S3. Para obter mais informações, consulte [Como uso o CloudFront para atender a solicitações HTTPS para meu bucket do Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-https-requests-s3) Para usar HTTPS com um domínio personalizado, consulte [Configuração de um site estático usando um domínio personalizado registrado no Route 53](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html).
Os buckets de pagamento pelo solicitante não permitem acesso por um endpoint de site. Qualquer solicitação para tal bucket recebe uma resposta 403 Acesso negado. Para obter mais informações, consulte [Utilizar buckets de uso geral com pagamento pelo solicitante para transferência e uso de armazenamento](RequesterPaysBuckets.md).

**Topics**
+ [Exemplos de endpoint de site](#website-endpoint-examples)
+ [Adicionar um registro DNS CNAME](#website-endpoint-dns-cname)
+ [Usar um domínio personalizado com o Route 53](#custom-domain-s3-endpoint)
+ [Principais diferenças entre um endpoint de site e um endpoint de API REST](#WebsiteRestEndpointDiff)

## Exemplos de endpoint de site
<a name="website-endpoint-examples"></a>

Os exemplos a seguir mostram como você pode acessar um bucket do Amazon S3 configurado como um site estático.

**Example - solicitação de um objeto no nível raiz**  
Para solicitar um objeto específico que é armazenado no nível raiz do bucket, use a seguinte estrutura de URL.  

```
http://bucket-name.s3-website.Region.amazonaws.com/object-name
```
Por exemplo, o URL a seguir solicita o objeto `photo.jpg` que está armazenado no nível raiz do bucket.  

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

**Example - solicitação de um objeto em um prefixo**  
Para solicitar um objeto armazenado em uma pasta em seu bucket, use a seguinte estrutura de URL.  

```
http://bucket-name.s3-website.Region.amazonaws.com/folder-name/object-name
```
O URL a seguir solicita o objeto `docs/doc1.html` em seu bucket.   

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

## Adicionar um registro DNS CNAME
<a name="website-endpoint-dns-cname"></a>

Se você tiver um domínio registrado, poderá adicionar uma entrada DNS CNAME para apontar para o endpoint de site do Amazon S3. Por exemplo, se você registrou o domínio `www.example-bucket.com`, pode criar um bucket `www.example-bucket.com` e adicionar um registro DNS CNAME que aponte para `www.example-bucket.com.s3-website.Region.amazonaws.com`. Todas as solicitações a `http://www.example-bucket.com` são redirecionadas para `www.example-bucket.com.s3-website.Region.amazonaws.com`. 

Para obter mais informações, consulte [Personalizar URLs do Amazon S3 com registros CNAME](VirtualHosting.md#VirtualHostingCustomURLs). 

## Usar um domínio personalizado com o Route 53
<a name="custom-domain-s3-endpoint"></a>

Em vez de acessar o site usando um endpoint de site do Amazon S3, você pode usar seu próprio domínio registrado com Amazon Route 53 para veicular conteúdo, por exemplo, `example.com`. Você pode usar o Amazon S3 com o Route 53 para hospedar um site no domínio raiz. Por exemplo, se você tiver o domínio raiz `example.com` e quiser hospedar seu site no Amazon S3, os visitantes do site poderão acessá-lo no navegador digitando `http://www.example.com` ou `http://example.com`. 

Para ver uma demonstração de exemplo, consult [Tutorial: Configurar um site estático usando um domínio personalizado registrado no Route 53](website-hosting-custom-domain-walkthrough.md). 

## Principais diferenças entre um endpoint de site e um endpoint de API REST
<a name="WebsiteRestEndpointDiff"></a>

Um endpoint de site do Amazon S3 é otimizado para acesso de um navegador da Web. A tabela a seguir resume as principais diferenças entre um endpoint de API REST e um endpoint de site. 


| Principal diferença | Endpoint de API REST | Endpoint de site | 
| --- | --- | --- | 
| Controle de acesso |  Oferece suporte a conteúdo público e privado  | Oferece suporte apenas a conteúdo publicamente legível  | 
| Manuseio de mensagens de erro |  Retorna uma resposta de erro formatada em XML  | Retorna um documento HTML | 
| Suporte a redirecionamento |  Não aplicável  | Oferece suporte a redirecionamentos no nível do objeto e do bucket | 
| Solicitações com suporte  |  Oferece suporte a todas as operações de bucket e de objeto  | Compatível apenas com solicitações GET e HEAD em objetos | 
| Responde a solicitações GET e HEAD na raiz de um bucket | Retorna uma lista de chaves de objeto no bucket | Retorna o documento de índice especificado na configuração de site | 
| Suporte a Secure Sockets Layer (SSL) | Oferece suporte a conexões SSL | Não oferece suporte a conexões SSL | 

Para obter uma lista completa dos endpoints do Amazon S3, consulte [Endpoints e cotas do Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html) na .*Referência geral da AWS*

# Habilitar a hospedagem de sites
<a name="EnableWebsiteHosting"></a>

Ao configurar um bucket como um site estático, você deve habilitar a hospedagem de sites estáticos, configurar um documento de índice e definir permissões.

Você pode habilitar a hospedagem estática de sites usando o console do Amazon S3, a API REST, os AWS SDKs, a AWS CLI ou o CloudFormation.

Para configurar seu site com um domínio personalizado, consulte [Tutorial: Configurar um site estático usando um domínio personalizado registrado no Route 53](website-hosting-custom-domain-walkthrough.md).

## Uso do console do S3
<a name="HowDoIWebsiteConfiguration"></a>

**Como habilitar a hospedagem de sites estáticos**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket para o qual você deseja habilitar a hospedagem de site estático.

1. Escolha **Properties (Propriedades)**.

1. Em **Static website hosting (Hospedagem estática de sites)**, escolha **Edit (Editar)**.

1. Escolha **Use this bucket to host a website (Usar este bucket para hospedar um site)**. 

1. Em **Static website hosting (Hospedagem estática de sites)**, escolha **Enable (Ativar)**.

1. Em **Index Document (Documento de índice)**, insira o nome do arquivo do documento de índice, que geralmente é `index.html`. 

   O nome do documento de índice diferencia letras maiúsculas de minúsculas e deve corresponder exatamente ao nome do arquivo do documento de índice HTML do qual você planeja fazer upload para o bucket do S3. Quando você configura um bucket para hospedagem de site, deve especificar um documento de índice. O Amazon S3 retorna esse documento de índice quando as solicitações são feitas para o domínio raiz ou alguma subpasta. Para obter mais informações, consulte [Configurar um documento de índice](IndexDocumentSupport.md).

1. Para fornecer seu próprio documento de erros personalizado para erros da classe 4XX, em **Error document (Documento de erros)**, insira o nome de arquivo do documento de erros personalizado. 

   O nome do documento de erro diferencia letras maiúsculas de minúsculas e deve corresponder exatamente ao nome do arquivo do documento de erro HTML do qual você planeja fazer upload para o bucket do S3. Se você não especificar um documento de erro personalizado e ocorrer um erro, o Amazon S3 retornará um documento de erro HTML padrão. Para obter mais informações, consulte [Configurar um documento de erro personalizado](CustomErrorDocSupport.md).

1. (Opcional) Se você quiser especificar regras avançadas de redirecionamento em **Redirection rules** (Regras de redirecionamento), use JSON para descrevê-las.

   Por exemplo, você pode encaminhar solicitações condicionalmente de acordo com nomes de chave de objeto ou prefixos específicos na solicitação. Para obter mais informações, consulte [Configurar regras de redirecionamento para usar redirecionamentos condicionais avançados](how-to-page-redirect.md#advanced-conditional-redirects).

1. Selecione **Save changes**.

   O Amazon S3 permite a hospedagem estática de sites para seu bucket. Na parte inferior da página, em **Static website hosting (Hospedagem estática de sites)**, você verá o endpoint do site do seu bucket.

1. Em **Static website hosting (Hospedagem de sites estáticos)**, anote o **Endpoint**.

   O **Endpoint** é o endpoint do site do Amazon S3 para o bucket. Depois de concluir a configuração do bucket como um site estático, é possível usar esse endpoint para testar o site.

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

Para obter mais informações sobre o envio de solicitações REST diretamente para habilitar a hospedagem estática de sites, consulte as seções a seguir na Referência da API do Amazon Simple Storage Service:
+ [PUT em site de bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html)
+ [GET em site de bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETwebsite.html)
+ [Site de DELETE Bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html)

## Uso da SDKs AWS
<a name="ManagingBucketWebsiteConfig"></a>

Para hospedar um site estático no Amazon S3, você configura um bucket do Amazon S3 para hospedagem de sites e faz upload do conteúdo do seu site no bucket. Você também pode usar os AWS SDKs para criar, atualizar e excluir a configuração do site de forma programática. Os SDKs fornecem classes de wrapper na API REST do Amazon S3. Se seu aplicativo exigir, você pode enviar solicitações de API REST diretamente do seu aplicativo. 

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

O exemplo a seguir mostra como usar o AWS SDK para .NET para gerenciar a configuração de site para um bucket. Para adicionar uma configuração de site a um bucket, forneça um nome de bucket e uma configuração de site. A configuração de site deve incluir um documento de índice e pode conter um documento de erro opcional. Esses documentos devem ser armazenados no bucket. Para obter mais informações, consulte [PUT Bucket website](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html). Para obter mais informações sobre o recurso de site do Amazon S3, consulte [Hospedagem de um site estático usando o Amazon S3](WebsiteHosting.md). 

O exemplo de código C\$1 a seguir adiciona uma configuração de site ao bucket especificado. A configuração especifica o documento de índice e os nomes de documento de erros. Para obter informações sobre como configurar e executar exemplos de código, consulte [Conceitos básicos do AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) no *Guia do desenvolvedor do AWS SDK for .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 ]

O exemplo de PHP a seguir adiciona uma configuração de site ao bucket especificado. O método `create_website_config` fornece explicitamente os nomes de documentos de índice e de documentos de erros. O exemplo também recupera a configuração de site e imprime a resposta. Para obter mais informações sobre o recurso de site do Amazon S3, consulte [Hospedagem de um site estático usando o Amazon S3](WebsiteHosting.md).

Para obter mais informações sobre a API do AWS SDK for Ruby, acesse [AWS SDK for Ruby Version 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
]);
```

------

## Como usar o AWS CLI
<a name="enabling-website-cli"></a>

Para obter mais informações sobre como usar a AWS CLI para configurar um bucket do S3 como um site estático, consulte [site](https://docs.aws.amazon.com/cli/latest/reference/s3/website.html) na *Referência de comandos da AWS CLI*.

Depois, é necessário configurar o documento de índice e definir permissões. Para obter informações, consulte [Configurar um documento de índice](IndexDocumentSupport.md) e [Configuração de permissões para acesso ao site](WebsiteAccessPermissionsReqd.md). 

Também é possível configurar um [documento de erro](CustomErrorDocSupport.md), o [registro em log do tráfego da web](LoggingWebsiteTraffic.md) ou um [redirecionamento](how-to-page-redirect.md).

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

Ao habilitar a hospedagem de sites, você também deve configurar e fazer upload de um documento de índice. Um *documento de índice* é uma página da Web que o Amazon S3 retorna quando uma solicitação é feita para a raiz de um site ou para qualquer subpasta. Por exemplo, se um usuário insere `http://www.example.com` no navegador, ele não está solicitando nenhuma página específica. Nesse caso, o Amazon S3 exibe o documento de índice, que às vezes é referido como a *página padrão*.

Quando você habilita a hospedagem de sites estáticos para seu bucket, insere o nome do documento de índice (por exemplo, `index.html`). Depois de habilitar a hospedagem de sites estáticos para seu bucket, faça upload de um arquivo HTML com o nome do documento de índice para o bucket. 

A barra no final do URL no nível raiz é opcional. Por exemplo, se você configurar seu site com `index.html` como o documento de índice, qualquer um dos URLs a seguir retornará `index.html`.

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

Para obter mais informações sobre endpoints de site do Amazon S3, consulte [Endpoints de site](WebsiteEndpoints.md).

## Pastas e documentos de índice
<a name="IndexDocumentsandFolders"></a>

No Amazon S3, um bucket é um contêiner de objetos simples. Ele não fornece nenhuma organização hierárquica, já que o sistema de arquivos em seu computador faz isso. No entanto, você pode criar uma hierarquia lógica usando nomes de chaves de objetos que envolvam uma estrutura de pastas. 

Por exemplo, considere um bucket com três objetos e que tenha os nomes de chaves a seguir. Embora esses objetos sejam armazenados sem uma organização hierárquica física, você pode pressupor a seguinte estrutura lógica de pastas com base nos nomes das chaves.
+ `sample1.jpg`: o objeto está na raiz do bucket.
+ `photos/2006/Jan/sample2.jpg`: o objeto está na subpasta `photos/2006/Jan`.
+ `photos/2006/Feb/sample3.jpg`: o objeto está na subpasta `photos/2006/Feb`. 

No console do Amazon S3, você também pode criar uma pasta em um bucket. Por exemplo, você pode criar uma pasta chamada `photos`. Você pode fazer upload de objetos no bucket ou na pasta `photos` no bucket. Se você adicionar o objeto `sample.jpg` ao bucket, o nome da chave será `sample.jpg`. Se você fizer upload do objeto na pasta `photos`, o nome da chave de objeto será `photos/sample.jpg`.

Se você criar um estrutura de pastas em seu bucket, deverá ter um documento de índice em cada nível. Em cada pasta, o documento de índice deve ter o mesmo nome, por exemplo, `index.html`. Quando um usuário especificar um URL que se assemelhe a uma consulta de pasta, a presença ou a ausência de uma barra no final determinará o comportamento do site. Por exemplo, o URL a seguir, com uma barra no final, retorna o documento de índice `photos/index.html`. 

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

Contudo, se você excluir a barra no final do URL anterior, o Amazon S3 procurará primeiro um objeto `photos` no bucket. Se o objeto `photos` não for encontrado, ele procurará um documento de índice, `photos/index.html`. Se esse documento for encontrado, o Amazon S3 retornará uma mensagem `302 Found` e apontará para a chave `photos/`. Para solicitações subsequentes a `photos/`, o Amazon S3 retorna `photos/index.html`. Se o documento de índice não for encontrado, o Amazon S3 retornará um erro.

## Configurar um documento de índice
<a name="configuring-index-document"></a>

Para configurar um documento de índice usando o console do S3, use o procedimento a seguir. Você também pode configurar um documento de índice usando a API REST, os AWS SDKs, a AWS CLI ou o CloudFormation. 

**nota**  
Em um bucket com versionamento habilitado, é possível carregar várias cópias do `index.html`, mas somente a versão mais recente será resolvida. Para obter mais informações sobre como usar o versionamento do S3, consulte [Reter várias versões de objetos com o Versionamento do S3](Versioning.md).

Quando você habilita a hospedagem de sites estáticos para seu bucket, insere o nome do documento de índice (por exemplo, **index.html**). Depois de habilitar a hospedagem de sites estáticos para seu bucket, faça upload de um arquivo HTML com esse nome de documento de índice para o bucket.

**Como configurar o documento de índice**

1. Criar um arquivo `index.html`

   Se você não tiver um arquivo `index.html`, poderá usar o HTML a seguir para criar um:

   ```
   <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. Salve o arquivo de índice localmente.

   O nome do documento de índice deve corresponder exatamente ao nome do documento de índice que você inseriu na caixa de diálogo **Hospedagem de site estático**. O nome do documento de índice diferencia maiúsculas de minúsculas. Por exemplo, se você inserir `index.html` no nome do **Documentos de índice** na caixa de diálogo **Hospedagem de site estático**, o nome do arquivo do documento de índice também deverá ser `index.html` e não `Index.html`.

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket que você deseja usar para hospedar um site estático.

1. Habilite a hospedagem de sites estáticos para seu bucket e insira o nome exato do documento de índice (por exemplo, `index.html`). Para obter mais informações, consulte [Habilitar a hospedagem de sites](EnableWebsiteHosting.md).

   Depois de habilitar a hospedagem estática do site, vá para a etapa 6. 

1. Para fazer upload do documento de índice para o bucket, siga um destes procedimentos:
   + Arraste e solte o arquivo de índice na listagem de buckets do console.
   + Escolha **Upload (Fazer upload)** e siga as instruções para escolher e fazer upload do arquivo de índice.

   Para obter instruções detalhadas, consulte [Fazer upload de objetos](upload-objects.md).

1. (Opcional) Faça upload do conteúdo de outro site para o seu bucket.

Depois, é necessário definir permissões para acesso ao site. Para mais informações, consulte [Configuração de permissões para acesso ao site](WebsiteAccessPermissionsReqd.md). 

Também é possível configurar um [documento de erro](CustomErrorDocSupport.md), o [registro em log do tráfego da web](LoggingWebsiteTraffic.md) ou um [redirecionamento](how-to-page-redirect.md).

# Configurar um documento de erro personalizado
<a name="CustomErrorDocSupport"></a>

Depois de configurar o bucket como um site estático, quando ocorre um erro, o Amazon S3 retorna um documento de erro HTML. Opcionalmente, você pode configurar seu bucket com um documento de erro personalizado para que o Amazon S3 retorne esse documento quando ocorrer um erro. 

**nota**  
Quando um erro ocorre, alguns navegadores exibem sua própria mensagem, ignorando o documento de erro que o Amazon S3 retorna. Por exemplo, quando ocorre um erro HTTP 404 Not Found, o Google Chrome pode ignorar o documento de erro que o Amazon S3 retorna e exibir seu próprio erro.

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

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

A tabela a seguir lista o subconjunto de códigos de resposta HTTP que o Amazon S3 retorna quando ocorre um erro. 


| Código de erro HTTP | Descrição | 
| --- | --- | 
| 301 Moved Permanently (301 movido permanentemente | Quando um usuário enviar uma solicitação diretamente a endpoints de site do Amazon S3 (http://s3-website.Region.amazonaws.com/), o Amazon S3 retornará uma resposta 301 Moved Permanently e redirecionará essas solicitações para https://aws.amazon.com/s3/. | 
| 302 Found (302 Encontrado |  Quando o Amazon S3 recebe uma solicitação para uma chave `x`, `http://bucket-name.s3-website.Region.amazonaws.com/x`, sem uma barra no final, ele tenta localizar o objeto com o nome de chave `x`. Se o objeto não for encontrado, o Amazon S3 determinará que a solicitação é para a subpasta `x` e redirecionará a solicitação adicionando uma barra no final, e retornará **302 Found**.   | 
| 304 Not Modified (304 Não modificado |  Os usuários do Amazon S3 usam cabeçalhos de solicitação `If-Modified-Since`, `If-Unmodified-Since`, `If-Match` e/ou `If-None-Match` para determinar se o objeto solicitado é igual ao da cópia em cache mantida pelo cliente. Se o objeto for o mesmo, o endpoint do site retornará uma resposta **304 Not Modified (304 não modificados)**.  | 
| 400 Malformed Request (400 Solicitação malformada |  O endpoint de site responde com **400 Malformed Request (400 Solicitação malformada)** quando um usuário tenta acessar um bucket pelo endpoint regional incorreto.   | 
| 403 proibido |  O endpoint de site responde com **403 Forbidden (403 Proibido)** quando uma solicitação de usuário se traduz em um objeto que não é publicamente legível. O proprietário do objeto deve tornar o objeto publicamente legível usando uma política de bucket ou uma ACL.   | 
| 404 Not Found (404 Não encontrado |  O endpoint de site responde com **404 Not Found (404 Não encontrado)** pelos seguintes motivos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/CustomErrorDocSupport.html) Você pode criar um documento personalizado que é retornado em caso de **404 Not Found (404 Não encontrado)**. Certifique-se de que o documento seja carregado no bucket configurado como um site e que a configuração de hospedagem de sites esteja definida para usar o documento. Para obter informações sobre como o Amazon S3 interpreta o URL como uma solicitação de um objeto ou um documento de índice, consulte [Configurar um documento de índice](IndexDocumentSupport.md).   | 
| 500 Service Error (500 Erro de serviço |  O endpoint de site responde com **500 Service Error (500 Erro de serviço)** quando ocorre um erro interno de servidor.  | 
| 503 Service Unavailable (503 Serviço não disponível |  O endpoint de site responde com **503 Service Unavailable** quando o Amazon S3 determina que você precisa reduzir sua taxa de solicitações.   | 

 Para cada um desses erros, o Amazon S3 retorna uma mensagem HTML predefinida. Veja a seguir uma mensagem HTML de exemplo que é retornada para a resposta **403 Forbidden (403 Proibido)**.

![\[Exemplo de mensagem de erro 403 Forbidden\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/WebsiteErrorExample403.png)


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

Quando configura seu bucket como um site estático, você pode, opcionalmente, fornecer um documento de erro personalizado que contém uma mensagem de erro fácil de entender e ajuda adicional. O Amazon S3 retorna seu documento de erro personalizado somente para códigos de erro HTTP classe 4XX. 

Para configurar um documento de erro personalizado usando o console do S3, siga as etapas abaixo. Você também pode configurar um documento de erro usando a API REST, os AWS SDKs, a AWS CLI ou o CloudFormation. Para obter mais informações, consulte:
+ [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) na *Referência da API do Amazon Simple Storage Service*
+ [AWS::S3::Bucket WebsiteConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-websiteconfiguration.html) no *Guia do usuário do CloudFormation*
+ [put-bucket-website](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-website.html) na *Referência de comando da AWS CLI*

Ao habilitar a hospedagem de site estático para o bucket, insira o nome do documento de erro (por exemplo, **404.html**). Depois de habilitar a hospedagem de sites estáticos para seu bucket, faça upload de um arquivo HTML com esse nome de documento de erros para o bucket.

**Para configurar um documento de erros**

1. Crie um documento de erro, por exemplo `404.html`.

1. Salve o arquivo de documento de erros localmente.

   O nome do documento de erros diferencia maiúsculas e minúsculas e deve corresponder exatamente ao nome que você insere ao habilitar a hospedagem estática do site. Por exemplo, se você inserir `404.html` como o nome do **Error document (Documento de erro)** na caixa de diálogo **Static website hosting (Hospedagem de site estático)**, o nome de arquivo do documento de erro também deve ser `404.html`.

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket que você deseja usar para hospedar um site estático.

1. Habilite a hospedagem de site estático para seu bucket e insira o nome exato do documento de erro (por exemplo, `404.html`). Para obter mais informações, consulte [Habilitar a hospedagem de sites](EnableWebsiteHosting.md) e [Configurar um documento de erro personalizado](#CustomErrorDocSupport).

   Depois de habilitar a hospedagem estática do site, vá para a etapa 6. 

1. Para fazer upload do documento de erros para o bucket, siga um destes procedimentos:
   + Arraste e solte o arquivo de documento de erros na lista de buckets do console.
   + Escolha **Upload (Fazer upload)** e siga as instruções para escolher e fazer upload do arquivo de índice.

   Para obter instruções detalhadas, consulte [Fazer upload de objetos](upload-objects.md).

# Configuração de permissões para acesso ao site
<a name="WebsiteAccessPermissionsReqd"></a>

Ao configurar um bucket como um site estático, se você desejar que seu site seja público, poderá conceder acesso público de leitura. Para tornar o bucket publicamente legível, é necessário desabilitar as configurações de bloqueio de acesso público do bucket e gravar uma política de bucket que conceda acesso público de leitura. Se o bucket contiver objetos que não são do proprietário do bucket, talvez também seja necessário adicionar uma lista de controle de acesso (ACL) de objeto que conceda acesso de leitura a todos.

Se você não quiser desativar as configurações de acesso público de bloqueio para seu bucket, mas ainda quiser que seu site seja público, poderá criar uma distribuição do Amazon CloudFront para servir seu site estático. Para obter mais informações, consulte [Acelerar seu site com o Amazon CloudFront](website-hosting-cloudfront-walkthrough.md) ou [Usar uma distribuição do Amazon CloudFront para servir um site estático](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started-cloudfront-overview.html) no *Guia do desenvolvedor do Amazon Route 53*.

**nota**  
No endpoint de site, se um usuário solicitar um objeto que não existe, o Amazon S3 retornará um código de resposta HTTP `404 (Not Found)`. Se o objeto existir, mas não você não tiver permissão de leitura nele, o endpoint de site retornará o código de resposta HTTP `403 (Access Denied)`. O usuário pode usar o código de resposta para inferir se um objeto específico existe. Se você não quiser esse comportamento, não ative o suporte de site para seu bucket. 

**Topics**
+ [Etapa 1: Editar configurações de bloqueio de acesso público do S3](#block-public-access-static-site)
+ [Etapa 2: Adicionar uma política de bucket](#bucket-policy-static-site)
+ [Listas de controle de acesso de objetos](#object-acl)

## Etapa 1: Editar configurações de bloqueio de acesso público do S3
<a name="block-public-access-static-site"></a>

Se quiser configurar um bucket existente como um site estático que tenha acesso público, você deverá editar as configurações de bloqueio de acesso público desse bucket. Você também pode ter que editar suas configurações de bloqueio de acesso público no nível da conta. O Amazon S3 aplica a combinação mais restritiva das configurações de bloqueio de acesso público no nível do bucket e no nível da conta.

Por exemplo, se você permitir o acesso público a um bucket, mas bloquear todo o acesso público no nível da conta, o Amazon S3 continuará a bloquear o acesso público ao bucket. Neste cenário, você precisaria editar as configurações de bloqueio de acesso público no nível do bucket e no nível da conta. Para obter mais informações, consulte [Bloquear o acesso público ao armazenamento do Amazon S3](access-control-block-public-access.md).

Por padrão, o Amazon S3 bloqueia o acesso público à sua conta e aos seus buckets. Se quiser usar um bucket para hospedar um site estático, use estas etapas para editar as configurações de bloqueio de acesso público. 

**Atenção**  
Antes de concluir estas etapas, revise [Bloquear o acesso público ao armazenamento do Amazon S3](access-control-block-public-access.md) para garantir que você entenda e aceite os riscos envolvidos em permitir o acesso público. Ao desativar as configurações de bloqueio de acesso público para tornar seu bucket público, qualquer pessoa na Internet pode acessá-lo. Recomendamos que você bloqueie todo o acesso público aos buckets.

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Escolha o nome do bucket configurado como um site estático.

1. Escolha **Permissions (Permissões)**.

1. Em **Block public access (bucket settings) (Bloqueio de acesso público (configurações de bucket)**, escolha **Edit (Editar)**.

1. Desmarque **Block *all* public access (Bloquear todo acesso público)** e escolha **Save changes (Salvar alterações)**.  
![\[O console do Amazon S3, que mostra as configurações do bucket do Bloqueio de Acesso Público.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   O Amazon S3 desativa as configurações do Bloqueio de Acesso Público para o bucket. Para criar um site público estático, talvez também seja necessário [editar as configurações do Bloqueio de Acesso Público](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) para sua conta antes de adicionar uma política de bucket. Se as configurações do Bloqueio de Acesso Público da conta estiverem ativadas no momento, você verá uma observação em **Bloquear acesso público (configurações de bucket)**.

## Etapa 2: Adicionar uma política de bucket
<a name="bucket-policy-static-site"></a>

Para tornar os objetos no bucket publicamente legíveis, você deverá gravar uma política de bucket que conceda a todos a permissão `s3:GetObject`. 

Depois de editar as configurações do Bloqueio de acesso público do S3, é possível adicionar uma política de bucket para conceder acesso público de leitura ao bucket. Ao conceder um acesso público de leitura, qualquer pessoa na Internet pode acessar seu bucket.

**Importante**  
A política a seguir é somente um exemplo e concede acesso total aos conteúdos do bucket. Antes de prosseguir com esta etapa, revise [Como posso proteger os arquivos no meu bucket do Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/) para garantir que você entende as práticas recomendadas a fim de proteger os arquivos no bucket do S3 e os riscos envolvidos na concessão de acesso público.

1. Em **Buckets**, escolha o nome do seu bucket.

1. Escolha **Permissions (Permissões)**.

1. Em **Bucket Policy (Política de bucket)**, escolha **Edit (Editar)**.

1. Para conceder acesso público de leitura ao site, copie a política de bucket a seguir e cole-a no **Bucket policy editor (Editor de política de bucket)**.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PublicReadGetObject",
               "Effect": "Allow",
               "Principal": "*",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::Bucket-Name/*"
               ]
           }
       ]
   }
   ```

1. Atualize o `Resource` para o nome do bucket.

   Na política de bucket do exemplo anterior, *Bucket-Name* é um espaço reservado para o nome do bucket. Para usar essa política de bucket com seu próprio bucket, você deve atualizar esse nome para corresponder ao nome do seu bucket.

1. Selecione **Save changes**.

   Uma mensagem é exibida indicando que a política de bucket foi adicionada com sucesso.

   Se você vir um erro que diz `Policy has invalid resource`, confirme se o nome do bucket na política de bucket corresponde ao nome do seu bucket. Para obter informações sobre como adicionar uma política de bucket, consulte [Como adicionar uma política de bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)

   Se você receber uma mensagem de erro e não puder salvar a política do bucket, verifique suas configurações de acesso público para confirmar que você permite acesso público ao bucket.

## Listas de controle de acesso de objetos
<a name="object-acl"></a>

É possível usar uma política de bucket para conceder permissão de leitura aos seus objetos. No entanto, a política de bucket se aplica somente a objetos que sejam do proprietário do bucket. Se o seu bucket contiver objetos que não sejam do proprietário do bucket, ele deverá usar a lista de controle de acesso (ACL) do objeto para conceder permissão READ pública nesses objetos.

A Propriedade de objetos do S3 é uma configuração no nível do bucket do Amazon S3 que você pode usar para controlar a propriedade de objetos carregados no bucket e para desabilitar ou habilitar as ACLs. Por padrão, a Propriedade de Objetos está definida com a configuração Imposto pelo proprietário do bucket e todas as ACLs estão desabilitadas. Quando as ACLs são desabilitadas, o proprietário do bucket possui todos os objetos do bucket e gerencia o acesso a eles exclusivamente usando políticas de gerenciamento de acesso.

 A maioria dos casos de uso modernos no Amazon S3 não exige mais o uso de ACLs. Recomendamos manter as ACLs desabilitadas, exceto em circunstâncias em que seja necessário controlar o acesso para cada objeto individualmente. Com as ACLs desabilitadas, é possível usar políticas para controlar o acesso a todos os objetos no bucket, independentemente de quem carregou os objetos para o bucket. Para obter mais informações, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).

**Importante**  
Se o bucket de uso geral utilizar a configuração “Imposto pelo proprietário do bucket” para a Propriedade de objetos do S3, será necessário usar políticas para conceder acesso ao bucket de uso geral e aos objetos contidos nele. Quando a configuração Imposto pelo proprietário do bucket estiver habilitada, as solicitações para definir listas de controle de acesso (ACLs) ou atualizar ACLs falharão e retornarão o código de erro `AccessControlListNotSupported`. Ainda há suporte para solicitações de leitura de ACLs.

Para tornar um objeto publicamente legível usando uma ACL, conceda a permissão READ ao grupo `AllUsers`, como mostrado no elemento de concessão a seguir. Adicione esse elemento de concessão à ACL do objeto. Para obter informações sobre o gerenciamento de ACLs, consulte [Visão geral da lista de controle de acesso (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) Registrar em log o tráfego da web
<a name="LoggingWebsiteTraffic"></a>

Opcionalmente, é possível habilitar o registro em log de acesso ao servidor do Amazon S3 para um bucket configurado como um site estático. O registro em log de acesso ao servidor fornece registros detalhados para as solicitações que são feitas ao bucket. Para obter mais informações, consulte [Registrar em log as solicitações com registro em log de acesso ao servidor](ServerLogs.md). Se planeja usar o Amazon CloudFront para [acelerar seu site](website-hosting-cloudfront-walkthrough.md), você também pode usar o registro em log do CloudFront. Para obter mais informações, consulte [Configurar e usar logs de acesso](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) no *Guia do desenvolvedor do Amazon CloudFront*.

**Como habilitar o registro em log do acesso ao servidor para o bucket de site estático**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Na mesma região onde você criou o bucket configurado como um site estático, crie um bucket de uso geral para registro em log, por exemplo, `logs.example.com`.

1. Crie uma pasta para os arquivos de log do registro em log de acesso ao servidor (por exemplo, `logs`).

1. (Opcional) Se você quiser usar o CloudFront para melhorar oa performance do seu site, crie uma pasta para os arquivos de log do CloudFront (por exemplo, `cdn`).

   Para obter mais informações, consulte [Acelerar seu site com o Amazon CloudFront](website-hosting-cloudfront-walkthrough.md).

1. Na lista **Buckets**, escolha o bucket.

1. Escolha **Properties (Propriedades)**.

1. Em **Server access logging (Registro de acesso ao servidor)**, selecione **Edit (Editar)**.

1. Escolha **Habilitar**.

1. No **Target bucket (Bucket de destino)**, escolha o destino do bucket e da pasta para os logs de acesso ao servidor:
   + Navegue até o local da pasta e do bucket:

     1. Escolha **Browse S3 (Navegar no S3)**.

     1. Escolha o nome do bucket e, depois, escolha a pasta de logs. 

     1. Selecione **Choose path (Escolher caminho)**.
   + Insira o caminho do bucket do S3, por exemplo, **s3://logs.example.com/logs/**.

1. Selecione **Save changes**.

   No bucket de log, agora você pode acessar seus logs. O Amazon S3 grava os logs de acesso ao site no bucket de log a cada duas horas.

# (Opcional) Configurar um redirecionamento de uma página da Web
<a name="how-to-page-redirect"></a>

Se o bucket do Amazon S3 estiver configurado para hospedagem de site estático, você poderá configurar redirecionamentos para seu bucket ou para os objetos nele contidos. As opções a seguir estão disponíveis para a configuração de redirecionamentos.

**Topics**
+ [Redirecionar solicitações para o endpoint do site do seu bucket para outro bucket ou domínio](#redirect-endpoint-host)
+ [Configurar regras de redirecionamento para usar redirecionamentos condicionais avançados](#advanced-conditional-redirects)
+ [Redirecionar solicitações para um objeto](#redirect-requests-object-metadata)

## Redirecionar solicitações para o endpoint do site do seu bucket para outro bucket ou domínio
<a name="redirect-endpoint-host"></a>

É possível redirecionar todas as solicitações de um endpoint de site de um bucket para outro bucket ou domínio. Se você redirecionar todas as solicitações, qualquer solicitação feita ao endpoint do site será redirecionada ao bucket ou domínio especificado. 

Por exemplo, se o seu domínio raiz for `example.com` e você quiser atender a solicitações para `http://example.com` e `http://www.example.com`, é necessário criar dois buckets chamados `example.com` e `www.example.com`. Depois, mantenha o conteúdo no bucket `example.com` e configure o outro bucket `www.example.com` para redirecionar todas as solicitações ao bucket `example.com`. Para obter mais informações, consulte [Configurar um site estático usando um nome de domínio personalizado](https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html).

**Como redirecionar solicitações para um endpoint de site do bucket**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Em **Buckets**, escolha o nome do bucket do qual você deseja redirecionar solicitações (por exemplo, `www.example.com`).

1. Escolha **Properties (Propriedades)**.

1. Em **Static website hosting (Hospedagem estática de sites)**, escolha **Edit (Editar)**.

1. Selecione **Redirect requests for an object (Redirecionar solicitações de um objeto)**. 

1. Na caixa **Host name (Nome do host)** insira o endpoint do site para seu bucket ou seu domínio personalizado.

   Por exemplo, se você estiver redirecionando para um endereço de domínio raiz, insira **example.com**.

1. Para **Protocol (Protocolo)**, escolha o protocolo para as solicitações redirecionadas (**none**,**http**, ou **https**).

   Se você não especificar um protocolo, a opção padrão será **none**.

1. Selecione **Save changes**.

## Configurar regras de redirecionamento para usar redirecionamentos condicionais avançados
<a name="advanced-conditional-redirects"></a>

Usando regras de redirecionamentos avançadas, você pode rotear solicitações condicionalmente de acordo com nomes de chave de objeto específicos, prefixos na solicitação ou códigos da resposta. Por exemplo, suponha que você exclua ou dê outro nome a um objeto em seu bucket. Você pode adicionar uma regra de roteamento que redireciona a solicitação a outro objeto. Se você deseja tornar uma pasta indisponível, será possível adicionar uma regra de roteamento para redirecionar a solicitação para outra página da Web. Você também pode adicionar uma regra de roteamento para processar condições de erro, encaminhando solicitações que retornam o erro para outro domínio quando ele é processado.

Ao habilitar a hospedagem de site estático para seu bucket, você pode especificar opcionalmente regras de redirecionamento avançadas. O Amazon S3 tem uma limitação de 50 regras de roteamento por configuração de site. Se você precisar de mais de 50 regras de roteamento, poderá usar o redirecionamento de objetos. Para obter mais informações, consulte [Uso do console do S3](#page-redirect-using-console).

Para obter mais informações sobre como configurar regras de roteamento usando a API REST, consulte [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) na *Referência da API do Amazon Simple Storage Service*.

**Importante**  
Para criar regras de redirecionamento no novo console do Amazon S3, você deve usar o JSON. Para exemplos de JSON, consulte [Exemplos de regras de redirecionamento](#redirect-rule-examples).

**Para configurar regras de redirecionamento para um site estático**

Para adicionar regras de redirecionamento para um bucket que já tem alojamento de site estático ativado, siga estas etapas.

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket que você configurou como um site estático.

1. Escolha **Properties (Propriedades)**.

1. Em **Static website hosting (Hospedagem estática de sites)**, escolha **Edit (Editar)**.

1. Na caixa **Redirection rules (Regras de redirecionamento)**, insira suas regras de redirecionamento em JSON. 

   No console do S3, você descreve as regras usando o JSON. Para exemplos de JSON, consulte [Exemplos de regras de redirecionamento](#redirect-rule-examples). O Amazon S3 tem uma limitação de 50 regras de roteamento por configuração de site.

1. Selecione **Save changes**.

### Elementos de regra de roteamento
<a name="configure-bucket-as-website-routing-rule-syntax"></a>

Veja a seguir a sintaxe geral para definir as regras de roteamento em uma configuração de site em XML. Para configurar regras de redirecionamento no novo console do S3, use o JSON. Para exemplos de JSON, consulte [Exemplos de regras de redirecionamento](#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.
```

------

A tabela a seguir descreve os elementos na regra de roteamento.


|  Nome  |  Descrição  | 
| --- | --- | 
| RoutingRules |  Contêiner para um conjunto de elementos RoutingRule.  | 
| RoutingRule |  Uma regra que identifica uma condição e o redirecionamento que é aplicado quando a condição é satisfeita.  Condição: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/how-to-page-redirect.html)  | 
| Condition |  O contêiner para descrever uma condição que deve ser satisfeita para que o redirecionamento especificado seja aplicado. Se a regra de roteamento não incluir uma condição, a regra será aplicada a todas as solicitações.  | 
| KeyPrefixEquals |  O prefixo do nome da chave de objeto do qual as solicitações são redirecionadas.  `KeyPrefixEquals` será obrigatório se `HttpErrorCodeReturnedEquals` não for especificado. Se `KeyPrefixEquals` e `HttpErrorCodeReturnedEquals` forem especificados, ambos deverão ser verdadeiros para a condição ser satisfeita.  | 
| HttpErrorCodeReturnedEquals |  O código de erro HTTP que deve corresponder para que o redirecionamento seja aplicado. Se ocorrer um erro, e se o código de erro satisfizer esse valor, o redirecionamento especificado será aplicado. `HttpErrorCodeReturnedEquals` será obrigatório se `KeyPrefixEquals` não for especificado. Se `KeyPrefixEquals` e `HttpErrorCodeReturnedEquals` forem especificados, ambos deverão ser verdadeiros para a condição ser satisfeita.  | 
| Redirect |  O elemento do contêiner que fornece instruções para o redirecionamento da solicitação. Você pode redirecionar solicitações para outro host, ou outra página, ou pode especificar outro protocolo a ser usado. Uma `RoutingRule` deve ter um elemento `Redirect`. Um elemento `Redirect` deve conter pelo menos um dos seguintes elementos irmãos: `Protocol`, `HostName`, `ReplaceKeyPrefixWith`, `ReplaceKeyWith` ou `HttpRedirectCode`.  | 
| Protocol |  O protocolo, `http` ou `https`, que será usado no cabeçalho `Location` que é retornado na resposta.  Se um dos irmãos for fornecido, `Protocol` não será obrigatório.  | 
| HostName |  O nome do host a ser usado no cabeçalho `Location` que é retornado na resposta. Se um dos irmãos for fornecido, `HostName` não será obrigatório.  | 
| ReplaceKeyPrefixWith |  O prefixo do nome de chave de objeto que substitui o valor de `KeyPrefixEquals` na solicitação de redirecionamento.  Se um dos irmãos for fornecido, `ReplaceKeyPrefixWith` não será obrigatório. Poderá ser fornecido somente se `ReplaceKeyWith` não for fornecido.  | 
| ReplaceKeyWith |  A chave de objeto a ser usada no cabeçalho `Location` que é retornado na resposta.  Se um dos irmãos for fornecido, `ReplaceKeyWith` não será obrigatório. Poderá ser fornecido somente se `ReplaceKeyPrefixWith` não for fornecido.  | 
| HttpRedirectCode |  O código de redirecionamento HTTP a ser usado no cabeçalho `Location` que é retornado na resposta. Se um dos irmãos for fornecido, `HttpRedirectCode` não será obrigatório.  | 

#### Exemplos de regras de redirecionamento
<a name="redirect-rule-examples"></a>

Os seguintes exemplos explicam tarefas comuns de redirecionamento:

**Importante**  
Para criar regras de redirecionamento no novo console do Amazon S3, você deve usar o JSON.

**Example 1: redirecionar depois de trocar o nome de um prefixo de chave**  
Suponha que seu bucket contenha os seguintes objetos:  
+ index.html
+ docs/article1.html
+ docs/article2.html
Você decide renomear a pasta de `docs/` para `documents/`. Depois de fazer essa alteração, você precisará redirecionar as solicitações do prefixo `docs/` para `documents/`. Por exemplo, as solicitações para `docs/article1.html` serão redirecionadas para `documents/article1.html`.  
Nesse caso, adicione a seguinte regra de roteamento à configuração do site:  

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

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

**Example 2: redirecionar solicitações de uma pasta excluída para uma página**  
Suponha que você tenha excluído a pasta `images/` (ou seja, você excluiu todos os objetos com o prefixo de chave `images/`). Você pode adicionar uma regra de roteamento que redirecione as solicitações para os objetos com o prefixo de chave `images/` a uma página chamada `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: redirecionar para outro domínio com um caminho específico**  
Suponha que você queira redirecionar solicitações de um caminho específico para outro domínio. Por exemplo, você deseja redirecionar solicitações de `/redirect/me` para `https://example.com/new/path`.  
Ao usar `HostName` e `ReplaceKeyWith` em conjunto, o Amazon S3 constrói o URL de redirecionamento concatenando o nome do host e a chave de substituição com uma barra entre eles. Portanto, você não deve incluir uma barra inicial no valor `ReplaceKeyWith`. O Amazon S3 adiciona automaticamente a barra entre o nome do host e a chave de substituição.  

```
[
    {
        "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>
```
Essa configuração redireciona uma solicitação para `https://yourbucket.s3-website-region.amazonaws.com/redirect/me` para `https://example.com/new/path`. Observe que `ReplaceKeyWith` está definido como `new/path` sem uma barra inicial.

**Example 4: redirecionar para um erro HTTP**  
Suponha que, quando um objeto solicitado não for encontrado, você queira redirecionar solicitações para uma instância do Amazon Elastic Compute Cloud (Amazon EC2). Adicione uma regra de redirecionamento para que, quando um código HTTP de status 404 (não encontrado) for retornado, o visitante do site seja redirecionado para uma instância do Amazon EC2 que processa a solicitação.   
O exemplo a seguir também insere o prefixo de chave de objeto `report-404/` no redirecionamento. Por exemplo, se você solicitar uma página `ExamplePage.html` e ela resultar em um erro HTTP 404, a solicitação será redirecionada a uma página `report-404/ExamplePage.html` na instância do Amazon EC2 especificada. Se não houver nenhuma regra de roteamento e o erro HTTP 404 ocorrer, o documento de erro que é especificado na configuração será retornado.  

```
[
    {
        "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>
```

## Redirecionar solicitações para um objeto
<a name="redirect-requests-object-metadata"></a>

Você pode redirecionar solicitações de um objeto para outro objeto ou URL configurando o local de redirecionamento do site nos metadados do objeto. Você define o redirecionamento adicionando a propriedade `x-amz-website-redirect-location` aos metadados do objeto. Você pode usar o console do Amazon S3 para definir o **Website Redirect Location (Local de redirecionamento de site)** nos metadados do objeto. Se você usar a [API do Amazon S3](#page-redirect-using-rest-api), defina `x-amz-website-redirect-location`. A seguir, o site interpreta o objeto como um redirecionamento 301. 

Para reorientar uma solicitação para outro objeto, você define o local de redirecionamento como a chave do objeto de destino. Para redirecionar uma solicitação para um URL externo, defina o local de redirecionamento como o URL desejado. Para obter mais informações sobre metadados de objeto, consulte [Metadados do objeto definidos pelo sistema](UsingMetadata.md#SysMetadata).

Quando você define um redirecionamento de página, pode manter ou excluir o conteúdo de objeto de origem. Por exemplo, se você tiver um objeto `page1.html` em seu bucket, poderá redirecionar todas as solicitações para essa página para outro objeto, `page2.html`. Você tem duas opções:
+ Mantenha o conteúdo do objeto do `page1.html` e redirecione solicitações de página.
+ Exclua o conteúdo de `page1.html` e carregue um objeto de byte zero chamado `page1.html` para substituir o objeto existente e redirecionar solicitações de páginas. 

### Uso do console do S3
<a name="page-redirect-using-console"></a>

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Na lista **Buckets**, escolha o nome do bucket que você configurou como um site estático (por exemplo, `example.com`).

1. Em **Objects (Objetos)**, selecione seu objeto.

1. Escolha **Actions (Ações)** e escolha **Edit metadata (Editar metadados)**.

1. Escolha **Metadata (Metadados)**.

1. Escolha **Add Metadata (Adicionar metadados)**.

1. Em **Type (Tipo)**, escolha **System Defined (Definido pelo sistema)**.

1. Em **Key (Chave)**, escolha **x-amz-website-redirect-location**.

1. Em **Value (Valor)**, insira o nome da chave do objeto o qual deseja redirecionar, por exemplo, `/page2.html`.

   Para outro objeto no mesmo bucket, o prefixo `/` no valor é obrigatório. Você também pode definir o valor para um URL externo, por exemplo, `http://www.example.com`.

1. Escolha **Edit metadata (Editar metadados)**.

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

As ações da API do Amazon S3 oferecem suporte ao cabeçalho `x-amz-website-redirect-location` na solicitação. O Amazon S3 armazena o valor de cabeçalho nos metadados de objeto como `x-amz-website-redirect-location`. 
+ [Objeto PUT](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [Iniciar multipart upload](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)
+ [Objeto POST](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [Objeto PUT - Copiar](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)

Um bucket configurado para hospedagem de sites tem o endpoint de site e o endpoint REST. Uma solicitação para uma página que é configurada como redirecionamento 301 tem os seguintes resultados possíveis, dependendo do endpoint da solicitação:
+ **Endpoint de site específico da região: **o Amazon S3 redireciona a solicitação da página de acordo com o valor da propriedade `x-amz-website-redirect-location`. 
+ **Endpoint REST: **o Amazon S3 não redireciona a solicitação da página. Ele retorna o objeto solicitado.

Para obter mais informações sobre os endpoints, consulte [Principais diferenças entre um endpoint de site e um endpoint de API REST](WebsiteEndpoints.md#WebsiteRestEndpointDiff).

Quando você define um redirecionamento de página, pode manter ou excluir o conteúdo de objeto. Por exemplo, suponha que você tenha um objeto `page1.html` em seu bucket.
+ Para manter o conteúdo de `page1.html` e apenas redirecionar as solicitações de página, envie uma solicitação [PUT objeto - Copiar](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html) para criar um novo objeto `page1.html`que usa o objeto `page1.html` existente como origem. Na sua solicitação, você define o cabeçalho `x-amz-website-redirect-location`. Quando a solicitação for concluída, você terá a página original com o conteúdo inalterado, mas o Amazon S3 redirecionará todas as solicitações da página para o local de redirecionamento especificado.
+ Para excluir o conteúdo do objeto `page1.html` e redirecionar as solicitações para a página, envie uma solicitação PUT objeto para fazer upload de um objeto com zero byte com a mesma chave de objeto: `page1.html`. Na solicitação PUT, você define `x-amz-website-redirect-location` para `page1.html`como o novo objeto. Quando a solicitação for concluída, `page1.html` não terá nenhum conteúdo, e as solicitações serão redirecionadas para o local que é especificado por `x-amz-website-redirect-location`.

Quando você recupera o objeto usando a ação [GET objeto](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html) com outros metadados de objeto, o Amazon S3 retorna o cabeçalho `x-amz-website-redirect-location` na resposta.

# Usar o compartilhamento de recursos de origem cruzada (CORS)
<a name="cors"></a>

O compartilhamento de recursos de origem cruzada (CORS) define uma maneira de os aplicativos web clientes carregados em um domínio interagirem com recursos em outro domínio. Com o suporte do CORS, você pode criar aplicações web no lado do cliente com o Amazon S3 e permitir seletivamente o acesso de origem cruzada aos seus recursos do Amazon S3. 

Esta seção fornece uma visão geral do CORS. Os subtópicos descrevem como você pode ativar o CORS usando o console do Amazon S3 ou, programaticamente, usando a API REST do Amazon S3 e os AWS SDKs. 

## Compartilhamento de recursos de origem cruzada: cenários de caso de uso
<a name="example-scenarios-cors"></a>

Veja a seguir exemplos de cenário de uso do CORS:

**Cenário 1**  
Suponha que você esteja hospedando um site em um bucket do Amazon S3 chamado `website` como descrito em [Hospedagem de um site estático usando o Amazon S3](WebsiteHosting.md). Os usuários carregam o endpoint de site.

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

Agora você quer usar JavaScript nas páginas da web armazenadas nesse bucket para fazer solicitações GET e PUT autenticadas no mesmo bucket usando o endpoint da API do Amazon S3 para o bucke, `website.s3.us-east-1.amazonaws.com`. Um navegador normalmente impediria que o JavaScript permitisse essas solicitações. No entanto, com CORS, é possível configurar seu bucket para permitir explicitamente solicitações de origem cruzada de `website.s3-website.us-east-1.amazonaws.com`.

**Cenário 2**  
Suponha que você queira hospedar uma fonte web de seu bucket do S3. Mais uma vez, os navegadores exigem uma verificação de CORS (também chamada de verificação de simulação) para carregar fontes web. Assim, é preciso configurar o bucket que está hospedando a fonte web para permitir que qualquer origem faça essas solicitações.

## Como o Amazon S3 avalia a configuração de CORS em um bucket?
<a name="cors-eval-criteria"></a>

Quando o Amazon S3 recebe uma solicitação de simulação de um navegador, ele avalia a configuração de CORS para o bucket e usa a primeira regra `CORSRule` que corresponde à solicitação de entrada do navegador para permitir uma solicitação de origem cruzada. Para que uma regra seja correspondente, as seguintes condições devem ser satisfeitas:
+ O cabeçalho `Origin` em uma solicitação do CORS para seu bucket deve corresponder às origens do elemento `AllowedOrigins` na configuração do CORS.
+ Os métodos HTTP especificados no `Access-Control-Request-Method` em uma solicitação de CORS para o bucket devem corresponder ao método ou aos métodos listados no elemento `AllowedMethods` na configuração de CORS. 
+ Os cabeçalhos listados no cabeçalho `Access-Control-Request-Headers` em uma solicitação de pré-processamento devem corresponder aos cabeçalhos no elemento `AllowedHeaders` na configuração do CORS. 

**nota**  
As ACLs e as políticas continuam sendo aplicadas quando você habilita o CORS no bucket.

## Como o ponto de acesso do Object Lambda é compatível com o CORS
<a name="cors-olap-cors"></a>

Ao receber uma solicitação de um navegador ou quando a solicitação inclui um cabeçalho `Origin`, o S3 Object Lambda sempre adiciona um campo de cabeçalho `"AllowedOrigins":"*"`.

Para obter mais informações sobre como usar o CORS, consulte os tópicos a seguir.

**Topics**
+ [Compartilhamento de recursos de origem cruzada: cenários de caso de uso](#example-scenarios-cors)
+ [Como o Amazon S3 avalia a configuração de CORS em um bucket?](#cors-eval-criteria)
+ [Como o ponto de acesso do Object Lambda é compatível com o CORS](#cors-olap-cors)
+ [Elementos de uma configuração de CORS](ManageCorsUsing.md)
+ [Configurar o compartilhamento de recursos de origem cruzada (CORS)](enabling-cors-examples.md)
+ [Testar o CORS](testing-cors.md)
+ [Solução de problemas do CORS](cors-troubleshooting.md)

# Elementos de uma configuração de CORS
<a name="ManageCorsUsing"></a>

Para configurar seu bucket para permitir solicitações de origem cruzada, crie uma configuração CORS. A configuração de CORS é um documento com elementos que identificam as origens que você permitirá que acessem o bucket, as operações (métodos HTTP) compatíveis com cada origem e outras informações específicas da operação. Você pode adicionar até 100 regras à configuração. Você pode adicionar a configuração CORS como o sub-recurso `cors` ao bucket.

Se você estiver configurando o CORS no console do S3, use o JSON para criar uma configuração CORS. O novo console do S3 oferece suporte somente a configurações JSON CORS. 

Para obter mais informações sobre a configuração de CORS e os elementos nele, consulte os tópicos a seguir. Para obter instruções sobre como adicionar uma configuração de CORS, consulte [Configurar o compartilhamento de recursos de origem cruzada (CORS)](enabling-cors-examples.md).

**Importante**  
No novo console do S3, a configuração CORS deve 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)
+ [Exemplos de configurações de CORS](#cors-example-1)

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

Na configuração de CORS, você pode especificar os seguintes valores para o elemento `AllowedMethods`.
+ GET
+ PUT
+ POST
+ DELETE
+ HEAD

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

No elemento `AllowedOrigins`, você especifica as origens das quais deseja permitir solicitações de domínio cruzado, por exemplo, ` http://www.example.com`. A string de origem pode conter somente um caractere curinga `*`, como `http://*.example.com`. É possível especificar `*` como a origem para permitir que todas as origens enviem solicitações de origem cruzada. Você também pode especificar `https` para permitir somente origens confiáveis.

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

O elemento `AllowedHeaders` especifica quais cabeçalhos são permitidos em uma solicitação de simulação por meio do cabeçalho `Access-Control-Request-Headers`. Cada nome no cabeçalho `Access-Control-Request-Headers` deve coincidir com uma entrada correspondente no elemento. O Amazon S3 enviará somente os cabeçalhos permitidos que foram solicitados em uma resposta. Para obter uma lista de exemplos de cabeçalhos que podem ser usados em solicitações para o Amazon S3, acesse [Cabeçalhos de solicitação comuns](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html) no guia de *Referência da API do Amazon Simple Storage Service*.

Cada string de AllowedHeaders na configuração pode conter no máximo um caractere curinga \$1. Por exemplo, `<AllowedHeader>x-amz-*</AllowedHeader>` permitirá todos os cabeçalhos específicos da Amazon.

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

Cada elemento `ExposeHeader` identifica um cabeçalho na resposta que você deseja que os clientes acessem de seus aplicativos (por exemplo, de um objeto JavaScript `XMLHttpRequest`). Para obter uma lista de cabeçalhos de resposta comuns do Amazon S3, acesse [Cabeçalhos de resposta comuns](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html) no guia de *Referência da API do Amazon Simple Storage Service* .

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

O elemento `MaxAgeSeconds` especifica o tempo em segundos que seu navegador pode armazenar em cache a resposta para uma solicitação de simulação conforme identificado pelo recurso, pelo método HTTP e pela origem.

## Exemplos de configurações de CORS
<a name="cors-example-1"></a>

Em vez de acessar um site usando um endpoint do Amazon S3, você pode usar seu próprio domínio, como `example1.com` para distribuir seu conteúdo. Para obter informações sobre como usar seu próprio domínio, consulte [Tutorial: Configurar um site estático usando um domínio personalizado registrado no Route 53](website-hosting-custom-domain-walkthrough.md). 

O seguinte exemplo de configuração de CORS tem três regras especificadas como elementos `CORSRule`:
+ A primeira regra permite solicitações PUT, POST e DELETE de origem cruzada da origem `http://www.example1.com`. A regra também permite todos os cabeçalhos em uma solicitação OPTIONS de simulação por meio do cabeçalho `Access-Control-Request-Headers`. Em resposta a solicitações OPTIONS de simulação, o Amazon S3 retorna cabeçalhos solicitados.
+ A segunda regra permite as mesmas solicitações de origem cruzada da primeira regra, mas a regra se aplica a outra origem, `http://www.example2.com`. 
+ A terceira regra permite solicitações GET de origem cruzada de todas as origens. O caractere curinga `*` refere-se a todas as origens. 

------
#### [ 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>
```

------

A configuração de CORS também permite parâmetros de configuração opcionais, conforme exibido na configuração de CORS a seguir. Neste exemplo, a configuração de CORS permite solicitações PUT, POST e DELETE de origem cruzada da origem `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>
```

------

O elemento `CORSRule` na configuração anterior inclui os seguintes elementos opcionais:
+ `MaxAgeSeconds`: Especifica o tempo em segundos (neste exemplo, 3000) que o navegador armazena em cache uma resposta do Amazon S3 a uma solicitação OPTIONS de simulação para o recurso especificado. Armazenando a resposta em cache, o navegador não precisará enviar solicitações de simulação ao Amazon S3, caso a solicitação original seja repetida. 
+ `ExposeHeaders` — Identifica os cabeçalhos de resposta (neste exemplo, `x-amz-server-side-encryption`, `x-amz-request-id` e `x-amz-id-2`) que os clientes podem acessar de seus aplicativos (por exemplo, de um objeto JavaScript `XMLHttpRequest`).

# Configurar o compartilhamento de recursos de origem cruzada (CORS)
<a name="enabling-cors-examples"></a>

O compartilhamento de recursos de origem cruzada (CORS) define uma maneira de os aplicativos web clientes carregados em um domínio interagirem com recursos em outro domínio. Com o suporte do CORS, você pode criar aplicações web no lado do cliente com o Amazon S3 e permitir seletivamente o acesso de origem cruzada aos seus recursos do Amazon S3. 

Esta seção mostra como habilitar o CORS usando o console do Amazon S3, a API REST do Amazon S3 e os AWS SDKs. Para configurar seu bucket para permitir solicitações de origem cruzada, adicione uma configuração de CORS ao bucket. Uma configuração CORS é um documento que define regras que identificam as origens que você permitirá que acessem seu bucket, as operações (métodos HTTP) compatíveis para cada origem e outras informações específicas da operação. No console do S3, a configuração CORS deve ser um documento JSON.

Para obter exemplos de configurações de CORS em JSON e XML, consulte [Elementos de uma configuração de CORS](ManageCorsUsing.md).

## Usar o console do S3
<a name="add-cors-configuration"></a>

Esta seção explica como usar o console do Amazon S3 para adicionar uma configuração de compartilhamento de recursos de origem cruzada (CORS) para um bucket do S3. 

Quando você permitir o CORS no bucket, as listas de controle de acesso (ACLs) e outras políticas de permissão de acesso continuarão sendo aplicadas.

**Importante**  
No novo console do S3, a configuração CORS deve ser JSON. Para obter exemplos de configurações de CORS em JSON e XML, consulte [Elementos de uma configuração de CORS](ManageCorsUsing.md).

**Para adicionar uma configuração CORS a um bucket do S3**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket para o qual você deseja criar uma política de bucket.

1. Escolha **Permissions (Permissões)**.

1. Na seção **Cross-origin resource sharing (CORS) (Compartilhamento de recursos de origem cruzada (CORS))** escolha **Edit (Editar)**.

1. Na caixa de texto **CORS configuration editor (Editor de configuração CORS)**, digite ou copie e cole uma nova configuração CORS, ou edite uma configuração existente.

   A configuração de CORS é um arquivo JSON. O texto que você digita no editor deve ser um JSON válido. Para obter mais informações, consulte [Elementos de uma configuração de CORS](ManageCorsUsing.md).

1. Selecione **Save changes**.
**nota**  
O Amazon S3 exibe o Nome de recurso da Amazon (ARN) para o bucket próximo ao título **CORS configuration editor (Editor de configuração CORS)**. Para obter mais informações sobre ARNs, consulte [Nomes do recurso da Amazon (ARNs) e namespaces do serviço da AWS](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) no*Referência geral da Amazon Web Services*.

## Uso da SDKs AWS
<a name="ManageCorsUsingSDK"></a>

Você pode usar o AWS SDK para gerenciar o Cross-Origin Resource Sharing (CORS – Compartilhamento de recursos entre origens) para um bucket. Para obter mais informações sobre CORS, consulte [Usar o compartilhamento de recursos de origem cruzada (CORS)](cors.md).

 Veja os seguintes exemplos:
+ Cria uma configuração do CORS e define a configuração em um bucket
+ Recupera a configuração e a altera adicionando uma regra
+ Adiciona a configuração modificada ao bucket
+ Exclui a configuração

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

**Example**  

**Example**  
 Consulte instruções sobre como criar e testar uma amostra funcional em [Getting Started](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html) no Guia do desenvolvedor do 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 obter informações sobre como configurar e executar exemplos de código, consulte [Conceitos básicos do AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) no *Guia do desenvolvedor do AWS SDK for .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 da API REST
<a name="EnableCorsUsingREST"></a>

Para definir uma configuração de CORS no bucket, use o Console de gerenciamento da AWS. Se o seu aplicativo exigir, você também pode enviar solicitações REST diretamente. As seções a seguir na *Referência da API do Amazon Simple Storage Service* descrevem as ações da API REST relacionadas à configuração 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)
+ [Objeto OPTIONS](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html)

# Testar o CORS
<a name="testing-cors"></a>

Para testar a configuração de CORS, uma solicitação de CORS preliminar pode ser enviada com o método `OPTIONS` para que o servidor responda se é aceitável enviar a solicitação. Quando o Amazon S3 recebe uma solicitação preliminar, ele avalia a configuração de CORS para o bucket e usa a primeira regra `CORSRule` correspondente à solicitação de entrada para permitir uma solicitação entre origens. Para que uma regra seja correspondente, as seguintes condições devem ser satisfeitas: 
+ O cabeçalho `Origin` em uma solicitação do CORS para seu bucket deve corresponder às origens do elemento `AllowedOrigins` na configuração do CORS.
+ Os métodos HTTP especificados no `Access-Control-Request-Method` em uma solicitação de CORS para o bucket devem corresponder ao método ou aos métodos listados no elemento `AllowedMethods` na configuração de CORS.
+ Os cabeçalhos listados no cabeçalho `Access-Control-Request-Headers` em uma solicitação preliminar devem corresponder aos cabeçalhos no elemento `AllowedHeaders` na configuração de CORS. 

Veja a seguir um exemplo de configuração de CORS. Para criar uma configuração de CORS, consulte [Configurar CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html). Para ver mais exemplos de configuração de CORS, consulte [Elementos de uma configuração de CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManageCorsUsing.html). 

Para obter orientação sobre como configurar e solucionar problemas de regras de CORS, consulte [Como configuro o CORS no Amazon S3 e confirmo as regras do CORS usando cURL?](https://repost.aws/knowledge-center/s3-configure-cors) no Centro de Conhecimento do AWS re:Post.

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

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

------

Para testar a configuração de CORS, é possível enviar uma verificação `OPTIONS` preliminar usando o comando CURL a seguir. CURL é uma ferramenta de linha de comando que pode ser usada para interagir com o S3. Para ter mais informações, 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"
```

No exemplo acima, o comando `curl -v -x OPTIONS` é usado para enviar uma solicitação preliminar ao S3 e perguntar se o S3 tem permissão para enviar uma solicitação `PUT` em um objeto por meio do `http://www.example1.com` de origem cruzada. Os cabeçalhos `Access-Control-Request-Headers` e `Access-Control-Expose-Headers` são opcionais.
+ Em resposta ao cabeçalho `Access-Control-Request-Method` na solicitação `OPTIONS` preliminar, o Amazon S3 exibe a lista de métodos permitidos quando há correspondência com os métodos solicitados. 
+ Em resposta ao cabeçalho `Access-Control-Request-Headers` na solicitação `OPTIONS` preliminar, o Amazon S3 exibe a lista de cabeçalhos permitidos quando há correspondência com os cabeçalhos solicitados.
+ Em resposta ao cabeçalho `Access-Control-Expose-Headers` na solicitação `OPTIONS` preliminar, o Amazon S3 exibe uma lista de cabeçalhos permitidos quando os cabeçalhos solicitados podem ser acessados por scripts em execução no navegador.

**nota**  
Ao enviar uma solicitação preliminar, se algum dos cabeçalhos da solicitação de CORS não for permitido, nenhum dos cabeçalhos de CORS de resposta será exibido.

Em resposta a essa solicitação `OPTIONS` preliminar, você receberá uma resposta `200 OK`. Para conhecer os códigos de erro comuns recebidos ao testar o CORS e ter mais informações para resolver problemas relacionados ao CORS, consulte [Solução de problemas do 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
```

# Solução de problemas do CORS
<a name="cors-troubleshooting"></a>

Os tópicos a seguir podem ajudar a solucionar alguns problemas comuns do CORS relacionados ao S3.

**Topics**
+ [403 Erro proibido: o CORS não está habilitado para este bucket.](#cors-not-enabled)
+ [403 Erro proibido: essa solicitação do CORS não é permitida.](#cors-not-enabled)
+ [Cabeçalhos não encontrados na resposta do CORS](#Headers-not-found)
+ [Considerações sobre o CORS nas integrações de proxy do S3](#cors-in-proxy)

## 403 Erro proibido: o CORS não está habilitado para este bucket.
<a name="cors-not-enabled"></a>

O erro `403 Forbidden` a seguir ocorre quando uma solicitação de origem cruzada é enviada ao Amazon S3, mas o CORS não está configurado no bucket do S3. 

 Erro: HTTP/1.1 403 Resposta proibida do CORS: o CORS não está habilitado para esse bucket. 

A configuração do CORS é um documento ou uma política com regras que identificam as origens que você permitirá que acessem o bucket, as operações (métodos HTTP) compatíveis com cada origem e outras informações específicas da operação. Veja como [configurar o CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) no S3 usando o console do Amazon S3, AWS SDKs e a API REST. Para ter mais informações sobre o CORS e exemplos da configuração correspondente, consulte [Elementos do CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManageCorsUsing.html#cors-example-1).

## 403 Erro proibido: essa solicitação do CORS não é permitida.
<a name="cors-not-enabled"></a>

O erro `403 Forbidden` a seguir é recebido quando uma regra do CORS na configuração correspondente não coincide com os dados da sua solicitação.

Erro: HTTP/1.1 403 Resposta proibida do CORS: essa solicitação do CORS não é permitida.

Como resultado, esse erro `403 Forbidden` pode ocorrer por vários motivos:
+ A origem não é permitida.
+ Métodos não são permitidos.
+ Cabeçalhos solicitados não são permitidos.

Para cada solicitação que o Amazon S3 recebe, é necessário ter uma regra do CORS na configuração correspondente que coincida com os dados na solicitação. 

### A origem não é permitida
<a name="Origin-not-allowed"></a>

 O cabeçalho `Origin` em uma solicitação do CORS para seu bucket deve corresponder às origens do elemento `AllowedOrigins` na configuração do CORS. Um caractere curinga (`"*"`) no elemento `AllowedOrigins` corresponderia a todos os métodos HTTP. Para ter mais informações sobre como atualizar o elemento `AllowedOrigins`, consulte [Configurar o compartilhamento de recursos de origem cruzada (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html).

 Por exemplo, se somente o domínio `http://www.example1.com` estiver incluído no elemento `AllowedOrigins`, uma solicitação do CORS enviada do domínio `http://www.example2.com` receberá o erro `403 Forbidden`. 

O exemplo a seguir mostra parte de uma configuração do CORS que inclui o domínio `http://www.example1.com` no elemento `AllowedOrigins`. 

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

Para que uma solicitação do CORS enviada do domínio `http://www.example2.com` seja bem-sucedida, o domínio `http://www.example2.com` deve ser incluído no elemento `AllowedOrigins` da configuração do CORS. 

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

### Métodos não são permitidos
<a name="Methods-not-allowed"></a>

 Os métodos HTTP especificados no `Access-Control-Request-Method` em uma solicitação de CORS para o bucket devem corresponder ao método ou aos métodos listados no elemento `AllowedMethods` na configuração de CORS. Um caractere curinga (`"*"`) em `AllowedMethods` corresponderia a todos os métodos HTTP. Para ter mais informações sobre como atualizar o elemento `AllowedOrigins`, consulte [Configurar o compartilhamento de recursos de origem cruzada (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html). 

Na configuração do CORS, é possível especificar os seguintes métodos para o elemento `AllowedMethods`:
+ `GET`
+ `PUT`
+ `POST`
+ `DELETE`
+ `HEAD`

O exemplo a seguir mostra parte de uma configuração do CORS que inclui o método `GET` no elemento `AllowedMethods`. Somente solicitações que incluíssem o método `GET` seriam bem-sucedidas. 

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

 Se um método HTTP (por exemplo, `PUT`) fosse usado em uma solicitação do CORS ou incluído em uma solicitação de pré-processamento do CORS no bucket, mas o método não estivesse presente na configuração do CORS, a solicitação geraria um erro `403 Forbidden`. Para permitir essa solicitação do CORS ou a solicitação de pré-processamento do CORS, o método `PUT` deve ser adicionado à sua configuração do CORS. 

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

### Cabeçalhos solicitados não são permitidos
<a name="Headers-not-allowed"></a>

 Os cabeçalhos listados no cabeçalho `Access-Control-Request-Headers` em uma solicitação de pré-processamento devem corresponder aos cabeçalhos no elemento `AllowedHeaders` na configuração do CORS. Para ver uma lista de cabeçalhos comuns que podem ser usados em solicitações ao Amazon S3, consulte [Common Request Headers](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html). Para ter mais informações sobre como atualizar o elemento `AllowedHeaders`, consulte [Configurar o compartilhamento de recursos de origem cruzada (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html). 

O exemplo a seguir mostra parte de uma configuração do CORS que inclui o cabeçalho `Authorization` no elemento `AllowedHeaders`. Somente solicitações para o cabeçalho `Authorization` seriam bem-sucedidas. 

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

 Se um cabeçalho, por exemplo, `Content-MD5`, fosse incluído em uma solicitação do CORS, mas o cabeçalho não estivesse presente na configuração correspondente, a solicitação geraria um erro `403 Forbidden`. Para permitir essa solicitação do CORS, o cabeçalho `Content-MD5` deve ser adicionado à sua configuração do CORS. Se você quiser transmitir os cabeçalhos `Authorization` e `Content-MD5` em uma solicitação do CORS para o bucket, confirme se os dois cabeçalhos estão incluídos no elemento `AllowedHeaders` em sua configuração do CORS. 

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

## Cabeçalhos não encontrados na resposta do CORS
<a name="Headers-not-found"></a>

 O elemento `ExposeHeaders` na configuração do CORS identifica quais cabeçalhos de resposta você gostaria de tornar acessíveis aos scripts e às aplicações executados em navegadores, em resposta a uma solicitação do CORS.

Se os objetos armazenados no bucket do S3 tiverem metadados definidos pelo usuário (por exemplo, `x-amz-meta-custom-header`) além dos dados de resposta, esse cabeçalho personalizado poderá conter metadados ou informações adicionais a serem acessados do código JavaScript do lado do cliente. No entanto, por padrão, os navegadores bloqueiam o acesso a cabeçalhos personalizados por motivos de segurança. Para permitir que o JavaScript do lado do cliente acesse cabeçalhos personalizados, é necessário incluir o cabeçalho na configuração do CORS.

 No exemplo abaixo, o cabeçalho `x-amz-meta-custom-header1` está incluído no elemento `ExposeHeaders`. O `x-amz-meta-custom-header2` não está incluído no elemento `ExposeHeaders` e não está presente na configuração do CORS. Na resposta, somente os valores incluídos no elemento `ExposeHeaders` seriam exibidos. Se a solicitação incluísse o cabeçalho `x-amz-meta-custom-header2` no cabeçalho `Access-Control-Expose-Headers`, a resposta ainda exibiria `200 OK`. No entanto, somente o cabeçalho permitido, por exemplo, `x-amz-meta-custom-header`, seria exibido na resposta. 

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

 Para garantir que todos os cabeçalhos apareçam na resposta, adicione todos os cabeçalhos permitidos ao elemento `ExposeHeaders` na configuração do CORS, conforme mostrado abaixo. 

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

## Considerações sobre o CORS nas integrações de proxy do S3
<a name="cors-in-proxy"></a>

Se você estiver enfrentando erros e já tiver conferido a configuração do CORS no bucket do S3, e a solicitação de origem cruzada for enviada para proxies, como o AWS CloudFront, tente o seguinte:
+ Defina as configurações para permitir o método `OPTIONS` para solicitações HTTP.
+ Configure o proxy para encaminhar os seguintes cabeçalhos: `Origin`, `Access-Control-Request-Headers` e `Access-Control-Request-Method`.
+ Configure as definições de proxy para incluir o cabeçalho de origem na chave de cache. Isso é importante porque os proxies de armazenamento em cache que não incluem o cabeçalho de origem na respectiva chave de cache podem fornecer respostas em cache que não incluem os cabeçalhos de CORS apropriados para origens diferentes.

Alguns proxies fornecem recursos predefinidos para solicitações do CORS. Por exemplo, no CloudFront, você pode configurar uma política que inclua os cabeçalhos 

 que permitem solicitações de compartilhamento de recursos entre origens (CORS) quando a origem é um bucket do Amazon S3.

 Essa política tem as seguintes configurações: 
+ Cabeçalhos incluídos nas solicitações de origem:

   `Origin`

   `Access-Control-Request-Headers`

   `Access-Control-Request-Method`
+ Cookies incluídos nas solicitações de origem: nenhum
+ Strings de consulta incluídas em solicitações de origem: nenhuma

Para ter mais informações, consulte [Controlar as solicitações de origem com uma política](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.htm) ou [Usar políticas de solicitação de origem gerenciadas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html#managed-origin-request-policy-cors-s3) no *Guia do desenvolvedor do CloudFront*. 

# Tutoriais de site estático
<a name="static-website-tutorials"></a>

Os tutoriais ou as demonstrações a seguir apresentam procedimentos de como criar e configurar um bucket de uso geral do Amazon S3 para hospedagem de site estático e hospedagem de streaming de vídeo sob demanda. O objetivo desses tutoriais é fornecer orientação geral. Esses tutoriais foram projetados para um ambiente de tipo de laboratório e usam nomes de empresas, nomes de usuários e assim por diante. Eles não se destinam ao uso direto em um ambiente de produção sem uma revisão e adaptação cuidadosas para atender às necessidades exclusivas do ambiente da organização. 
+ [Hospedagem de transmissão sob demanda com o Amazon S3, Amazon CloudFront e Amazon Route 53](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tutorial-s3-cloudfront-route53-video-streaming): é possível usar o Amazon S3 com o Amazon CloudFront para hospedar e ver vídeos sob demanda, com segurança e escalabilidade. Quando o vídeo estiver empacotado nos formatos corretos, você poderá armazená-lo em um servidor ou em um bucket de uso geral do S3 e, depois, enviá-lo com o CloudFront conforme solicitado pelos visualizadores. Nesse tutorial, você aprenderá a configurar um bucket de uso geral para hospedar o streaming de vídeo sob demanda usando o CloudFront para entrega e o Amazon Route 53 para gerenciamento de Sistema de Nomes de Domínio (DNS) e de domínio personalizado. O CloudFront veiculará o vídeo de seu cache, recuperando-o do bucket de uso geral somente se ele ainda não estiver armazenado em cache. Esse recurso de gerenciamento de cache acelera a entrega de seu vídeo aos espectadores globalmente, com baixa latência, alto throughput e altas velocidades de transferência. Para mais informações sobre o gerenciamento do cache do CloudFront, consulte [Otimizar o armazenamento em cache e a disponibilidade](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ConfiguringCaching.html) no *Guia do desenvolvedor do Amazon CloudFront*.
+ [Configurar um site estático](https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html): é possível configurar um bucket de uso geral para funcionar como um site estático. Esse tutorial mostra as etapas de hospedagem de um site no Amazon S3, incluindo como criar um bucket, como habilitar a hospedagem de site estático no console do S3, como criar um documento de índice e como criar um documento de erro. Consulte mais informações em [Hospedagem de um site estático usando o Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html).
+ [Configurar um site estático usando um domínio personalizado registrado no Route 53](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html): é possível criar e configurar um bucket de uso geral para hospedar um site estático e criar redirecionamentos no S3 para um site com um nome de domínio personalizado que é registrado com o Amazon Route 53. Você usa o Route 53 para registrar domínios e definir onde você deseja rotear o tráfego de internet para o seu domínio. Esse tutorial mostra como criar registros de alias do Route 53 que roteia o tráfego para o domínio e o subdomínio ao bucket de uso geral que contém o arquivo HTML. Consulte mais informações em [Use your domain for a static website in an Amazon S3 bucket](https://docs.aws.amazon.com//Route53/latest/DeveloperGuide/getting-started-s3.html) no *Guia do desenvolvedor do Amazon Route 53*. Depois de concluir esse tutorial, você tem a opção de usar o CloudFront para melhorar o desempenho do seu site. Consulte mais informações em [Acelerar seu site com o Amazon CloudFront](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-cloudfront-walkthrough.html). 
+ [Deploying a static website to AWS Amplify Hosting from an S3 general purpose bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-amplify): recomendamos que você use o [AWS Amplify Hosting](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) para hospedar conteúdo de site estático armazenado no S3. O Amplify Hosting é um serviço totalmente gerenciado que facilita a implantação de seus sites em uma rede de entrega de conteúdo (CDN) disponível globalmente, desenvolvida pelo Amazon CloudFront, permitindo hospedagem segura de sites estáticos sem configuração extensiva. Com o AWS Amplify Hosting, você pode selecionar a localização de seus objetos no bucket de uso geral, implantar seu conteúdo em uma CDN gerenciada e gerar um URL HTTPS público para que seu site possa ser acessado em qualquer lugar. Para obter mais informações, consulte [Deploying a static website from S3 using the Amplify console](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) no *Guia do usuário do AWS Amplify Hosting*.

# Tutorial: Hospedagem de transmissão sob demanda com o Amazon S3, Amazon CloudFront e Amazon Route 53
<a name="tutorial-s3-cloudfront-route53-video-streaming"></a>

Você pode usar o Amazon S3 com o Amazon CloudFront para hospedar vídeos para visualização sob demanda, com segurança e escalabilidade. Transmissão de vídeo sob demanda (VOD - Video On Demand) significa que o conteúdo do vídeo é armazenado em um servidor e os espectadores podem assisti-lo a qualquer momento.

O CloudFront é um serviço de rede de entrega de conteúdo (CDN) rápido, altamente seguro e programável. O CloudFront pode fornecer seu conteúdo de modo seguro por HTTPS a partir de todos os locais da borda do CloudFront. Para mais informações sobre o CloudFront, consulte [O que é o Amazon CloudFront?](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) no *Guia do desenvolvedor do Amazon CloudFront*.

O cache do CloudFront reduz o número de solicitações às quais seu servidor de origem deve responder diretamente. Quando um espectador (usuário final) solicita um vídeo que você veicula com o CloudFront, a solicitação é encaminhada para o local da borda mais próximo de onde o visualizador está localizado. O CloudFront veicula o vídeo de seu cache, recuperando-o do bucket do S3 somente se ele ainda não estiver armazenado em cache. Esse recurso de gerenciamento de cache acelera a entrega de seu vídeo aos espectadores globalmente, com baixa latência, alto throughput e altas velocidades de transferência. Para mais informações sobre o gerenciamento do cache do CloudFront, consulte [Otimizar o armazenamento em cache e a disponibilidade](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ConfiguringCaching.html) no *Guia do desenvolvedor do Amazon CloudFront*.

![\[Diagrama que mostra como o mecanismo de cache do CloudFront funciona.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/cf-example-image-global.png)


**Objetivo**  
Neste tutorial, você configura um bucket do S3 para hospedar transmissão de vídeo sob demanda usando o CloudFront para entrega e o Amazon Route 53 para gerenciamento de Sistema de Nomes de Domínio (DNS) e de domínio personalizado.

**Topics**
+ [Pré-requisitos: registrar e configurar um domínio personalizado com o Route 53](#cf-s3-prerequisites)
+ [Etapa 1: criar um bucket do S3](#cf-s3-step1)
+ [Etapa 2: carregar um vídeo no bucket do S3](#cf-s3-step2)
+ [Etapa 3: Criar uma identidade do acesso de origem do CloudFront](#cf-s3-step3)
+ [Etapa 4: criar uma distribuição do CloudFront](#cf-s3-step4)
+ [Etapa 5: Acessar o vídeo por meio da distribuição do CloudFront](#cf-s3-step5)
+ [Etapa 6: Configurar sua distribuição do CloudFront para usar o seu nome de domínio personalizado](#cf-s3-step6)
+ [Etapa 7: acessar o vídeo do S3 por meio da distribuição do CloudFront com o nome de domínio personalizado](#cf-s3-step7)
+ [(Opcional) Etapa 8: exibir dados sobre solicitações recebidas pela distribuição do CloudFront](#cf-s3-step8)
+ [Etapa 9: limpeza](#cf-s3-step9)
+ [Próximas etapas](#cf-s3-next-steps)

## Pré-requisitos: registrar e configurar um domínio personalizado com o Route 53
<a name="cf-s3-prerequisites"></a>

Antes de iniciar este tutorial, você deve se inscrever e configurar um domínio personalizado (por exemplo, **example.com**) no Route 53 para poder configurar sua distribuição do CloudFront para usar um nome de domínio personalizado depois. 

Sem um nome de domínio personalizado, seu vídeo do S3 é acessível ao público e hospedado por meio do CloudFront em um URL semelhante a este: 

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

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

Depois de configurar sua distribuição do CloudFront para usar um nome de domínio personalizado configurado com o Route 53, seu vídeo do S3 fica publicamente acessível e hospedado pelo CloudFront em um URL semelhante a este: 

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

Por exemplo, **https://www.example.com/sample.mp4**. Um nome de domínio personalizado é mais simples e intuitivo para os espectadores usarem.

****  
Para registrar um nome de domínio personalizado, consulte [Registro de um novo nome de domínio usando o Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) no *Guia do desenvolvedor do Amazon Route 53*.

Quando você registra um nome de domínio com o Route 53, ele cria a zona hospedada que você usará posteriormente neste tutorial. Esta zona hospedada é onde você armazena informações sobre como encaminhar o tráfego para seu domínio, por exemplo, para uma instância do Amazon EC2 ou uma distribuição do CloudFront. 

Há tarifas associadas ao registro de domínios, à sua zona hospedada e às consultas de DNS recebidas pelo seu domínio. Para obter mais informações, consulte [Definição de preço do Amazon Route 53](https://aws.amazon.com/route53/pricing/). 

**nota**  
Ao registrar um domínio, você gasta dinheiro imediatamente e é irreversível. Você pode escolher não renovar automaticamente o domínio, mas paga antecipadamente e adquire o domínio por um ano). Para obter mais informações, consulte [Registrar um novo domínio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) no *Guia do desenvolvedor do Amazon Route 53*.

## Etapa 1: criar um bucket do S3
<a name="cf-s3-step1"></a>

Crie um bucket para armazenar o vídeo original que você pretende transmitir.

**Para criar um bucket**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Na barra de navegação na parte superior da página, escolha o nome da Região da AWS exibida no momento. Em seguida, escolha a região na qual você deseja criar um bucket. 
**nota**  
Para reduzir a latência e os custos e atender aos requisitos regulatórios, selecione uma região perto de você. Os objetos armazenados em uma região nunca saem dessa região, a menos que você os transfira para outra região. Para obter uma lista de Regiões da AWS do Amazon S3, consulte [Endpoints de AWS service (Serviço da AWS)](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) no *Referência geral da Amazon Web Services*.

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Selecione **Create bucket (Criar bucket)**. A página **Create bucket** (Criar bucket) é aberta.

1. Em **Bucket name** (Nome do bucket), insira um nome para o seu bucket (por exemplo, **tutorial-bucket**). 

   Para obter mais informações sobre como nomear buckets no Amazon S3, consulte [Regras de nomenclatura de buckets de uso geral](bucketnamingrules.md).

1. Em **Region** (Região), escolha a Região da AWS onde deseja que o bucket resida. 

   Se possível, você deve escolher a região mais próxima da maioria dos seus espectadores. Para obter mais informações sobre a região do bucket, consulte [Visão geral dos buckets de uso geral](UsingBucket.md).

1. Para **Block Public Access settings for this bucket** (Configurações de acesso de bloqueio público para este bucket), mantenha as configurações padrão (**Block *all*public access** (Bloquear todo acesso público) está habilitado). 

   Mesmo com **Block *all* public access** (Bloquear todo acesso público) habilitado, os espectadores ainda podem acessar o vídeo carregado por meio do CloudFront. Esse recurso é uma grande vantagem do uso do CloudFront para hospedar um vídeo armazenado no S3.

   Recomendamos que você mantenha todas as configurações ativadas, a menos que precise desabilitar uma ou mais delas para seu caso de uso. Para obter mais informações sobre como bloquear o acesso público, consulte [Bloquear o acesso público ao armazenamento do Amazon S3](access-control-block-public-access.md).

1. Mantenha as configurações restantes definidas conforme os padrões. 

   (Opcional) Se quiser definir configurações de bucket adicionais para o caso de uso específico, consulte [Criar um bucket de uso geral](create-bucket-overview.md).

1. Selecione **Create bucket** (Criar bucket).

## Etapa 2: carregar um vídeo no bucket do S3
<a name="cf-s3-step2"></a>

O procedimento a seguir descreve como carregar um arquivo de vídeo em um bucket do S3 usando o console. Se você for carregar muitos arquivos de vídeo grandes para o S3, pode ser interessante usar o [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration) para configurar transferências de arquivos rápidas e seguras. O Transfer Acceleration pode acelerar o carregamento de vídeo no seu bucket do S3 para transferências de longa distância de vídeos maiores. Para obter mais informações, consulte [Configurar transferências de arquivos rápidas e seguras usando o Amazon S3 Transfer Acceleration](transfer-acceleration.md). 

**Para carregar o arquivo para o bucket**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista **Buckets de uso geral**, escolha o nome do bucket que você criou na [Etapa 1](#cf-s3-step1) (por exemplo, **tutorial-bucket**) para fazer upload do arquivo nele.

1. Na guia **Objects** (Objetos) do bucket, escolha **Upload** (Fazer upload).

1. Na página **Upload** (Carregar), em **Files and folders** (Arquivos e pastas), escolha **Add files** (Adicionar arquivos).

1. Escolha um arquivo para carregar e, em seguida, escolha **Open** (Abrir).

   Por exemplo, você pode carregar um arquivo de vídeo chamado `sample.mp4`.

1. Escolha **Carregar**.

## Etapa 3: Criar uma identidade do acesso de origem do CloudFront
<a name="cf-s3-step3"></a>

Para restringir o acesso direto ao vídeo a partir do seu bucket do S3, crie um usuário especial do CloudFront denominado identidade do acesso de origem (OAI). Você vai associar a OAI à sua distribuição mais adiante neste tutorial. Usando uma OAI, você garante que os espectadores não possam ignorar o CloudFront e obter o vídeo diretamente do bucket do S3. Somente a OAI do CloudFront pode acessar o arquivo no bucket do S3. Para ter mais informações, consulte [Restringir o acesso a uma origem do Amazon S3](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) no *Guia do desenvolvedor do Amazon CloudFront*.



**Importante**  
Se o bucket que você está usando para hospedar seu site estático tiver sido criptografado usando a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), você deverá usar o controle de acesso à origem (OAC) em vez da identidade do acesso de origem (OAI) para proteger a origem. Não é possível usar a OAI com o SSE-KMS, então, em vez disso, você deve usar o OAC. Para ter mais informações sobre OAC, consulte [Restringir o acesso a uma origem do Amazon S3](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) no *Guia do desenvolvedor do Amazon CloudFront*.

**Para criar uma OAI do CloudFront**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Na seção **Segurança** do painel de navegação esquerdo, escolha **Acesso de origem**.

1. Na guia **Identidades**, escolha **Criar uma identidade de acesso de origem**.

1. Insira um nome (por exemplo, **S3-OAI**) para a nova identidade do acesso de origem.

1. Escolha **Criar**.

## Etapa 4: criar uma distribuição do CloudFront
<a name="cf-s3-step4"></a>

Para usar o CloudFront para oferecer e distribuir o vídeo em seu bucket do S3, você deve criar uma distribuição do CloudFront. 

**Topics**
+ [Crie uma distribuição do CloudFront](#cf-s3-step4-create-cloudfront)
+ [Revise a política de bucket](#cf-s3-step4-review-bucket-policy)

### Crie uma distribuição do CloudFront
<a name="cf-s3-step4-create-cloudfront"></a>

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel de navegação esquerdo, escolha **Distributions** (Distribuições).

1. Escolha **Create distribution (Criar distribuição)**.

1. Na seção **Origin** (Origem), para **Origin domain** (Domínio de origem), escolha o nome de domínio de sua origem do S3 que começa com o nome do bucket do S3 criado na [Etapa 1](#cf-s3-step1) (por exemplo, **tutorial-bucket**).

1. Em **Acesso de origem**, selecione **Identidades de acesso herdadas**.

1. Em **Origin access identity** (Identidade do acesso de origem), escolha a identidade do acesso de origem que você criou na [Etapa 3](#cf-s3-step3) (por exemplo, **S3-OAI**).

1. Em **Bucket policy** (Política de bucket), escolha **Yes, update the bucket policy** (Sim, atualizar a política de bucket). 

1. Para **Default cache behavior** (Comportamento do cache padrão), em **Viewer protocol policy** (Política de protocolo do espectador), escolha **Redirect HTTP to HTTPS** (Redirecionar HTTP para HTTPS). 

   Quando você escolhe este recurso, as solicitações de HTTP são automaticamente redirecionadas para HTTPS para proteger seu site e proteger os dados de seus espectadores. 

1. Para as outras configurações na seção **Default cache behaviors** (Configurações de comportamento de cache padrão), mantenha os valores padrão.

   (Opcional) Você pode controlar o tempo de permanência dos arquivos em um cache do CloudFront antes que o CloudFront encaminhe outra solicitação para a origem. A diminuição da duração permite fornecer conteúdo dinâmico. Aumentar a duração significa que os espectadores obtêm uma melhor performance, pois é mais provável que seus arquivos sejam fornecidos diretamente do cache de borda. Uma duração maior também reduz a carga na origem. Para obter mais informações, consulte [Gerenciamento do tempo que o conteúdo permanece em um cache de borda (validade)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) no *Guia do desenvolvedor do Amazon CloudFront*.

1. Para as outras seções, mantenha as demais configurações definidas como os padrões. 

   Para obter mais informações sobre essas opções de configuração, consulte [Valores que você especifica quando cria ou atualiza uma distribuição](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html) no *Guia do desenvolvedor do Amazon CloudFront*. 

1. Na parte inferior da página, escolha **Create Distribution** (Criar distribuição). 

1. Na guia **Geral** da sua distribuição do CloudFront, em **Detalhes**, o valor da coluna **Última modificação** da respectiva distribuição muda de **Implantando** para o carimbo de data/hora em que ela foi modificada pela última vez. Normalmente, esse processo leva alguns minutos. 

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

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Na lista **Buckets**, escolha o nome do bucket que você usou antes, como a origem de sua distribuição do CloudFront (por exemplo, **tutorial-bucket**).

1. Escolha a aba **Permissões**.

1. Na seção **Bucket policy** (Política de bucket), confirme que você vê uma instrução semelhante à seguinte no texto da 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 é a instrução que sua distribuição do CloudFront adicionou à sua política de bucket quando você escolheu **Yes, update the bucket policy** (Sim, atualizar a política de bucket) antes.

   Esta atualização de política de bucket indica que você configurou com êxito a distribuição do CloudFront para restringir o acesso ao bucket do S3. Devido a essa restrição, os objetos no bucket só podem ser acessados por meio da distribuição do CloudFront. 

## Etapa 5: Acessar o vídeo por meio da distribuição do CloudFront
<a name="cf-s3-step5"></a>

Agora, o CloudFront pode veicular o vídeo armazenado no seu bucket do S3. Para acessar seu vídeo por meio do CloudFront, você deve combinar seu nome de domínio de distribuição do CloudFront com o caminho para o vídeo no bucket do S3.

**Para criar um URL para o vídeo do S3 usando o nome de domínio de distribuição do CloudFront**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel de navegação esquerdo, escolha **Distributions** (Distribuições).

1. Para obter o nome do domínio de distribuição, faça o seguinte:

   1. Na coluna **Origins** (Origens), encontre a distribuição correta do CloudFront localizando seu nome de origem, que começa com o bucket do S3 que você criou na [Etapa 1](#cf-s3-step1) (por exemplo, **tutorial-bucket**). 

   1. Depois de encontrar a distribuição na lista, alargue a coluna **Domain name** (Nome de domínio) para copiar o valor do nome do domínio para sua distribuição do CloudFront.

1. Em uma nova guia do navegador, cole o nome do domínio de distribuição que você copiou. 

1. Retorne à guia do navegador anterior e abra o console do S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/). 

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Na lista **Buckets**, escolha o nome do bucket que você criou na [Etapa 1](#cf-s3-step1) (por exemplo, **tutorial-bucket**). 

1. Na lista **Objects** (Objetos), escolha o nome do vídeo que você carregiu na [Etapa 2](#cf-s3-step2) (por exemplo, `sample.mp4`). 

1. Na página de detalhes do objeto, na seção **Object overview** (Visão geral do objeto), copie o valor da **Key** (Chave). Esse valor é o caminho para o objeto de vídeo carregado no bucket do S3. 

1. Retorne à guia do navegador onde você colou anteriormente o nome do domínio de distribuição, insira uma barra (**/**) após o nome do domínio de distribuição e, em seguida, cole o caminho do vídeo que você copiou antes (por exemplo,`sample.mp4`). 

   Agora, seu vídeo do S3 está acessível ao público e hospedado por meio do CloudFront em um URL semelhante a este: 

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

   Substitua *CloudFront distribution domain name* (Nome de domínio de distribuição do CloudFront) e *Path to the S3 video* (Caminho para o vídeo S3) pelos valores apropriados. O URL do exemplo é: **https://d111111abcdef8.cloudfront.net/sample.mp4**.

## Etapa 6: Configurar sua distribuição do CloudFront para usar o seu nome de domínio personalizado
<a name="cf-s3-step6"></a>

Para usar seu próprio nome de domínio em vez do nome de domínio do CloudFront no URL para acessar o vídeo do S3, adicione um nome de domínio alternativo à distribuição do CloudFront. 

**Topics**
+ [Solicitar um certificado SSL](#cf-s3-step6-create-SSL)
+ [Adicione um nome de domínio alternativo à distribuição do CloudFront](#cf-s3-step6-custom-domain)
+ [Crie um registro do DNS para encaminhar o tráfego do seu nome de domínio alternativo para o nome de domínio da distribuição do CloudFront](#cf-s3-step6-DNS-record)
+ [Verifique se o IPv6 está habilitado para sua distribuição e crie outro registro do DNS, se necessário](#s3-step6-ipv6)

### Solicitar um certificado SSL
<a name="cf-s3-step6-create-SSL"></a>

Para permitir que seus espectadores usem HTTPS e seu nome de domínio personalizado no URL da transmissão de vídeo, use a AWS Certificate Manager (ACM) para solicitar um certificado Secure Sockets Layer (SSL). O certificado SSL estabelece uma conexão de rede criptografada com o site. 

1. Faça login no Console de gerenciamento da AWS e abra o console do ACM em [https://console.aws.amazon.com/acm/](https://console.aws.amazon.com/acm/).

1. Se a página introdutória for exibida, em **Provision certificates** (Certificados de provisão), escolha **Get Started** (Conceitos básicos).

1. Na página **Request a certificate** (Solicitar um certificado), escolha **Request a public certificate** (Solicitar um certificado público) e depois **Request a certificate** (Solicitar um certificado).

1. Em **Add domain names** (Adicionar nomes de domínios) (insira o nome do domínio totalmente qualificado do site que você deseja proteger usando um certificado SSL/TLS. Use um asterisco (`*`) para solicitar um certificado curinga, que protege vários sites no mesmo domínio. Para este tutorial, insira **\$1** e o nome de domínio personalizado que você configurou em [Pré-requisitos](#cf-s3-prerequisites). Para este exemplo, insira **\$1.example.com** e escolha **Next** (Avançar). 

   Para obter mais informações, consulte [Solicitar um certificado público do ACM (console)](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html#request-public-console) no *Guia do usuário do AWS Certificate Manager*.

1. Na página **Select validation method** (Selecionar método de validação), escolha **DNS validation** (Validação de DNS). Em seguida, escolha **Next** (Próximo). 

   Se você puder editar sua configuração de DNS, recomendamos usar a validação de domínio de DNS, em vez da validação de e-mail. A validação de DNS tem vários benefícios em relação à validação de e-mail. Para obter mais informações, consulte [Opção 1: Validação de DNS](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html) no *.Manual do usuário do AWS Certificate Manager*. 

1. (Opcional) Na página **Add tags** (Adicionar etiquetas), marque seu certificado com metadados.

1. Escolha **Revisar**. 

1. Na página **Review** (Revisão), verifique se as informações em **Domain name** (Nome de domínio) e **Validation method** (Método de validação) estão corretas. Escolha **Confirm and request** (Confirmar e solicitar). 

   A página **Validation** (Validação) mostra que sua solicitação está sendo processada e que o domínio de certificado está sendo validado. O certificado que aguarda validação está no estado **Pending validation** (Validação pendente). 

1. Na página **Validation** (Validação), escolha a seta para baixo à esquerda do seu nome de domínio personalizado e escolha **Create record in Route 53** (Criar registro no Route 53) para validar que você é o proprietário do domínio por meio do DNS.

   Isso adiciona um registro CNAME fornecido pelo AWS Certificate Manager na configuração do DNS.

1. Na caixa de diálogo **Create record in Route 53** (Criar registro no Route 53), escolha **Create** (Criar).

   A página **Validation** (Validação) agora deve exibir uma notificação de status de **Success** (Êxito) na parte inferior.

1. Selecione **Continue** (Continuar) para visualizar a página da lista **Certificates** (Certificados). 

   O **Status** de seu novo certificado muda de **Pending validation** (Validação pendente) para **Issued** (Emitida) em até 30 minutos.

### Adicione um nome de domínio alternativo à distribuição do CloudFront
<a name="cf-s3-step6-custom-domain"></a>

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel de navegação esquerdo, escolha **Distributions** (Distribuições).

1. Escolha o ID da distribuição que você criou na [Etapa 4](#cf-s3-step3).

1. Na guia **General** (Geral), vá para a seção **Settings** (Configurações) e escolha **Edit** (Editar).

1. Na página **Editar configurações**, em **Nome de domínio alternativo (CNAME): *opcional***, escolha **Adicionar item** para adicionar os nomes de domínio personalizados que você deseja usar no URL para o vídeo do S3 fornecido por essa distribuição do CloudFront.

   Neste tutorial, por exemplo, se você quiser encaminhar o tráfego para um subdomínio, como `www.example.com`, insira o nome do subdomínio (`www`) com o nome do domínio (`example.com`). Especificamente, insira **www.example.com**. 
**nota**  
O nome de domínio alternativo (CNAME) que você adicionar deve ser coberto pelo certificado SSL que você anexou anteriormente à sua distribuição do CloudFront.

1. ╬Para **Custom SSL certificate* optional***, (Certificado SSL personalizado - opcional), escolha o certificado SSL que você solicitou antes (por exemplo, **\$1.example.com**).
**nota**  
Se você não vir o certificado SSL imediatamente após solicitá-lo, aguarde 30 minutos, e atualize a lista até que o certificado SSL esteja disponível para você selecionar.

1. Mantenha as configurações restantes definidas conforme os padrões. Escolha **Salvar alterações**. 

1. Na guia **General** (Geral) para a distribuição, aguarde o valor de **Last modified** (Última modificação) mudar de **Deploying** (Em implantação) para o carimbo de data ehora em que a distribuição foi modificada pela última vez. 

### Crie um registro do DNS para encaminhar o tráfego do seu nome de domínio alternativo para o nome de domínio da distribuição do CloudFront
<a name="cf-s3-step6-DNS-record"></a>

1. Faça login no Console de gerenciamento da AWS e abra o console do Route 53 em [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. No painel de navegação, escolha **Hosted zones (Zonas hospedadas)**.

1. Na página **Hosted zones** (Zonas hospedadas), escolha o nome da zona hospedada que o Route 53 criou para você em [Pré-requisitos](#cf-s3-prerequisites) (por exemplo, **example.com**).

1. Selecione **Create record** (Criar registro) e, em seguida, use **Quick create record** (Criação rápida de registro). 

1. Para **Record name** (Nome de registro), mantenha o valor do nome do registro igual ao nome de domínio alternativo da distribuição do CloudFront que você adicionou antes.

   Neste tutorial, para encaminhar o tráfego para um subdomínio, como `www.example.com`, insira o nome do subdomínio sem o nome do domínio. Por exemplo, insira somente **www** no campo de texto antes do seu nome de domínio personalizado.

1. Em **Tipo de registro**, selecione **A: encaminhar o tráfego para um endereço IPv4 e alguns recursos da AWS**.

1. Para **Value** (Valor), escolha a opção **Alias** para habilitar o recurso de alias. 

1. Em **Route traffic to** (Encaminhar tráfego para), escolha **Alias to CloudFront distribution** (Alias para distribuição do CloudFront). 

1. Na caixa **Choose distribution** (Escolher distribuição), escolha o nome de domínio da distribuição do CloudFront que você criou na [Etapa 4](#cf-s3-step4). 

   Para localizar o nome de domínio da sua distribuição do CloudFront, faça o seguinte:

   1. Em uma nova guia do navegador, entre no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v3/home](https://console.aws.amazon.com/cloudfront/v3/home).

   1. No painel de navegação esquerdo, escolha **Distributions** (Distribuições).

   1. Na coluna **Origins** (Origens), encontre a distribuição correta do CloudFront localizando seu nome de origem, que começa com o bucket do S3 que você criou na [Etapa 1](#cf-s3-step1) (por exemplo, **tutorial-bucket**).

   1. Depois de encontrar a distribuição na lista, amplie a coluna **Domain name** (Nome de domínio) para ver o valor do nome do domínio para sua distribuição do CloudFront. 

1. Na página **Create record** (Criar registro) no console do Route 53, para as demais configurações, mantenha os padrões. 

1. Escolha **Criar registros**.

### Verifique se o IPv6 está habilitado para sua distribuição e crie outro registro do DNS, se necessário
<a name="s3-step6-ipv6"></a>

Se o IPv6 estiver habilitado para sua distribuição, você deve criar outro registro do DNS. 

1. Para verificar se o IPv6 está habilitado para sua distribuição, faça o seguinte:

   1. Faça login no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

   1. No painel de navegação esquerdo, escolha **Distributions** (Distribuições).

   1. Escolha o ID da distribuição do CloudFront que você criou na [Etapa 4](#cf-s3-step4).

   1. Na guia **General** (Geral), em **Settings** (Configurações), verifique se **IPv6** está definido como **Enabled** (Habilitado). 

      Se o IPv6 estiver habilitado para sua distribuição, você deve criar outro registro do DNS.

1. Se o IPv6 estiver habilitado para sua distribuição, faça o seguinte para criar um registro DNS:

   1. Faça login no Console de gerenciamento da AWS e abra o console do Route 53 em [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

   1. No painel de navegação, escolha **Hosted zones (Zonas hospedadas)**.

   1. Na página **Hosted zones** (Zonas hospedadas), escolha o nome da zona hospedada que o Route 53 criou para você em [Pré-requisitos](#cf-s3-prerequisites) (por exemplo, **example.com**).

   1. Selecione **Create record** (Criar registro) e, em seguida, use **Quick create record** (Criação rápida de registro).

   1. Para **Record name** (Nome de registro), no campo de texto antes do nome de domínio personalizado, digite o mesmo valor que você digitou quando criou antes o registro do DNS do IPv4. Por exemplo, neste tutorial, para encaminhar o tráfego para o subdomínio`www.example.com`, insira apenas **www**. 

   1. Em **Tipo de registro**, escolha **AAAA: encaminha o tráfego para um endereço IPv6 e alguns recursos da AWS**. 

   1. Para **Value** (Valor), escolha a opção **Alias** para habilitar o recurso de alias. 

   1. Em **Route traffic to** (Encaminhar tráfego para), escolha **Alias to CloudFront distribution** (Alias para distribuição do CloudFront). 

   1. Na caixa **Choose distribution** (Escolher distribuição), escolha o nome de domínio da distribuição do CloudFront que você criou na [Etapa 4](#cf-s3-step4). 

   1. Mantenha as configurações restantes definidas conforme os padrões. 

   1. Escolha **Criar registros**.

## Etapa 7: acessar o vídeo do S3 por meio da distribuição do CloudFront com o nome de domínio personalizado
<a name="cf-s3-step7"></a>

Para acessar o vídeo do S3 usando o URL personalizado, você deve combinar seu nome de domínio alternativo com o caminho para o vídeo no bucket do S3. 

**Criar um URL personalizado para acessar o vídeo do S3 por meio da distribuição do CloudFront**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel de navegação esquerdo, escolha **Distributions** (Distribuições).

1. Para obter o nome de domínio alternativo da sua distribuição do CloudFront, faça o seguinte:

   1. Na coluna **Origins** (Origens), encontre a distribuição correta do CloudFront procurando seu nome de origem, que começa com o nome do bucket do S3 que você criou na [Etapa 1](#cf-s3-step1) (por exemplo, **tutorial-bucket**). 

   1. Depois de encontrar a distribuição na lista, alargue a coluna **Alternate domain names** (Nomes de domínio alternativos) para copiar o valor do nome de domínio alternativo de sua distribuição do CloudFront.

1. Em uma nova guia do navegador, cole o nome de domínio alternativo da distribuição do CloudFront. 

1. Retorne à guia anterior do navegador e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/). 

1. Encontre o caminho para o seu vídeo S3, como explicado na [Etapa 5](#cf-s3-step5). 

1. Retorne à guia do navegador onde você colou anteriormente o nome de domínio alternativo, insira uma barra (**/**) e cole o caminho para o vídeo do S3 (por exemplo, `sample.mp4`). 

   Agora, seu vídeo do S3 está acessível ao público e hospedado por meio do CloudFront em um URL personalizado semelhante a este: 

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

   Substitua *CloudFront distribution alternate domain name* (Nome alternativo de domínio de distribuição do CloudFront) e *Path to the S3 video* (Caminho para o vídeo S3) pelos valores apropriados. O URL do exemplo é: **https://www.example.com/sample.mp4**.

## (Opcional) Etapa 8: exibir dados sobre solicitações recebidas pela distribuição do CloudFront
<a name="cf-s3-step8"></a>

**Para exibir dados sobre solicitações recebidas pela sua distribuição do CloudFront**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel de navegação esquerdo, em **Reports & analytics** (Relatórios e análise), escolha os relatórios no console, que incluem **Cache statistics** (Estatísticas de cache), **Popular Objects** (Objetos populares), **Top Referrers** (Principais indicadores), **Usage** (Uso) e **Viewers** (Espectadores). 

   Você pode filtrar cada painel de relatório. Para obter mais informações, consulte [Relatórios do CloudFront no console](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/reports.html) no *Guia do desenvolvedor do Amazon CloudFront*. 

1. Para filtrar dados, escolha o ID da distribuição do CloudFront que você criou na [Etapa 4](#cf-s3-step4).

## Etapa 9: limpeza
<a name="cf-s3-step9"></a>

Se você hospedou um vídeo de transmissão do S3 usando o CloudFront e o Route 53 apenas como um exercício de aprendizado, exclua os recursos da AWS alocados para que não continuar a acumular encargos.

**nota**  
Ao registrar um domínio, você gasta dinheiro imediatamente e é irreversível. Você pode escolher não renovar automaticamente o domínio, mas paga antecipadamente e adquire o domínio por um ano). Para obter mais informações, consulte [Registrar um novo domínio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) no *Guia do desenvolvedor do Amazon Route 53*. 

**Topics**
+ [Exclua a distribuição do CloudFront](#cf-s3-step9-delete-cf)
+ [Excluir o registro DNS](#cf-s3-step9-delete-dns)
+ [Exclua a zona hospedada de seu domínio personalizado](#cf-s3-step9-delete-hosted-zone)
+ [Exclua o nome de domínio personalizado do Route 53](#cf-s3-step9-delete-domain)
+ [Exclua o vídeo original no bucket de origem do S3](#cf-s3-step9-delete-video)
+ [Exclua o bucket de origem do S3](#cf-s3-step9-delete-bucket)

### Exclua a distribuição do CloudFront
<a name="cf-s3-step9-delete-cf"></a>

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel de navegação esquerdo, escolha **Distributions** (Distribuições).

1. Na coluna **Origins** (Origens), encontre a distribuição correta do CloudFront procurando seu nome de origem, que começa com o nome do bucket do S3 que você criou na [Etapa 1](#cf-s3-step1) (por exemplo, **tutorial-bucket**). 

1. Para excluir a distribuição do CloudFront, você deve primeiro desabilitá-la.
   + Se o valor da coluna **Status** for **Enabled** (Habilitado) e o valor de **Last modified** (Última modificação) for o carimbo de data e hora em que a distribuição foi modificada pela última vez, continue para desabilitar a distribuição antes de excluí-la.
   + Se o valor de **Status** for **Habilitado** e o valor de **Última modificação** for **Implantando**, aguarde até que **Status** mude para o carimbo de data/hora em que a distribuição foi modificada pela última vez. Em seguida, continue para desabilitar a distribuição antes de excluí-la.

1. Para desabilitar a distribuição do CloudFront, faça o seguinte:

   1. Na lista **Distributions** (Distribuições), marque a caixa de seleção ao lado do ID da distribuição que você deseja excluir. 

   1. Para desabilitar a distribuição, escolha **Disable** (Desabilitar) e depois escolha **Disable** (Desabilitar) para confirmar.

      Se você desabilitar uma distribuição que tenha um nome de domínio alternativo associado a ela, o CloudFront deixará de aceitar o tráfego para esse nome de domínio (como `www.example.com`), mesmo que outra distribuição tenha um nome de domínio alternativo com um caractere curinga (\$1`*`) correspondente ao mesmo domínio (como \$1`*.example.com`).

   1. O valor da coluna **Status** é imediatamente alterado para **Disabled** (Desabilitado). Aguarde até que o valor de **Last modified** (Última modificação) mude de **Deploying** (Implantação) para o carimbo de data e hora em que a distribuição foi modificada pela última vez. 

      Como o CloudFront deve propagar essa alteração para todos os locais da borda, pode levar alguns minutos para que a atualização seja concluída e a opção **Delete** (Excluir) esteja disponível para você excluir a distribuição. 

1. Para excluir a distribuição desabilitada, faça o seguinte:

   1. Marque a caixa de seleção ao lado do ID da distribuição que você deseja excluir.

   1. Selecione **Delete (Excluir)** e depois escolha **Delete** (Excluir) para confirmar.

### Excluir o registro DNS
<a name="cf-s3-step9-delete-dns"></a>

Se você quiser excluir a zona hospedada pública para o domínio (incluindo o registro do DNS), consulte [Exclua a zona hospedada de seu domínio personalizado](#cf-s3-step9-delete-hosted-zone) no *Guia do desenvolvedor do Amazon Route 53*. Se você só deseja excluir o registro do DNS criado na [Etapa 6](#cf-s3-step6)), faça o seguinte:

1. Faça login no Console de gerenciamento da AWS e abra o console do Route 53 em [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. No painel de navegação, escolha **Hosted zones (Zonas hospedadas)**.

1. Na página **Hosted zones** (Zonas hospedadas), escolha o nome da zona hospedada que o Route 53 criou para você em [Pré-requisitos](#cf-s3-prerequisites) (por exemplo, **example.com**).

1. Na lista de registros, marque a caixa de seleção ao lado dos registros que você deseja excluir (os registros que você criou na [Etapa 6](#cf-s3-step6)). 
**nota**  
Você não pode excluir registros que têm um valor **Type** (Tipo) de **NS** ou **SOA**. 

1. Escolha **Delete records** (Excluir registros). 

1. Para confirmar a exclusão, selecione **Excluir**.

   As alterações nos registros demoram para serem propagadas até os servidores de DNS do Route 53. Atualmente, a única maneira de verificar se as alterações foram propagadas é usar a [ação da API GetChange](https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html). As alterações geralmente são propagadas para todos os servidores de nome do Route 53 em até 60 segundos.

### Exclua a zona hospedada de seu domínio personalizado
<a name="cf-s3-step9-delete-hosted-zone"></a>

**Atenção**  
Se quiser manter o registro do domínio, mas interromper o encaminhamento do tráfego da Internet para seu site ou sua aplicação Web, recomendamos excluir os registros na zona hospedada (conforme descrito na seção anterior), em vez de excluir a zona hospedada.   
Se você excluir uma zona hospedada, alguém pode usar o domínio e encaminhar o tráfego para seus próprios recursos usando seu nome de domínio.  
Além disso, se você excluir uma zona hospedada, não será possível cancelar a exclusão. É necessário criar uma nova zona hospedada e atualizar os servidores de nome para o registro do domínio, o que pode levar até 48 horas para entrar em vigor.   
Se desejar tornar o domínio indisponível na Internet, recomendamos que você transfira seu serviço de DNS para um serviço de DNS gratuito e, em seguida, elimine a zona hospedada do Route 53. Isso impede que futuras consultas DNS sejam incorretamente encaminhadas.   
Se o domínio estiver registrado no Route 53, consulte [Adição ou alteração de servidores de nome e registros cola de um domínio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-name-servers-glue-records.html) no *Guia do desenvolvedor do Amazon Route 53* para obter informações sobre como substituir servidores de nome do Route 53 por servidores de nome do novo serviço de DNS. 
Se o domínio estiver registrado com outro registrador, use o método fornecido pelo registrador para alterar os servidores de nome do domínio. 
Se você estiver excluindo uma zona hospedada de um subdomínio (`www.example.com`), não será necessário alterar os servidores de nome do domínio (`example.com`).

1. Faça login no Console de gerenciamento da AWS e abra o console do Route 53 em [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. No painel de navegação, escolha **Hosted zones (Zonas hospedadas)**.

1. Na página **Hosted zones** (Zonas hospedadas), escolha o nome da zona hospedada que você deseja excluir.

1. Na guia **Records** (Registros) de sua zona hospedada, verifique se a zona hospedada que você deseja excluir contém apenas um registro **DNS** e um **SOA**.

   Se ele contiver registros adicionais, exclua-os.

   Se você criou registros de NS para subdomínios na zona hospedada, exclua esses registros também.

1. Na guia **DNSSEC signing** (Assinatura de DNSSEC) para sua zona hospedada, desabilite a assinatura DNNSSEC, se ela estiver habilitada. Para obter mais informações, consulte [Desabilitação de assinatura de DNSSEC](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-disable.html) no *Guia do desenvolvedor do Amazon Route 53*.

1. Na parte superior da página de detalhes da zona hospedada, selecione**Delete zone** (Excluir zona).

1. Insira **delete** para confirmar a exclusão e depois escolha **Delete** (Excluir).

### Exclua o nome de domínio personalizado do Route 53
<a name="cf-s3-step9-delete-domain"></a>

A maioria dos domínios de nível superior (TLDs) permite a exclusão do registro quando ele não é mais necessário. Se você excluir um registro de nome de domínio do Route 53 antes de o registro ser programado para expirar, a AWS não reembolsa a taxa de registro. Para obter mais informações, consulte [Exclusão de um registro de nome de domínio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-delete.html) no *Guia do desenvolvedor do Amazon Route 53*.

**Importante**  
Se desejar transferir o domínio entre Contas da AWS ou transferir o domínio para outro registrador, não exclua um domínio esperando poder registrá-lo de novo imediatamente. Em vez disso, consulte a documentação aplicável no *Guia do desenvolvedor do Amazon Route 53*:  
[Transferência de um domínio para uma diferente Conta da AWS](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-between-aws-accounts.html)
[Transferência de um domínio do Amazon Route 53 para outro registrador](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-from-route-53.html)

### Exclua o vídeo original no bucket de origem do S3
<a name="cf-s3-step9-delete-video"></a>

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Na lista **Bucket name** (Nome do bucket), escolha o nome do bucket para o qual carregou o vídeo na [Etapa 2](#cf-s3-step2) (por exemplo, **tutorial-bucket**).

1. Na guia **Objects** (Objetos), marque a caixa de seleção ao lado do nome do objeto que você deseja excluir (por exemplo, `sample.mp4`).

1. Escolha **Excluir**. 

1. Em **Permanently delete objects?**, (Excluir objetos permanentemente?), insira **permanently delete** para confirmar que deseja excluir esse objeto.

1. Escolha **Delete objects** (Excluir objetos).

### Exclua o bucket de origem do S3
<a name="cf-s3-step9-delete-bucket"></a>

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Na lista **Buckets**, escolha o botão de opção ao lado do nome do bucket que você criou na [Etapa 1](#cf-s3-step1) (por exemplo, **tutorial-bucket**).

1. Escolha **Excluir**.

1. Na página **Delete bucket** (Excluir bucket), confirme se deseja excluir o bucket inserindo o nome do bucket no campo de texto e escolha **Delete bucket** (Excluir bucket).

## Próximas etapas
<a name="cf-s3-next-steps"></a>

Depois de concluir este tutorial, você pode continuar a explorar os seguintes casos de uso relacionados:
+ Transcodifique vídeos do S3 em formatos de streaming necessários para uma televisão ou dispositivo conectado específico antes de hospedar esses vídeos com uma distribuição do CloudFront.

  Para usar as Operações em Lote do Amazon S3, o AWS Lambda e o AWS Elemental MediaConvert a fim de transcodificar em lote um conjunto de vídeos para uma variedade de formatos de mídia de saída, consulte [Tutorial: vídeos de transcodificação em lote com o Operações em Lote do S3](tutorial-s3-batchops-lambda-mediaconvert-video.md). 
+ Hospede outros objetos armazenados no S3, como imagens, áudio, animações, folhas de estilo, HTML, JavaScript, aplicações React etc., usando o CloudFront e o Route 53.

  Por exemplo, consulte [Tutorial: Configurar um site estático usando um domínio personalizado registrado no Route 53](website-hosting-custom-domain-walkthrough.md) e [Acelerar seu site com o Amazon CloudFront](website-hosting-cloudfront-walkthrough.md). 
+ Use [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration) para configurar transferências de arquivos rápidas e seguras. O Transfer Acceleration pode acelerar o carregamento de vídeo no seu bucket do S3 para transferências de longa distância de vídeos maiores. O Transfer Acceleration melhora a performance da transferência roteando o tráfego pelos locais da borda distribuídos globalmente do CloudFront e pelas redes de estrutura da AWS. Ele também usa otimizações de protocolo de rede. Para obter mais informações, consulte [Configurar transferências de arquivos rápidas e seguras usando o Amazon S3 Transfer Acceleration](transfer-acceleration.md). 

# Tutorial: configurar um site estático no Amazon S3
<a name="HostingWebsiteOnS3Setup"></a>

**Importante**  
O Amazon S3 agora aplica criptografia do lado do servidor com chaves gerenciadas do Amazon S3 (SSE-S3) como nível básico de criptografia para cada bucket no Amazon S3. Desde 5 de janeiro de 2023, todos os novos uploads de objetos para o Amazon S3 são automaticamente criptografados sem custo adicional e sem impacto na performance. O status de criptografia automática para a configuração de criptografia padrão do bucket do S3 e para novos uploads de objetos está disponível em logs do CloudTrail, no Inventário S3, na Lente de Armazenamento do S3, no console do Amazon S3 e como cabeçalho adicional de resposta da API do Amazon S3 na AWS CLI e em SDKs da AWS. Para obter mais informações, consulte [Perguntas frequentes sobre criptografia padrão](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Você pode configurar um bucket do Amazon S3 para funcionar como um site. Este exemplo conduz você pelas etapas de hospedagem de um site no Amazon S3.

**Importante**  
O tutorial a seguir exige que o Bloqueio de Acesso Público seja desabilitado. Recomendamos manter o Bloqueio de Acesso Público habilitado. Se quiser manter todas as quatro configurações do Bloqueio de Acesso Público habilitadas e hospedar um site estático, use o controle de acesso à origem (OAC) do Amazon CloudFront. O Amazon CloudFront fornece os recursos necessários para configurar um site estático seguro. Os sites estáticos do Amazon S3 só são compatíveis com endpoints HTTP. O Amazon CloudFront usa o armazenamento durável do Amazon S3 ao mesmo tempo que fornece cabeçalhos de segurança adicionais, como HTTPS. O HTTPS adiciona segurança criptografando uma solicitação HTTP normal e protegendo-a contra ataques cibernéticos comuns. Para obter mais informações, consulte [Conceitos básicos de um site estático seguro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html) no *Guia do desenvolvedor do Amazon CloudFront*. 

**Topics**
+ [Etapa 1: Criar um bucket](#step1-create-bucket-config-as-website)
+ [Etapa 2: Habilitar hospedagem de site estático](#step2-create-bucket-config-as-website)
+ [Etapa 3: editar as configurações do Bloqueio de acesso público](#step3-edit-block-public-access)
+ [Etapa 4: Adicionar política de bucket que torna o conteúdo do bucket publicamente disponível](#step4-add-bucket-policy-make-content-public)
+ [Etapa 5: Configurar um documento de índice](#step5-upload-index-doc)
+ [Etapa 6: configurar um documento de erros](#step6-upload-error-doc)
+ [Etapa 7: testar o endpoint do site](#step7-test-web-site)
+ [Etapa 8: Limpar](#getting-started-cleanup-s3-website-overview)

## Etapa 1: Criar um bucket
<a name="step1-create-bucket-config-as-website"></a>

As instruções a seguir fornecem uma visão geral de como criar seus buckets para hospedagem de sites. Para obter instruções detalhadas passo a passo sobre como criar um bucket, consulte [Criar um bucket de uso geral](create-bucket-overview.md).

**Para criar um bucket**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Selecione **Create bucket (Criar bucket)**.

1. Insira o **Bucket name** (Nome do bucket) (por exemplo, **example.com**).

1. Selecione a região onde você deseja criar o bucket. 

   Escolha uma região próxima de você para minimizar a latência e os custos ou atender a requisitos normativos. A região escolhida determina o endpoint de site do Amazon S3. Para obter mais informações, consulte [Endpoints de site](WebsiteEndpoints.md).

1. Para aceitar as configurações padrão e criar o bucket, escolha **Create (Criar)**.

## Etapa 2: Habilitar hospedagem de site estático
<a name="step2-create-bucket-config-as-website"></a>

Depois de criar um bucket, você pode habilitar a hospedagem de site estático para seu bucket. Você pode criar um bucket novo ou usar um existente.

**Como habilitar a hospedagem de sites estáticos**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket para o qual você deseja habilitar a hospedagem de site estático.

1. Escolha **Properties (Propriedades)**.

1. Em **Static website hosting (Hospedagem estática de sites)**, escolha **Edit (Editar)**.

1. Escolha **Use this bucket to host a website (Usar este bucket para hospedar um site)**. 

1. Em **Static website hosting (Hospedagem estática de sites)**, escolha **Enable (Ativar)**.

1. Em **Index Document (Documento de índice)**, insira o nome do arquivo do documento de índice, que geralmente é `index.html`. 

   O nome do documento de índice diferencia letras maiúsculas de minúsculas e deve corresponder exatamente ao nome do arquivo do documento de índice HTML do qual você planeja fazer upload para o bucket do S3. Quando você configura um bucket para hospedagem de site, deve especificar um documento de índice. O Amazon S3 retorna esse documento de índice quando as solicitações são feitas para o domínio raiz ou alguma subpasta. Para obter mais informações, consulte [Configurar um documento de índice](IndexDocumentSupport.md).

1. Para fornecer seu próprio documento de erros personalizado para erros da classe 4XX, em **Error document (Documento de erros)**, insira o nome de arquivo do documento de erros personalizado. 

   O nome do documento de erro diferencia letras maiúsculas de minúsculas e deve corresponder exatamente ao nome do arquivo do documento de erro HTML do qual você planeja fazer upload para o bucket do S3. Se você não especificar um documento de erro personalizado e ocorrer um erro, o Amazon S3 retornará um documento de erro HTML padrão. Para obter mais informações, consulte [Configurar um documento de erro personalizado](CustomErrorDocSupport.md).

1. (Opcional) Se você quiser especificar regras avançadas de redirecionamento em **Redirection rules** (Regras de redirecionamento), use JSON para descrevê-las.

   Por exemplo, você pode encaminhar solicitações condicionalmente de acordo com nomes de chave de objeto ou prefixos específicos na solicitação. Para obter mais informações, consulte [Configurar regras de redirecionamento para usar redirecionamentos condicionais avançados](how-to-page-redirect.md#advanced-conditional-redirects).

1. Selecione **Save changes**.

   O Amazon S3 permite a hospedagem estática de sites para seu bucket. Na parte inferior da página, em **Static website hosting (Hospedagem estática de sites)**, você verá o endpoint do site do seu bucket.

1. Em **Static website hosting (Hospedagem de sites estáticos)**, anote o **Endpoint**.

   O **Endpoint** é o endpoint do site do Amazon S3 para o bucket. Depois de concluir a configuração do bucket como um site estático, é possível usar esse endpoint para testar o site.

## Etapa 3: editar as configurações do Bloqueio de acesso público
<a name="step3-edit-block-public-access"></a>

Por padrão, o Amazon S3 bloqueia o acesso público à sua conta e aos seus buckets. Se quiser usar um bucket para hospedar um site estático, use estas etapas para editar as configurações de bloqueio de acesso público. 

**Atenção**  
Antes de concluir estas etapas, revise [Bloquear o acesso público ao armazenamento do Amazon S3](access-control-block-public-access.md) para garantir que você entenda e aceite os riscos envolvidos em permitir o acesso público. Ao desativar as configurações de bloqueio de acesso público para tornar seu bucket público, qualquer pessoa na Internet pode acessá-lo. Recomendamos que você bloqueie todo o acesso público aos buckets.

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Escolha o nome do bucket configurado como um site estático.

1. Escolha **Permissions (Permissões)**.

1. Em **Block public access (bucket settings) (Bloqueio de acesso público (configurações de bucket)**, escolha **Edit (Editar)**.

1. Desmarque **Block *all* public access (Bloquear todo acesso público)** e escolha **Save changes (Salvar alterações)**.  
![\[O console do Amazon S3, que mostra as configurações do bucket do Bloqueio de Acesso Público.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   O Amazon S3 desativa as configurações do Bloqueio de Acesso Público para o bucket. Para criar um site público estático, talvez também seja necessário [editar as configurações do Bloqueio de Acesso Público](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) para sua conta antes de adicionar uma política de bucket. Se as configurações do Bloqueio de Acesso Público da conta estiverem ativadas no momento, você verá uma observação em **Bloquear acesso público (configurações de bucket)**.

## Etapa 4: Adicionar política de bucket que torna o conteúdo do bucket publicamente disponível
<a name="step4-add-bucket-policy-make-content-public"></a>

Depois de editar as configurações do Bloqueio de acesso público do S3, é possível adicionar uma política de bucket para conceder acesso público de leitura ao bucket. Ao conceder um acesso público de leitura, qualquer pessoa na Internet pode acessar seu bucket.

**Importante**  
A política a seguir é somente um exemplo e concede acesso total aos conteúdos do bucket. Antes de prosseguir com esta etapa, revise [Como posso proteger os arquivos no meu bucket do Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/) para garantir que você entende as práticas recomendadas a fim de proteger os arquivos no bucket do S3 e os riscos envolvidos na concessão de acesso público.

1. Em **Buckets**, escolha o nome do seu bucket.

1. Escolha **Permissions (Permissões)**.

1. Em **Bucket Policy (Política de bucket)**, escolha **Edit (Editar)**.

1. Para conceder acesso público de leitura ao site, copie a política de bucket a seguir e cole-a no **Bucket policy editor (Editor de política de bucket)**.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PublicReadGetObject",
               "Effect": "Allow",
               "Principal": "*",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::Bucket-Name/*"
               ]
           }
       ]
   }
   ```

1. Atualize o `Resource` para o nome do bucket.

   Na política de bucket do exemplo anterior, *Bucket-Name* é um espaço reservado para o nome do bucket. Para usar essa política de bucket com seu próprio bucket, você deve atualizar esse nome para corresponder ao nome do seu bucket.

1. Selecione **Save changes**.

   Uma mensagem é exibida indicando que a política de bucket foi adicionada com sucesso.

   Se você vir um erro que diz `Policy has invalid resource`, confirme se o nome do bucket na política de bucket corresponde ao nome do seu bucket. Para obter informações sobre como adicionar uma política de bucket, consulte [Como adicionar uma política de bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)

   Se você receber uma mensagem de erro e não puder salvar a política do bucket, verifique suas configurações de acesso público para confirmar que você permite acesso público ao bucket.

## Etapa 5: Configurar um documento de índice
<a name="step5-upload-index-doc"></a>

Quando você habilita a hospedagem de sites estáticos para seu bucket, insere o nome do documento de índice (por exemplo, **index.html**). Depois de habilitar a hospedagem de sites estáticos para seu bucket, faça upload de um arquivo HTML com esse nome de documento de índice para o bucket.

**Como configurar o documento de índice**

1. Criar um arquivo `index.html`

   Se você não tiver um arquivo `index.html`, poderá usar o HTML a seguir para criar um:

   ```
   <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. Salve o arquivo de índice localmente.

   O nome do documento de índice deve corresponder exatamente ao nome do documento de índice que você inseriu na caixa de diálogo **Hospedagem de site estático**. O nome do documento de índice diferencia maiúsculas de minúsculas. Por exemplo, se você inserir `index.html` no nome do **Documentos de índice** na caixa de diálogo **Hospedagem de site estático**, o nome do arquivo do documento de índice também deverá ser `index.html` e não `Index.html`.

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket que você deseja usar para hospedar um site estático.

1. Habilite a hospedagem de sites estáticos para seu bucket e insira o nome exato do documento de índice (por exemplo, `index.html`). Para obter mais informações, consulte [Habilitar a hospedagem de sites](EnableWebsiteHosting.md).

   Depois de habilitar a hospedagem estática do site, vá para a etapa 6. 

1. Para fazer upload do documento de índice para o bucket, siga um destes procedimentos:
   + Arraste e solte o arquivo de índice na listagem de buckets do console.
   + Escolha **Upload (Fazer upload)** e siga as instruções para escolher e fazer upload do arquivo de índice.

   Para obter instruções detalhadas, consulte [Fazer upload de objetos](upload-objects.md).

1. (Opcional) Faça upload do conteúdo de outro site para o seu bucket.

## Etapa 6: configurar um documento de erros
<a name="step6-upload-error-doc"></a>

Ao habilitar a hospedagem de site estático para o bucket, insira o nome do documento de erro (por exemplo, **404.html**). Depois de habilitar a hospedagem de sites estáticos para seu bucket, faça upload de um arquivo HTML com esse nome de documento de erros para o bucket.

**Para configurar um documento de erros**

1. Crie um documento de erro, por exemplo `404.html`.

1. Salve o arquivo de documento de erros localmente.

   O nome do documento de erros diferencia maiúsculas e minúsculas e deve corresponder exatamente ao nome que você insere ao habilitar a hospedagem estática do site. Por exemplo, se você inserir `404.html` como o nome do **Error document (Documento de erro)** na caixa de diálogo **Static website hosting (Hospedagem de site estático)**, o nome de arquivo do documento de erro também deve ser `404.html`.

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket que você deseja usar para hospedar um site estático.

1. Habilite a hospedagem de site estático para seu bucket e insira o nome exato do documento de erro (por exemplo, `404.html`). Para obter mais informações, consulte [Habilitar a hospedagem de sites](EnableWebsiteHosting.md) e [Configurar um documento de erro personalizado](CustomErrorDocSupport.md).

   Depois de habilitar a hospedagem estática do site, vá para a etapa 6. 

1. Para fazer upload do documento de erros para o bucket, siga um destes procedimentos:
   + Arraste e solte o arquivo de documento de erros na lista de buckets do console.
   + Escolha **Upload (Fazer upload)** e siga as instruções para escolher e fazer upload do arquivo de índice.

   Para obter instruções detalhadas, consulte [Fazer upload de objetos](upload-objects.md).

## Etapa 7: testar o endpoint do site
<a name="step7-test-web-site"></a>

Depois de configurar a hospedagem de site estático para seu bucket, você pode testar o endpoint do site.

**nota**  
O Amazon S3 não oferece suporte para o acesso HTTPS ao site. Se quiser usar HTTPS, você poderá usar o Amazon CloudFront para servir um site estático hospedado no Amazon S3.  
Para obter mais informações, consulte [Como uso o CloudFront para veicular um site estático hospedado no Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/) e [Exigir HTTPS para comunicação entre visualizadores e o CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html).

1. Em **Buckets**, escolha o nome do seu bucket.

1. Escolha **Properties (Propriedades)**.

1. Na parte inferior da página, em **Static website hosting (Hospedagem estática de sites)**, escolha seu **Bucket website endpoint (Endpoint de site do Bucket)**.

   Seu documento de índice é aberto em uma janela separada do navegador.

Agora você tem um site hospedado no Amazon S3. Esse site está disponível no endpoint de site do Amazon S3. No entanto, você pode ter um domínio, como `example.com`, que deseja usar para exibir o conteúdo do site que criou. Talvez você também queira usar o suporte ao domínio raiz do Amazon S3 para atender solicitações para `http://www.example.com` e `http://example.com`. Isso exige etapas adicionais. Para ver um exemplo, consulte [Tutorial: Configurar um site estático usando um domínio personalizado registrado no Route 53](website-hosting-custom-domain-walkthrough.md). 

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

Se tiver criado o site apenas como exercício de aprendizado, você poderá excluir os recursos da AWS alocados, de maneira que deixe de acumular cobranças. Depois que você excluir os recursos da AWS, o site deixará de estar disponível. Para obter mais informações, consulte [Excluir um bucket de uso geral](delete-bucket.md).

# Tutorial: Configurar um site estático usando um domínio personalizado registrado no Route 53
<a name="website-hosting-custom-domain-walkthrough"></a>

Suponha que você queira hospedar um site estático no Amazon S3. Você registrou um domínio no Amazon Route 53 (por exemplo, `example.com`) e deseja que solicitações `http://www.example.com` e `http://example.com` sejam veiculadas a partir do conteúdo do Amazon S3. É possível usar essa demonstração para saber como hospedar um site estático e criar redirecionamentos no Amazon S3 para um site com um nome de domínio personalizado que é registrado com o Route 53. É possível trabalhar com um site existente que você deseja hospedar no Amazon S3 ou usar esta demonstração para começar do zero. 

Depois de concluir esta demonstração, você tem a opção de usar o Amazon CloudFront para melhorar a performance do seu site. Para obter mais informações, consulte [Acelerar seu site com o Amazon CloudFront](website-hosting-cloudfront-walkthrough.md).

**nota**  
Os endpoints de site do Amazon S3 não oferecem suporte a HTTPS ou pontos de acesso. Se quiser usar HTTPS, você poderá usar o Amazon CloudFront para servir um site estático hospedado no Amazon S3.  
Consulte um tutorial sobre como hospedar seu conteúdo com segurança com o CloudFront e o Amazon S3 em [Tutorial: Hospedagem de transmissão sob demanda com o Amazon S3, Amazon CloudFront e Amazon Route 53](tutorial-s3-cloudfront-route53-video-streaming.md). Para obter mais informações, consulte [Como uso o CloudFront para veicular um site estático hospedado no Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/) e [Exigir HTTPS para comunicação entre visualizadores e CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html).

**Automatização da configuração de site estático com um modelo do CloudFormation**  
Você pode usar um modelo do CloudFormation para automatizar a configuração do site estático. O modelo do CloudFormation configura os componentes que você precisa para hospedar um site estático seguro e se concentrar mais no conteúdo do seu site e menos na configuração de componentes.

O modelo do CloudFormation inclui os seguintes componentes:
+ Amazon S3: cria um bucket do Amazon S3 para hospedar seu site estático.
+ CloudFront: cria uma distribuição do CloudFront para acelerar seu site estático.
+ Lambda@Edge: usa o [Lambda@Edge](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html) para adicionar cabeçalhos de segurança a cada resposta do servidor. Os cabeçalhos de segurança são um grupo de cabeçalhos na resposta do servidor web que dizem aos navegadores da web para tomarem precauções de segurança extras. Para obter mais informações, consulte a publicação do 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/).

Este modelo do CloudFormation está disponível para download e uso. Para obter informações e instruções, consulte [Conceitos básicos de um site estático seguro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html) no *Guia do desenvolvedor do Amazon CloudFront*.

**Topics**
+ [Antes de começar](#root-domain-walkthrough-before-you-begin)
+ [Etapa 1: Registrar um domínio personalizado no Route 53](#website-hosting-custom-domain-walkthrough-domain-registry)
+ [Etapa 2: Criar dois buckets](#root-domain-walkthrough-create-buckets)
+ [Etapa 3: Configurar o bucket de domínio raiz para hospedagem de sites](#root-domain-walkthrough-configure-bucket-aswebsite)
+ [Etapa 4: Configurar o bucket de subdomínio para redirecionamento de sites](#root-domain-walkthrough-configure-redirect)
+ [Etapa 5: Configurar o registro em log para o tráfego do site](#root-domain-walkthrough-configure-logging)
+ [Etapa 6: Fazer upload do conteúdo do site e do índice](#upload-website-content)
+ [Etapa 7: carregar um documento de erros](#configure-error-document-root-domain)
+ [Etapa 8: Editar configurações do S3 Block Public Access](#root-domain-walkthrough-configure-bucket-permissions)
+ [Etapa 9: Anexar uma política de bucket](#add-bucket-policy-root-domain)
+ [Etapa 10: Testar o endpoint de domínio](#root-domain-walkthrough-test-website)
+ [Etapa 11: Adicionar registros de alias para seu domínio e subdomínio](#root-domain-walkthrough-add-record-to-hostedzone)
+ [Etapa 12: Testar o site](#root-domain-testing)
+ [Acelerar seu site com o Amazon CloudFront](website-hosting-cloudfront-walkthrough.md)
+ [Limpar seus recursos de exemplo](getting-started-cleanup.md)

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

Ao seguir as etapas deste exemplo, você trabalha com os seguintes serviços:

**Amazon Route 53:** você pode usar o Route 53 para registrar domínios e definir onde você deseja rotear o tráfego de internet para o seu domínio. O exemplo mostra como criar registros de alias do Route 53 que roteiam o tráfego para do domínio (`example.com`) e do subdomínio (`www.example.com`) para um bucket do Amazon S3 que contém um arquivo HTML.

**Amazon S3:** você usa o Amazon S3 para criar buckets, fazer upload de uma página de site de exemplo, configurar permissões para que todos possam visualizar conteúdo e, em seguida, configurar os buckets para hospedagem do site.

## Etapa 1: Registrar um domínio personalizado no Route 53
<a name="website-hosting-custom-domain-walkthrough-domain-registry"></a>

Se você não tiver um nome de domínio registrado, como `example.com`, precisará registrar um com o Route 53. Para obter mais informações, consulte [Registrar um novo domínio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) no *Guia do desenvolvedor do Amazon Route 53*. Depois de registrar seu nome de domínio, é possível criar e configurar seus buckets do Amazon S3 para hospedagem de sites. 

## Etapa 2: Criar dois buckets
<a name="root-domain-walkthrough-create-buckets"></a>

Para oferecer suporte a solicitações no domínio raiz e no subdomínio, crie dois buckets.
+ **Bucket de domínio** – `example.com`
+ **Bucket de subdomínio** – `www.example.com` 

Esses nomes de bucket devem corresponder exatamente ao seu nome de domínio. Neste exemplo, o nome de domínio é `example.com`. Você hospeda seu conteúdo fora do bucket de domínio raiz (`example.com`). Crie uma solicitação de redirecionamento para o bucket de subdomínio (`www.example.com`). Em outras palavras, se uma pessoa insere `www.example.com` no navegador, ela é redirecionada para `example.com` e vê o conteúdo hospedado no bucket do Amazon S3 com esse nome. 

**Como criar buckets para hospedagem de sites**

As instruções a seguir fornecem uma visão geral de como criar seus buckets para hospedagem de sites. Para obter instruções detalhadas passo a passo sobre como criar um bucket, consulte [Criar um bucket de uso geral](create-bucket-overview.md).

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Crie o bucket do domínio raiz: 

   1. Na barra de navegação na parte superior da página, escolha o nome da Região da AWS exibida no momento. Em seguida, escolha a região na qual você deseja criar um bucket. 
**nota**  
Para reduzir a latência e os custos e atender aos requisitos regulatórios, selecione uma região perto de você. Os objetos armazenados em uma região nunca saem dessa região, a menos que você os transfira para outra região. Para obter uma lista de Regiões da AWS do Amazon S3, consulte [Endpoints de AWS service (Serviço da AWS)](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) no *Referência geral da Amazon Web Services*.

   1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

   1. Selecione **Create bucket (Criar bucket)**. A página **Create bucket** (Criar bucket) é aberta.

   1. Insira o **Bucket name** (Nome do bucket) (por exemplo, **example.com**).

   1. Selecione a região onde você deseja criar o bucket. 

      Escolha uma região próxima de você para minimizar a latência e os custos ou atender a requisitos normativos. A região escolhida determina o endpoint de site do Amazon S3. Para obter mais informações, consulte [Endpoints de site](WebsiteEndpoints.md).

   1. Para aceitar as configurações padrão e criar o bucket, escolha **Create (Criar)**.

1. Crie o bucket de subdomínio: 

   1. Selecione **Create bucket (Criar bucket)**.

   1. Insira o **Bucket name** (Nome do bucket) (por exemplo, **www.example.com**).

   1. Selecione a região onde você deseja criar o bucket. 

      Escolha uma região próxima de você para minimizar a latência e os custos ou atender a requisitos normativos. A região escolhida determina o endpoint de site do Amazon S3. Para obter mais informações, consulte [Endpoints de site](WebsiteEndpoints.md).

   1. Para aceitar as configurações padrão e criar o bucket, escolha **Create (Criar)**.

Na próxima etapa, configure `example.com` para a hospedagem do site. 

## Etapa 3: Configurar o bucket de domínio raiz para hospedagem de sites
<a name="root-domain-walkthrough-configure-bucket-aswebsite"></a>

Nesta etapa, você configura o bucket de domínio raiz (`example.com`) como um site. Esse bucket terá o conteúdo do site. Ao configurar um bucket para hospedagem de sites, é possível acessar o site usando o [Endpoints de site](WebsiteEndpoints.md). 

**Como habilitar a hospedagem de sites estáticos**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket para o qual você deseja habilitar a hospedagem de site estático.

1. Escolha **Properties (Propriedades)**.

1. Em **Static website hosting (Hospedagem estática de sites)**, escolha **Edit (Editar)**.

1. Escolha **Use this bucket to host a website (Usar este bucket para hospedar um site)**. 

1. Em **Static website hosting (Hospedagem estática de sites)**, escolha **Enable (Ativar)**.

1. Em **Index Document (Documento de índice)**, insira o nome do arquivo do documento de índice, que geralmente é `index.html`. 

   O nome do documento de índice diferencia letras maiúsculas de minúsculas e deve corresponder exatamente ao nome do arquivo do documento de índice HTML do qual você planeja fazer upload para o bucket do S3. Quando você configura um bucket para hospedagem de site, deve especificar um documento de índice. O Amazon S3 retorna esse documento de índice quando as solicitações são feitas para o domínio raiz ou alguma subpasta. Para obter mais informações, consulte [Configurar um documento de índice](IndexDocumentSupport.md).

1. Para fornecer seu próprio documento de erros personalizado para erros da classe 4XX, em **Error document (Documento de erros)**, insira o nome de arquivo do documento de erros personalizado. 

   O nome do documento de erro diferencia letras maiúsculas de minúsculas e deve corresponder exatamente ao nome do arquivo do documento de erro HTML do qual você planeja fazer upload para o bucket do S3. Se você não especificar um documento de erro personalizado e ocorrer um erro, o Amazon S3 retornará um documento de erro HTML padrão. Para obter mais informações, consulte [Configurar um documento de erro personalizado](CustomErrorDocSupport.md).

1. (Opcional) Se você quiser especificar regras avançadas de redirecionamento em **Redirection rules** (Regras de redirecionamento), use JSON para descrevê-las.

   Por exemplo, você pode encaminhar solicitações condicionalmente de acordo com nomes de chave de objeto ou prefixos específicos na solicitação. Para obter mais informações, consulte [Configurar regras de redirecionamento para usar redirecionamentos condicionais avançados](how-to-page-redirect.md#advanced-conditional-redirects).

1. Selecione **Save changes**.

   O Amazon S3 permite a hospedagem estática de sites para seu bucket. Na parte inferior da página, em **Static website hosting (Hospedagem estática de sites)**, você verá o endpoint do site do seu bucket.

1. Em **Static website hosting (Hospedagem de sites estáticos)**, anote o **Endpoint**.

   O **Endpoint** é o endpoint do site do Amazon S3 para o bucket. Depois de concluir a configuração do bucket como um site estático, é possível usar esse endpoint para testar o site.

Depois de [editar as configurações de acesso público de bloqueio](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html#root-domain-walkthrough-configure-bucket-permissions) e [adicionar uma 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 acesso público de leitura, você pode usar o endpoint do site para acessar seu site. 

Na próxima etapa, configure o subdomínio (`www.example.com`) para redirecionar solicitações para o domínio (`example.com`). 

## Etapa 4: Configurar o bucket de subdomínio para redirecionamento de sites
<a name="root-domain-walkthrough-configure-redirect"></a>

Depois de configurar o bucket de domínio raiz para a hospedagem de sites, é possível configurar o bucket do subdomínio para redirecionar todas as solicitações para o domínio. Neste exemplo, todas as solicitações para `www.example.com` são redirecionadas para `example.com`.

**Para configurar uma solicitação de redirecionamento**

1. No console do Amazon S3, na lista **Buckets de uso geral**, escolha o nome do bucket de subdomínio (`www.example.com` neste exemplo).

1. Escolha **Properties (Propriedades)**.

1. Em **Static website hosting (Hospedagem estática de sites)**, escolha **Edit (Editar)**.

1. Selecione **Redirect requests for an object (Redirecionar solicitações de um objeto)**. 

1. Na caixa **Target bucket (Bucket de destino)**, insira o domínio raiz (por exemplo, **example.com**).

1. Em **Protocol (Protocolo)**, selecione **http**.

1. Selecione **Save changes**.

## Etapa 5: Configurar o registro em log para o tráfego do site
<a name="root-domain-walkthrough-configure-logging"></a>

Se quiser rastrear o número de visitantes que acessam seu site, opcionalmente você pode habilitar o log para seu bucket de domínio raiz. Para obter mais informações, consulte [Registrar em log as solicitações com registro em log de acesso ao servidor](ServerLogs.md). Se planeja usar o Amazon CloudFront para acelerar seu site, você também pode usar o registro em log do CloudFront.

**Como habilitar o registro em log do acesso ao servidor para o bucket de domínio raiz**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Na mesma região onde você criou o bucket configurado como um site estático, crie um bucket para registro em log, por exemplo `logs.example.com`.

1. Crie uma pasta para os arquivos de log do registro em log de acesso ao servidor (por exemplo, `logs`).

1. (Opcional) Se você quiser usar o CloudFront para melhorar oa performance do seu site, crie uma pasta para os arquivos de log do CloudFront (por exemplo, `cdn`).
**Importante**  
Ao criar ou atualizar uma distribuição e habilitar o registro do CloudFront, o CloudFront atualiza a lista de controle de acesso (ACL) do bucket para fornecer à conta `awslogsdelivery` permissões `FULL_CONTROL` para registrar logs em seu bucket. Para obter mais informações, consulte [Permissões necessárias para configurar o registro padrão e acessar seus arquivos de log](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#AccessLogsBucketAndFileOwnership) no *Guia do desenvolvedor do Amazon CloudFront*. Se o bucket que armazena os logs usar a configuração Imposto pelo proprietário do bucket para a Propriedade de Objetos do S3 a fim de desabilitar ACLs, o CloudFront não poderá gravar logs no bucket. Para obter mais informações, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).

1. Na lista **Buckets**, escolha seu bucket de domínio raiz.

1. Escolha **Properties (Propriedades)**.

1. Em **Server access logging (Registro de acesso ao servidor)**, selecione **Edit (Editar)**.

1. Escolha **Habilitar**.

1. No **Target bucket (Bucket de destino)**, escolha o destino do bucket e da pasta para os logs de acesso ao servidor:
   + Navegue até o local da pasta e do bucket:

     1. Escolha **Browse S3 (Navegar no S3)**.

     1. Escolha o nome do bucket e, depois, escolha a pasta de logs. 

     1. Selecione **Choose path (Escolher caminho)**.
   + Insira o caminho do bucket do S3, por exemplo, `s3://logs.example.com/logs/`.

1. Selecione **Save changes**.

   No bucket de log, agora você pode acessar seus logs. O Amazon S3 grava os logs de acesso ao site no bucket de log a cada duas horas.

## Etapa 6: Fazer upload do conteúdo do site e do índice
<a name="upload-website-content"></a>

Nesta etapa, faça upload do documento de índice e do conteúdo opcional do site no bucket de domínio raiz. 

Quando você habilita a hospedagem de sites estáticos para seu bucket, insere o nome do documento de índice (por exemplo, **index.html**). Depois de habilitar a hospedagem de sites estáticos para seu bucket, faça upload de um arquivo HTML com esse nome de documento de índice para o bucket.

**Como configurar o documento de índice**

1. Criar um arquivo `index.html`

   Se você não tiver um arquivo `index.html`, poderá usar o HTML a seguir para criar um:

   ```
   <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. Salve o arquivo de índice localmente.

   O nome do documento de índice deve corresponder exatamente ao nome do documento de índice que você inseriu na caixa de diálogo **Hospedagem de site estático**. O nome do documento de índice diferencia maiúsculas de minúsculas. Por exemplo, se você inserir `index.html` no nome do **Documentos de índice** na caixa de diálogo **Hospedagem de site estático**, o nome do arquivo do documento de índice também deverá ser `index.html` e não `Index.html`.

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket que você deseja usar para hospedar um site estático.

1. Habilite a hospedagem de sites estáticos para seu bucket e insira o nome exato do documento de índice (por exemplo, `index.html`). Para obter mais informações, consulte [Habilitar a hospedagem de sites](EnableWebsiteHosting.md).

   Depois de habilitar a hospedagem estática do site, vá para a etapa 6. 

1. Para fazer upload do documento de índice para o bucket, siga um destes procedimentos:
   + Arraste e solte o arquivo de índice na listagem de buckets do console.
   + Escolha **Upload (Fazer upload)** e siga as instruções para escolher e fazer upload do arquivo de índice.

   Para obter instruções detalhadas, consulte [Fazer upload de objetos](upload-objects.md).

1. (Opcional) Faça upload do conteúdo de outro site para o seu bucket.

## Etapa 7: carregar um documento de erros
<a name="configure-error-document-root-domain"></a>

Ao habilitar a hospedagem de site estático para o bucket, insira o nome do documento de erro (por exemplo, **404.html**). Depois de habilitar a hospedagem de sites estáticos para seu bucket, faça upload de um arquivo HTML com esse nome de documento de erros para o bucket.

**Para configurar um documento de erros**

1. Crie um documento de erro, por exemplo `404.html`.

1. Salve o arquivo de documento de erros localmente.

   O nome do documento de erros diferencia maiúsculas e minúsculas e deve corresponder exatamente ao nome que você insere ao habilitar a hospedagem estática do site. Por exemplo, se você inserir `404.html` como o nome do **Error document (Documento de erro)** na caixa de diálogo **Static website hosting (Hospedagem de site estático)**, o nome de arquivo do documento de erro também deve ser `404.html`.

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket que você deseja usar para hospedar um site estático.

1. Habilite a hospedagem de site estático para seu bucket e insira o nome exato do documento de erro (por exemplo, `404.html`). Para obter mais informações, consulte [Habilitar a hospedagem de sites](EnableWebsiteHosting.md) e [Configurar um documento de erro personalizado](CustomErrorDocSupport.md).

   Depois de habilitar a hospedagem estática do site, vá para a etapa 6. 

1. Para fazer upload do documento de erros para o bucket, siga um destes procedimentos:
   + Arraste e solte o arquivo de documento de erros na lista de buckets do console.
   + Escolha **Upload (Fazer upload)** e siga as instruções para escolher e fazer upload do arquivo de índice.

   Para obter instruções detalhadas, consulte [Fazer upload de objetos](upload-objects.md).

## Etapa 8: Editar configurações do S3 Block Public Access
<a name="root-domain-walkthrough-configure-bucket-permissions"></a>

Neste exemplo, você edita configurações de bloqueio de acesso público para o bucket de domínio (`example.com`) para permitir acesso público.

Por padrão, o Amazon S3 bloqueia o acesso público à sua conta e aos seus buckets. Se quiser usar um bucket para hospedar um site estático, use estas etapas para editar as configurações de bloqueio de acesso público. 

**Atenção**  
Antes de concluir estas etapas, revise [Bloquear o acesso público ao armazenamento do Amazon S3](access-control-block-public-access.md) para garantir que você entenda e aceite os riscos envolvidos em permitir o acesso público. Ao desativar as configurações de bloqueio de acesso público para tornar seu bucket público, qualquer pessoa na Internet pode acessá-lo. Recomendamos que você bloqueie todo o acesso público aos buckets.

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Escolha o nome do bucket configurado como um site estático.

1. Escolha **Permissions (Permissões)**.

1. Em **Block public access (bucket settings) (Bloqueio de acesso público (configurações de bucket)**, escolha **Edit (Editar)**.

1. Desmarque **Block *all* public access (Bloquear todo acesso público)** e escolha **Save changes (Salvar alterações)**.  
![\[O console do Amazon S3, que mostra as configurações do bucket do Bloqueio de Acesso Público.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   O Amazon S3 desativa as configurações do Bloqueio de Acesso Público para o bucket. Para criar um site público estático, talvez também seja necessário [editar as configurações do Bloqueio de Acesso Público](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) para sua conta antes de adicionar uma política de bucket. Se as configurações do Bloqueio de Acesso Público da conta estiverem ativadas no momento, você verá uma observação em **Bloquear acesso público (configurações de bucket)**.

## Etapa 9: Anexar uma política de bucket
<a name="add-bucket-policy-root-domain"></a>

Neste exemplo, você anexa uma política de bucket ao bucket de domínio (`example.com`) para permitir acesso de leitura pública. Você substitui o *Bucket-Name* na política de bucket de exemplo pelo nome do bucket de domínio, por exemplo, `example.com`.

Depois de editar as configurações do Bloqueio de acesso público do S3, é possível adicionar uma política de bucket para conceder acesso público de leitura ao bucket. Ao conceder um acesso público de leitura, qualquer pessoa na Internet pode acessar seu bucket.

**Importante**  
A política a seguir é somente um exemplo e concede acesso total aos conteúdos do bucket. Antes de prosseguir com esta etapa, revise [Como posso proteger os arquivos no meu bucket do Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/) para garantir que você entende as práticas recomendadas a fim de proteger os arquivos no bucket do S3 e os riscos envolvidos na concessão de acesso público.

1. Em **Buckets**, escolha o nome do seu bucket.

1. Escolha **Permissions (Permissões)**.

1. Em **Bucket Policy (Política de bucket)**, escolha **Edit (Editar)**.

1. Para conceder acesso público de leitura ao site, copie a política de bucket a seguir e cole-a no **Bucket policy editor (Editor de política de bucket)**.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PublicReadGetObject",
               "Effect": "Allow",
               "Principal": "*",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::Bucket-Name/*"
               ]
           }
       ]
   }
   ```

1. Atualize o `Resource` para o nome do bucket.

   Na política de bucket do exemplo anterior, *Bucket-Name* é um espaço reservado para o nome do bucket. Para usar essa política de bucket com seu próprio bucket, você deve atualizar esse nome para corresponder ao nome do seu bucket.

1. Selecione **Save changes**.

   Uma mensagem é exibida indicando que a política de bucket foi adicionada com sucesso.

   Se você vir um erro que diz `Policy has invalid resource`, confirme se o nome do bucket na política de bucket corresponde ao nome do seu bucket. Para obter informações sobre como adicionar uma política de bucket, consulte [Como adicionar uma política de bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)

   Se você receber uma mensagem de erro e não puder salvar a política do bucket, verifique suas configurações de acesso público para confirmar que você permite acesso público ao bucket.

Na próxima etapa, é possível descobrir os endpoints do site e testar o endpoint do domínio.

## Etapa 10: Testar o endpoint de domínio
<a name="root-domain-walkthrough-test-website"></a>

Depois de configurar seu bucket de domínio para hospedar um site público, você pode testar seu endpoint. Para obter mais informações, consulte [Endpoints de site](WebsiteEndpoints.md). Somente será possível testar o endpoint de seu bucket de domínio porque ele está configurado para redirecionamento de site e não para hospedagem de site estático. 

**nota**  
O Amazon S3 não oferece suporte para o acesso HTTPS ao site. Se quiser usar HTTPS, você poderá usar o Amazon CloudFront para servir um site estático hospedado no Amazon S3.  
Para obter mais informações, consulte [Como uso o CloudFront para veicular um site estático hospedado no Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/) e [Exigir HTTPS para comunicação entre visualizadores e o CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html).

1. Em **Buckets**, escolha o nome do seu bucket.

1. Escolha **Properties (Propriedades)**.

1. Na parte inferior da página, em **Static website hosting (Hospedagem estática de sites)**, escolha seu **Bucket website endpoint (Endpoint de site do Bucket)**.

   Seu documento de índice é aberto em uma janela separada do navegador.

Na próxima etapa, você usa o Amazon Route 53 para permitir que os clientes usem ambos os URLs personalizados para navegar até o site. 

## Etapa 11: Adicionar registros de alias para seu domínio e subdomínio
<a name="root-domain-walkthrough-add-record-to-hostedzone"></a>

Nesta etapa, você cria os registros de alias adicionados à zona hospedada dos mapas de domínio `example.com` e `www.example.com`. Em vez de usar endereços IP, os registros de alias usam os endpoints de site do Amazon S3. O Amazon Route 53 mantém um mapeamento entre os registros de alias e os endereços IP onde os buckets do Amazon S3 residem. Crie dois registros de alias, um para o domínio raiz e um para o subdomínio.

### Adicionar um registro de alias para seu domínio raiz e subdomínio
<a name="add-alis-record"></a>

**Como adicionar um registro de alias ao domínio raiz (`example.com`)**

1. Abra o console do Route 53 em [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).
**nota**  
Se você ainda não usa o Route 53, consulte [Etapa 1: registrar um domínio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html#getting-started-find-domain-name) no *Guia do desenvolvedor do Amazon Route 53*. Após concluir a configuração, é possível retomar as instruções.

1. Selecione **Hosted zones (Zonas hospedadas)**.

1. Na lista de zonas hospedadas, escolha o nome da zona hospedada que corresponde ao nome de domínio.

1. Escolha **Create record (Criar registro)**.

1. Escolha **Switch to wizard (Alternar para assistente)**.
**nota**  
Se você quiser usar a criação rápida para criar seus registros de alias, consulte [Configurar o Route 53 para rotear o tráfego para um bucket do S3](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RoutingToS3Bucket.html#routing-to-s3-bucket-configuring).

1. Escolha **Simple routing (Roteamento simples)** e **Next (Próximo)**.

1. Escolha **Define simple record (Definir registro simples)**.

1. Em **Record name (Nome do registro)**, aceite o valor padrão, que é o nome da zona hospedada e do domínio.

1. Em **Value/Route traffic to (Valor/Encaminhar tráfego para)**, escolha **Alias to S3 website endpoint (Alias para o endpoint do site do S3)**.

1. Escolha a região .

1. Escolha o bucket do S3.

   O nome do bucket deve corresponder ao nome que aparece na caixa **Name (Nome)**. Na lista **Choose S3 bucket (Escolher bucket do S3)**, o nome do bucket aparece com o endpoint do site do Amazon S3 para a região onde o bucket foi criado, por exemplo, `s3-website-us-west-1.amazonaws.com (example.com)`.

   **Choose S3 bucket (Escolher bucket do S3)** lista um bucket se:
   + Você configurou o bucket como um site estático.
   + O nome do bucket é o mesmo que o nome do registro que você está criando.
   + A Conta da AWS atual criou o bucket.

   Se o bucket não aparecer na lista **Choose S3 bucket (Escolher bucket do S3)**, insira o endpoint de site do Amazon S3 da região em que o bucket foi criado, por exemplo, **s3-website-us-west-2.amazonaws.com**. Para obter uma lista completa dos endpoints do site do Amazon S3, consulte [Endpoints de site do Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints). Para obter mais informações sobre o destino de alias, consulte [Valor/rotear tráfego para](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target) no *Guia do desenvolvedor do Amazon Route 53*.

1. Em **Tipo de registro**, escolha **A: encaminha o tráfego para um endereço IPv4 e alguns recursos da AWS**.

1. Em **Evaluate target health (Avaliar integridade do destino)**, escolha **No (Não)**.

1. Escolha **Define simple record (Definir registro simples)**.

**Como adicionar um registro de alias ao subdomínio (`www.example.com`)**

1. Em **Configure records (Configurar registros)**, escolha **Define simple record (Definir registro simples)**.

1. Em **Record name (Nome do registro)** para seu subdomínio, digite `www`.

1. Em **Value/Route traffic to (Valor/Encaminhar tráfego para)**, escolha **Alias to S3 website endpoint (Alias para o endpoint do site do S3)**.

1. Escolha a região .

1. Escolha o bucket do S3, por exemplo, `s3-website-us-west-2.amazonaws.com (www.example.com)`.

   Se o bucket não aparecer na lista **Choose S3 bucket (Escolher bucket do S3)**, insira o endpoint de site do Amazon S3 da região em que o bucket foi criado, por exemplo, **s3-website-us-west-2.amazonaws.com**. Para obter uma lista completa dos endpoints do site do Amazon S3, consulte [Endpoints de site do Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints). Para obter mais informações sobre o destino de alias, consulte [Valor/rotear tráfego para](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target) no *Guia do desenvolvedor do Amazon Route 53*.

1. Em **Tipo de registro**, escolha **A: encaminha o tráfego para um endereço IPv4 e alguns recursos da AWS**.

1. Em **Evaluate target health (Avaliar integridade do destino)**, escolha **No (Não)**.

1. Escolha **Define simple record (Definir registro simples)**.

1. Na página **Configure records (Configurar registros)**, escolha **Create records (Criar registros)**.

**nota**  
As alterações são geralmente propagadas para todos os servidores do Route 53 dentro de 53 segundos. Quando a propagação for concluída, será possível rotear o tráfego para o bucket do Amazon S3 usando os nomes de registros de alias criados nesse procedimento.

### Adicionar um registro de alias para seu domínio raiz e subdomínio (antigo console do Route 53)
<a name="add-alis-record-old"></a>

**Como adicionar um registro de alias ao domínio raiz (`example.com`)**

O console do Route 53 foi reprojetado. No console do Route 53, você pode usar temporariamente o console antigo. Se você optar por trabalhar com o console do Route 53 antigo, use o procedimento abaixo.

1. Abra o console do Route 53 em [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).
**nota**  
Se você ainda não usa o Route 53, consulte [Etapa 1: registrar um domínio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html#getting-started-find-domain-name) no *Guia do desenvolvedor do Amazon Route 53*. Após concluir a configuração, é possível retomar as instruções.

1. Selecione **Hosted Zones (Zonas hospedadas)**.

1. Na lista de zonas hospedadas, escolha o nome da zona hospedada que corresponde ao nome de domínio.

1. Escolha **Create Record Set (Criar conjunto de registros)**.

1. Especifique os seguintes valores:  
**Nome**  
Aceite o valor padrão, que é o nome da zona hospedada e do domínio.   
Para o domínio raiz, não é necessário inserir nenhuma informação adicional no campo **Name (Nome)**.  
**Tipo**  
Escolha **A - IPv4 address (A – Endereço IPv4)**.  
**Alias**  
Escolha **Sim**.  
**Alvo do alias**  
Na seção **S3 website endpoints (Endpoints de site do S3)** da lista, escolha o nome do bucket.   
O nome do bucket deve corresponder ao nome que aparece na caixa **Name (Nome)**. Na listagem **Alias Target (Destino do alias)**, o nome do bucket é seguido pelo endpoint de site do Amazon S3 para a região onde o bucket foi criado, por exemplo, `example.com (s3-website-us-west-2.amazonaws.com)`. **Alias Target (Alvo do alias)** lista um bucket se:  
   + Você configurou o bucket como um site estático.
   + O nome do bucket é o mesmo que o nome do registro que você está criando.
   + A Conta da AWS atual criou o bucket.
Se o bucket não aparecer na listagem **Alias Target (Destino do alias)**, insira o endpoint de site do Amazon S3 da região em que o bucket foi criado, por exemplo, `s3-website-us-west-2`. Para obter uma lista completa dos endpoints do site do Amazon S3, consulte [Endpoints de site do Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints). Para obter mais informações sobre o destino de alias, consulte [Valor/rotear tráfego para](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target) no *Guia do desenvolvedor do Amazon Route 53*.  
**Política de roteamento**  
Aceite o valor padrão de **Simple (Simples)**.  
**Avaliar status do alvo**  
Aceite o valor padrão de **No (Não)**.

1. Escolha **Create (Criar)**.

**Como adicionar um registro de alias ao subdomínio (`www.example.com`)**

1. Na zona hospedada do domínio raiz (`example.com`), selecione **Create Record Set (Criar conjunto de registros)**.

1. Especifique os seguintes valores:  
**Nome**  
Para o subdomínio, insira `www` na caixa.   
**Tipo**  
Escolha **A - IPv4 address (A – Endereço IPv4)**.  
**Alias**  
Escolha **Sim**.  
**Alvo do alias**  
Na seção **S3 website endpoints (Endpoints de site do S3)** da lista, escolha o mesmo nome de bucket que é exibido no campo **Name (Nome)**, por exemplo, `www.example.com (s3-website-us-west-2.amazonaws.com)`.  
**Política de roteamento**  
Aceite o valor padrão de **Simple (Simples)**.  
**Avaliar status do alvo**  
Aceite o valor padrão de **No (Não)**.

1. Escolha **Create (Criar)**.

**nota**  
As alterações geralmente são propagadas para todos os servidores do Route 53 dentro de 53 segundos. Quando a propagação for concluída, será possível rotear o tráfego para o bucket do Amazon S3 usando os nomes de registros de alias criados nesse procedimento.

## Etapa 12: Testar o site
<a name="root-domain-testing"></a>

Verifique se o site e o redirecionamento funcionam corretamente. No navegador, insira os URLs. Neste exemplo, é possível tentar os seguintes URLs:
+ **Domínio** (`http://example.com`): exibe o documento de índice no bucket `example.com`.
+ **Subdomínio** (`http://www.example.com`): redireciona sua solicitação para `http://example.com`. Veja o documento de índice no bucket `example.com`.

Se o seu site ou links de redirecionamento não funcionarem, tente o seguinte:
+ **Limpar cache**: limpe o cache do seu navegador da Web.
+ **Verificar servidores de nomes**: se a página da Web e os links de redirecionamento não funcionarem depois de limpar o cache, você poderá comparar os servidores de nome do seu domínio e os servidores de nome da sua zona hospedada. Se os servidores de nome não corresponderem, talvez seja necessário atualizar seus servidores de nome de domínio para corresponder aos listados na zona hospedada. Para obter mais informações, consulte [Adicionar ou alterar servidores de nomes e registros cola para um domínio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-name-servers-glue-records.html).

Depois de testar com êxito o domínio raiz e o subdomínio, você pode configurar uma distribuição do [Amazon CloudFront](https://aws.amazon.com/cloudfront) para melhorar a performance do seu site e fornecer logs que você possa usar para revisar o tráfego do site. Para obter mais informações, consulte [Acelerar seu site com o Amazon CloudFront](website-hosting-cloudfront-walkthrough.md).

# Acelerar seu site com o Amazon CloudFront
<a name="website-hosting-cloudfront-walkthrough"></a>

Você pode usar o [Amazon CloudFront](https://aws.amazon.com/cloudfront) para melhorar a performance do seu site do Amazon S3. O CloudFront disponibiliza os arquivos do site (como HTML, imagens e vídeos) por meio de datacenters em todo o mundo (conhecidos como *pontos de presença*). Quando um visitante solicita um arquivo em seu site, o CloudFront redireciona automaticamente a solicitação para uma cópia do arquivo no ponto de presença mais próximo. Isso resulta em tempos de download mais rápidos se o visitante tiver solicitado o conteúdo em um datacenter localizado mais longe.

O CloudFront armazena em cache o conteúdo em pontos de presença por um período especificado por você. Se um visitante solicitar conteúdo que foi armazenado em cache por mais tempo que a data de expiração, o CloudFront verificará o servidor de origem para saber se há uma versão mais nova do conteúdo disponível. Se houver uma versão mais nova à disposição, o CloudFront copiará a nova versão para o ponto de presença. As alterações feitas no conteúdo original são replicadas para pontos de presença à medida que os visitantes solicitam o conteúdo. 

**Usar o CloudFront sem o Route 53**  
Os tutoriais nesta página usam o Route 53 para apontar para sua distribuição do CloudFront. No entanto, se você quiser servir conteúdo hospedado em um bucket do Amazon S3 usando o CloudFront sem usar o Route 53, consulte [Tutoriais do Amazon CloudFront: configurar uma distribuição dinâmica de conteúdo para o Amazon S3](https://aws.amazon.com/cloudfront/getting-started/S3/). Ao servir conteúdo hospedado em um bucket do Amazon S3 usando o CloudFront, você pode usar qualquer nome de bucket, e tanto HTTP quanto HTTPS são compatíveis. 

**Automatizar a configuração com um modelo do CloudFormation**  
Para obter mais informações sobre como usar um modelo do CloudFormation para configurar um site estático seguro que cria uma distribuição do CloudFront para veicular seu site, consulte [Introdução a um site estático seguro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html) no *Guia do desenvolvedor do Amazon CloudFront*.

**Topics**
+ [Etapa 1: Criar uma distribuição do CloudFront](#create-distribution)
+ [Etapa 2: Atualizar os conjuntos de registros do domínio e do subdomínio](#update-record-sets)
+ [(Opcional) Etapa 3: verificar os arquivos de log](#check-log-files)

## Etapa 1: Criar uma distribuição do CloudFront
<a name="create-distribution"></a>

Primeiro, você cria uma distribuição do CloudFront. Isso torna seu site disponível em datacenters em todo o mundo.

**Como criar uma distribuição com uma origem do Amazon S3**

1. Abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Escolha **Criar distribuição**.

1. Na página **Create Distribution (Criar distribuição)**, na seção **Origin Settings (Configurações de origem)**, em **Origin Domain Name (Nome do domínio de origem)**, digite o endpoint do site do Amazon S3 para seu bucket, por exemplo, **example.com.s3-website.us-west-1.amazonaws.com**.

   O CloudFront preenche o **Origin ID (ID de origem)** para você.

1. Em **Default Cache Behavior Settings (Configurações do comportamento de cache padrão)**, mantenha os valores padrão definidos. 

   Com as configurações padrão do **Viewer Protocol Policy (Política de protocolo de visualizador)**, é possível usar HTTPS para o site estático. Para obter mais informações sobre essas opções de configuração, consulte [Valores que você especifica quando cria ou atualiza uma distribuição na Web](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WorkingWithDownloadDistributions.html#DownloadDistValuesYouSpecify) no *Guia do desenvolvedor do Amazon CloudFront*.

1. Para **Distribution Settings (Configurações de distribuição)**, faça o seguinte:

   1. Deixe **Price Class (Classe de preço)** definida como **Use All Edge Locations (Best Performance) (Usar todos os pontos de presença [melhor performance])**.

   1. Defina **Alternate Domain Names (CNAMEs) Nomes de domínio alternativos (CNAMEs)** para o domínio raiz e para o subdomínio `www`. Neste tutorial, são `example.com` e `www.example.com`. 
**Importante**  
Antes de executar essa etapa, veja os [requisitos para o uso de nomes de domínio alternativos](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements), principalmente a necessidade de um certificado SSL/TLS válido. 

   1. Em **SSL Certificate (Certificado SSL)**, selecione **Custom SSL Certificate (example.com) (Certificado SSL personalizado (exemplo.com))** e escolha o certificado personalizado que contém os nomes de domínio e subdomínio.

      Para obter mais informações, consulte [Certificado SSL](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesSSLCertificate) no *Guia do desenvolvedor do Amazon CloudFront*.

   1. Em **Default Root Object (Objeto raiz padrão)**, insira o nome do documento de índice, por exemplo, `index.html`. 

      Se o URL usado para acessar a distribuição não contiver um nome de arquivo, a distribuição do CloudFront retornará o documento de índice. O **Default Root Object (Objeto raiz padrão)** deve corresponder exatamente ao nome do documento de índice do seu site estático. Para obter mais informações, consulte [Configurar um documento de índice](IndexDocumentSupport.md).

   1. Defina **Logging (Registro em log)** como **On (Ligado)**.
**Importante**  
Ao criar ou atualizar uma distribuição e habilitar o registro do CloudFront, o CloudFront atualiza a lista de controle de acesso (ACL) do bucket para fornecer à conta `awslogsdelivery` permissões `FULL_CONTROL` para registrar logs em seu bucket. Para obter mais informações, consulte [Permissões necessárias para configurar o registro padrão e acessar seus arquivos de log](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#AccessLogsBucketAndFileOwnership) no *Guia do desenvolvedor do Amazon CloudFront*. Se o bucket que armazena os logs usar a configuração Imposto pelo proprietário do bucket para a Propriedade de Objetos do S3 a fim de desabilitar ACLs, o CloudFront não poderá gravar logs no bucket. Para obter mais informações, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).

   1. Em **Bucket for Logs (Bucket para logs)**, escolha o bucket para o registro em log que você criou.

      Para obter mais informações sobre como configurar um bucket de log, consulte [(Opcional) Registrar em log o tráfego da web](LoggingWebsiteTraffic.md).

   1. Se quiser armazenar os logs gerados pelo tráfego para a distribuição do CloudFront em uma pasta, em **Log Prefix (Prefixo de log)**, insira o nome da pasta.

   1. Mantenha todas as outras configurações segundo seus valores predefinidos.

1. Escolha **Criar distribuição**.

1. Para ver o status atual da distribuição, localize a distribuição no console e verifique a coluna **Status**. 

   Um status `InProgress` indica que a distribuição ainda não foi totalmente implantada.

   Depois que a distribuição estiver implantada, você pode fazer referência ao conteúdo com o novo nome do domínio do CloudFront.

1. Registre o valor de **Domain Name (Nome do domínio)** mostrado no console do CloudFront, por exemplo, `dj4p1rv6mvubz.cloudfront.net`. 

1. Para verificar se a distribuição do CloudFront está funcionando, insira o nome de domínio da distribuição em um navegador da Web.

   Se o seu site estiver visível, a distribuição do CloudFront funciona. Se o seu site tiver um domínio personalizado registrado no Amazon Route 53, você precisará do nome de domínio do CloudFront para atualizar o conjunto de registros na próxima etapa.

## Etapa 2: Atualizar os conjuntos de registros do domínio e do subdomínio
<a name="update-record-sets"></a>

Agora que você criou com sucesso uma distribuição do CloudFront, atualize o registro de alias no Route 53 para apontar para a nova distribuição do CloudFront.

**Para atualizar o registro de alias para apontar para uma distribuição do CloudFront**

1. Abra o console do Route 53 em [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. No painel de navegação, escolha **Hosted zones (Zonas hospedadas)**.

1. Na página **Hosted Zones** (Zonas hospedadas), escolha a zona hospedada criada por você para o subdomínio, por exemplo, `www.example.com`.

1. Em **Records** (Registros), selecione o registro *A* que você criou para seu subdomínio. 

1. Em **Record details** (Detalhes do registro), escolha **Edit record** (Editar registro).

1. Em **Route traffic to (Rotear tráfego para)**, escolha **Alias to CloudFront distribution (Alias para distribuição do CloudFront)**.

1. Em **Choose distribution (Escolher distribuição)**, escolha a distribuição do CloudFront.

1. Escolha **Save (Salvar)**.

1. Para redirecionar o registro *A* do domínio raiz para a distribuição do CloudFront, repita esse procedimento do domínio raiz, por exemplo, `example.com`.

   A atualização dos conjuntos de registros entra em vigor dentro de 2 a 48 horas. 

1. Para ver se os novos registros *A* entraram em vigor, em um navegador da Web, digite o URL do subdomínio, por exemplo, `http://www.example.com`. 

   Se o navegador não o redirecionar para o domínio raiz (por exemplo, `http://example.com`), os novos registros A estarão no lugar. Quando o novo registro *A* entra em vigor, o tráfego roteado pelo novo registro *A* para a distribuição do CloudFront não é redirecionado para o domínio raiz. Qualquer visitante que faça referência ao site usando `http://example.com` ou `http://www.example.com` é redirecionado para o ponto de presença do CloudFront mais próximo, onde ele aproveita tempos de download menores.
**dica**  
Os navegadores podem armazenar em cache configurações de redirecionamento. Se você acreditar que as novas configurações do registro *A* devem ter entrado em vigor, mas o navegador ainda redirecionar `http://www.example.com` para `http://example.com`, tente limpar o histórico e limpar o cache do navegador, fechando e reabrindo a aplicação do navegador ou usando outro navegador da Web. 

## (Opcional) Etapa 3: verificar os arquivos de log
<a name="check-log-files"></a>

Os logs de acesso informam quantas pessoas estão visitando o site. Eles também contêm dados comerciais valiosos que você pode analisar com outros serviços, como o [Amazon EMR](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/). 

Os logs do CloudFront são armazenados no bucket e na pasta escolhidos ao criar uma distribuição do CloudFront e habilitar o registro em log. O CloudFront grava logs em seu bucket de log dentro de 24 horas a partir do momento em que as solicitações correspondentes são feitas.

**Para ver os arquivos de log do site**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Escolha o nome do bucket de registro em log do site.

1. Escolha a pasta de logs do CloudFront.

1. Baixe os arquivos `.gzip` escritos pelo CloudFront antes de abri-los.

   Se tiver criado o site apenas como um exercício de aprendizado, você poderá excluir os recursos alocados, para não acumular mais cobranças. Para fazer isto, consulte [Limpar seus recursos de exemplo](getting-started-cleanup.md). Depois que você excluir os recursos da AWS, o site deixará de estar disponível.

# Limpar seus recursos de exemplo
<a name="getting-started-cleanup"></a>

Se você tiver criado o site estático apenas como um exercício de aprendizado, exclua os recursos da AWS alocados para não acumular cobranças. Depois que você excluir os recursos da AWS, o site deixará de estar disponível.

**Topics**
+ [Etapa 1: exclua a distribuição do Amazon CloudFront](#getting-started-cleanup-cloudfront)
+ [Etapa 2: exclua a zona hospedada do Route 53](#getting-started-cleanup-route53)
+ [Etapa 3: Desabilitar o registro em log e excluir o bucket do S3](#getting-started-cleanup-s3)

## Etapa 1: exclua a distribuição do Amazon CloudFront
<a name="getting-started-cleanup-cloudfront"></a>

Antes de excluir uma distribuição do Amazon CloudFront, você deve desabilitá-la. Uma distribuição desabilitada deixa de ser funcional e não acumula encargos. É possível habilitar uma distribuição desabilitada a qualquer momento. Depois que você excluir uma distribuição desabilitada, ela deixará de estar disponível.

**Como desabilitar e excluir uma distribuição do CloudFront**

1. Abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Selecione a distribuição que você deseja desabilitar e escolha **Disable (Desabilitar)**.

1. Quando a confirmação for solicitada, escolha **Yes, Disable (Sim, desabilitar)**.

1. Selecione a distribuição desabilitada e escolha **Delete (Excluir)**.

1. Quando a confirmação for solicitada, escolha **Yes, Delete (Sim, excluir)**.

## Etapa 2: exclua a zona hospedada do Route 53
<a name="getting-started-cleanup-route53"></a>

Para excluir a zona hospedada, você deve excluir os conjuntos de registros criados. Você não precisa excluir os registros de Start of Authority (SOA – Início da autoridade) e Name Server (NS – Servidor de nomes); eles são excluídos automaticamente quando se exclui a zona hospedada.

**Para excluir os conjuntos de registros**

1. Abra o console do Route 53 em [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1.  Na lista de nomes de domínio, selecione o nome do seu domínio e escolha **Go to Record Sets (Ir para conjuntos de registros)**. 

1. Na lista de conjuntos de registros, selecione os registros *A* que você criou. 

   O tipo de cada conjunto de registros está listado na coluna **Type (Tipo)**. 

1. Escolha **Delete Record Set (Excluir conjunto de registros)**. 

1. Quando a confirmação for solicitada, escolha **Confirm (Confirmar)**. 

**Como excluir uma zona hospedada do Route 53**

1.  Continuando o procedimento anterior, escolha **Back to Hosted Zones (Voltar para zonas hospedadas)**. 

1.  Selecione o nome do seu domínio e escolha **Delete Hosted Zone (Excluir zona hospedada)**. 

1.  Quando a confirmação for solicitada, escolha **Confirm (Confirmar)**. 

## Etapa 3: Desabilitar o registro em log e excluir o bucket do S3
<a name="getting-started-cleanup-s3"></a>

Antes de excluir o bucket do S3, verifique se o registro está desativado para o bucket. Caso contrário, a AWS continuará gravando logs para o bucket à medida que você o excluir.

**Para desabilitar o registro em log para um bucket**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Em **Buckets**, escolha o nome do bucket e, em seguida, escolha **Properties (Propriedades)**.

1. Em **Properties (Propriedades)**, escolha **Logging (Registro)**.

1. Desmarque a caixa de seleção **Enabled (Habilitado)**.

1. Escolha **Save (Salvar)**.

Agora, você pode excluir seu bucket. Para obter mais informações, consulte [Excluir um bucket de uso geral](delete-bucket.md).

# Implantar um site estático no AWS Amplify Hosting diretamente de um bucket do S3 de uso geral
<a name="website-hosting-amplify"></a>

Recomendamos que você use o [AWS Amplify Hosting](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) para hospedar conteúdo de site estático armazenado no S3. O Amplify Hosting é um serviço totalmente gerenciado que facilita a implantação de seus sites em uma rede de entrega de conteúdo (CDN) disponível globalmente, desenvolvida pelo Amazon CloudFront, permitindo hospedagem segura de sites estáticos sem configuração extensiva. Com o AWS Amplify Hosting, você pode selecionar a localização de seus objetos no bucket de uso geral, implantar seu conteúdo em uma CDN gerenciada e gerar um URL HTTPS público para que seu site possa ser acessado em qualquer lugar. Implantar um site estático usando o Amplify Hosting fornece os seguintes benefícios e recursos:
+ **Implantação na rede de entrega de conteúdo (CDN) da AWS desenvolvida pelo Amazon CloudFront**: o CloudFront é um serviço da Web que acelera a distribuição do conteúdo estático e dinâmico da Web para os usuários. O CloudFront distribui o conteúdo por meio de uma rede global de data centers denominados locais da borda. Quando um usuário solicita um conteúdo que você está disponibilizando com o CloudFront, a solicitação é roteada para o local da borda que fornece a menor latência (atraso), assim o conteúdo é entregue com o melhor desempenho possível, maior confiabilidade e disponibilidade. Consulte mais informações em [Como o CloudFront entrega conteúdo](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html) no *Guia do desenvolvedor do Amazon CloudFront*.
+ **Suporte HTTPS**: fornece comunicação segura e transferência de dados entre seu site e o navegador do usuário.
+ **Domínios personalizados**: conecte facilmente seu site a um URL personalizado comprado de um registrador de domínios, como o Amazon Route 53. 
+ **Certificados SSL personalizados**: ao configurar seu domínio personalizado, é possível usar o certificado gerenciado padrão que o Amplify fornece para você ou usar seu próprio certificado personalizado adquirido da autoridade de certificação de terceiros de sua escolha.
+ **Métricas incorporadas e monitoramento do CloudWatch**: monitore tráfego, erros, transferência de dados e latência do site.
+ **Proteção por senha**: restrinja o acesso ao site, configurando um requisito de nome de usuário e senha no console do Amplify.
+ **Redirecionamentos e regravações**: crie regras de redirecionamento e regravação no console do Amplify para permitir que um servidor web redirecione a navegação de um URL para outro.

Quando você implanta sua aplicação a partir de um bucket de uso geral do Amazon S3 no Amplify Hosting, as cobranças da AWS são baseadas no modelo de preços do Amplify. Para saber mais, consulte [Preços do AWS Amplify](https://aws.amazon.com/amplify/pricing/).

**Importante**  
O Amplify Hosting não está disponível em todos as Regiões da AWS onde o Amazon S3 está disponível. Para implantar um site estático no Amplify Hosting, o bucket de uso geral do Amazon S3 contendo seu site deve estar localizado em uma região em que o Amplify esteja disponível. Para obter uma lista das regiões onde o Amplify está disponível, consulte [Endpoints do Amplify](https://docs.aws.amazon.com/general/latest/gr/amplify.html#amplify_region) no *Referência geral da Amazon Web Services*.

É possível iniciar o processo de implantação no console do Amazon S3, no console do Amplify na AWS CLI e em AWS SDKs. Você só pode implantar no Amplify por meio de um bucket de uso geral localizado em sua própria conta. O Amplify não oferece suporte ao acesso a buckets do entre contas. 

Use as instruções a seguir para implantar um site estático por meio de um bucket de uso geral do Amazon S3 no Amplify Hosting iniciando pelo console do Amazon S3.

## Implantar um site estático no Amplify pelo console do S3
<a name="DeployAmplify"></a>

**Como implantar um site estático pelo console do Amazon S3**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Na lista **Buckets**, escolha o bucket de uso geral que contém o site que você deseja implantar no Amplify Hosting.

1. Escolha a guia **Properties (Propriedades)**.

1. Em **Hospedagem de site estático**, escolha **Criar aplicação do Amplify**. Nessa etapa, o processo de implantação será transferido para o console do Amplify.

1. Na página **Implantar com o S3**, siga as etapas a seguir.

   1. Em **Nome da aplicação**, insira o nome da aplicação ou do site.

   1. Em **Nome da ramificação**, insira o nome do backend da aplicação.

   1. Em **Localização dos objetos do S3 a hospedar**, insira o caminho do diretório do bucket de uso geral ou escolha **Procurar no S3** para localizá-lo e selecioná-lo.

1. Escolha **Salvar e implantar**.

**nota**  
 Se atualizar qualquer um dos objetos de um site estático em um bucket de uso geral hospedado no Amplify, você deverá reimplantar a aplicação no Amplify Hosting para que as alterações entrem em vigor. O Amplify Hosting não detecta automaticamente as alterações no bucket. Para obter mais informações, consulte [Atualização de um site estático implantado no Amplify a partir de um bucket do S3](https://docs.aws.amazon.com//amplify/latest/userguide/update-website-deployed-from-s3.html) no *Guia do usuário do AWS Amplify Hosting*. 

Para iniciar diretamente do console do Amplify, consulte [Deploying a static website from S3 using the Amplify console](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) no *Guia do usuário do AWS Amplify Hosting*.

Para começar a usar os AWS SDKs, consulte [Creating a bucket policy to deploy a static website from S3 using the AWS SDKs](https://docs.aws.amazon.com//amplify/latest/userguide/deploy-with-sdks.html) no *Guia do usuário do AWS Amplify Hosting*. 