

# Controlar as solicitações de origem com uma política
<a name="controlling-origin-requests"></a>

Quando uma solicitação do visualizador para o CloudFront resulta em uma *falha de cache* (o objeto solicitado não está armazenado em cache no ponto de presença), o CloudFront envia uma solicitação à origem para recuperar o objeto. É o que chamamos de *solicitação de origem*. A solicitação de origem sempre inclui as seguintes informações da solicitação do visualizador:
+ O caminho da URL (somente o caminho, sem strings de consulta de URL ou o nome de domínio)
+ O corpo da solicitação (se houver)
+ Os cabeçalhos HTTP que o CloudFront inclui automaticamente em cada solicitação de origem, incluindo `Host`, `User-Agent` e `X-Amz-Cf-Id`

Outras informações da solicitação do visualizador, como strings de consulta de URL, cabeçalhos HTTP e cookies, não são incluídas na solicitação de origem por padrão. (Exceção: com configurações de cache herdadas, o CloudFront encaminha os cabeçalhos para a origem por padrão.) No entanto, é recomendável receber algumas dessas outras informações na origem, por exemplo, para coletar dados para análise ou telemetria. É possível usar uma *política de solicitação de origem* para controlar as informações incluídas em uma solicitação de origem. 

As políticas de solicitação de origem são separadas das [políticas de cache](controlling-the-cache-key.md) que controlam a chave de cache. Dessa forma, é possível receber informações adicionais na origem e também manter uma boa *taxa acertos do cache* (a proporção de solicitações do visualizador que ocasionam um acerto de cache). Você faz isso controlando separadamente quais informações são incluídas nas solicitações de origem (usando a política de solicitação de origem) e são estão incluídas na chave de cache (usando a política de cache).

Embora os dois tipos de política sejam separados, eles estão relacionados. Todas as strings de consulta de URL, cabeçalhos HTTP e cookies que você inclui na chave de cache (usando uma política de cache) são automaticamente incluídos nas solicitações de origem. Use a política de solicitação de origem para especificar as informações que você deseja incluir nas solicitações de origem, mas *não* incluir na chave de cache. Assim como uma política de cache, você anexa uma política de solicitação de origem a um ou mais comportamentos de cache em uma distribuição do CloudFront.

Você também pode usar uma política de solicitação de origem para adicionar cabeçalhos HTTP adicionais a uma solicitação de origem que não foram incluídos na solicitação do visualizador. Esses cabeçalhos adicionais são adicionados pelo CloudFront antes de enviar a solicitação de origem, com valores de cabeçalho determinados automaticamente com base na solicitação do visualizador. Para obter mais informações, consulte [Adicionar cabeçalhos de solicitação do CloudFront](adding-cloudfront-headers.md).

**Topics**
+ [Noções básicas sobre políticas de solicitação de origem](origin-request-understand-origin-request-policy.md)
+ [Criar políticas de solicitação de origem](origin-request-create-origin-request-policy.md)
+ [Usar políticas de solicitação de origem gerenciadas](using-managed-origin-request-policies.md)
+ [Adicionar cabeçalhos de solicitação do CloudFront](adding-cloudfront-headers.md)
+ [Noções básicas sobre como as políticas de solicitação de origem e as políticas de cache funcionam juntas](understanding-how-origin-request-policies-and-cache-policies-work-together.md)

# Noções básicas sobre políticas de solicitação de origem
<a name="origin-request-understand-origin-request-policy"></a>

O CloudFront fornece algumas políticas de solicitação de origem predefinidas, conhecidas como *políticas gerenciadas*, para casos de uso comuns. É possível usar essas políticas gerenciadas ou criar sua própria política de solicitação de origem específica para suas necessidades. Para obter mais informações sobre políticas gerenciadas, consulte [Usar políticas de solicitação de origem gerenciadas](using-managed-origin-request-policies.md).

Uma política de solicitação de origem contém as seguintes configurações, que são categorizadas em *informações de política* e *configurações de solicitação de origem*.

## Informações de política
<a name="origin-request-understand-origin-request-policy-info"></a>

**Nome**  
Um nome exclusivo para identificar a política da solicitação de origem. No console, você usa o nome para anexar a política de solicitação de origem a um comportamento de cache.

**Descrição**  
Um comentário para descrever a política da solicitação de origem. Isso é opcional.

## Configurações da solicitação de origem
<a name="origin-request-understand-origin-request-policy-settings"></a>

As configurações de solicitação de origem especificam os valores nas solicitações do visualizador que estão incluídos nas solicitações que o CloudFront envia para a origem (conhecidas como solicitações de origem). Os valores podem incluir strings de consulta de URL, cabeçalhos HTTP e cookies. Os valores especificados são incluídos nas solicitações de origem, mas não estão incluídos na chave de cache. Para obter informações sobre como controlar a chave de cache, consulte [Controlar a chave de cache com uma política](controlling-the-cache-key.md).

**Cabeçalhos**  
Os cabeçalhos HTTP em solicitações do visualizador que o CloudFront inclui em solicitações de origem. Para cabeçalhos, é possível escolher uma das seguintes configurações:  
+ **None (Nenhum)**: os cabeçalhos HTTP nas solicitações do visualizador *não* são incluídos nas solicitações de origem.
+ **All viewer headers (Todos os cabeçalhos do visualizador)**: todos os cabeçalhos HTTP nas solicitações do visualizador são incluídos nas solicitações de origem.
+ **All viewer headers and the following CloudFront headers** (Todos os cabeçalhos do visualizador e os seguintes cabeçalhos do CloudFront): todos os cabeçalhos HTTP nas solicitações do visualizador serão incluídos nas solicitações de origem. Além disso, você especifica quais dos cabeçalhos do CloudFront você deseja adicionar às solicitações de origem. Para obter mais informações sobre os cabeçalhos do CloudFront, consulte [Adicionar cabeçalhos de solicitação do CloudFront](adding-cloudfront-headers.md).
+ **Include the following headers** (Incluir os seguintes cabeçalhos): você especifica quais cabeçalhos HTTP serão incluídos nas solicitações de origem.
**nota**  
Não especifique um cabeçalho que já esteja incluído nas configurações de **cabeçalhos personalizados de origem**. Para obter mais informações, consulte [Configurar o CloudFront para adicionar cabeçalhos personalizados às solicitações de origem](add-origin-custom-headers.md#add-origin-custom-headers-configure).
+ **Todos os cabeçalhos do visualizador, exceto**: especifique quais cabeçalhos HTTP ***não*** estão incluídos nas solicitações de origem. Todos os outros cabeçalhos HTTP nas solicitações do visualizador, exceto os especificados, estão incluídos.
Ao usar a configuração **Todos os cabeçalhos do visualizador e os seguintes cabeçalhos do CloudFront**, **Incluir todos os seguintes cabeçalhos** ou **Todos os cabeçalhos do visualizador, exceto** especifique os cabeçalhos HTTP pelo nome, não pelo valor. O CloudFront inclui o cabeçalho completo, incluindo seu valor, nas solicitações de origem.  
Quando você usa a configuração **Todos os cabeçalhos do visualizador, exceto** para remover o cabeçalho do `Host` do visualizador, o CloudFront adiciona um novo cabeçalho do `Host` com o nome de domínio da origem à solicitação de origem.

**Cookies**  
Os cookies em solicitações do visualizador que o CloudFront inclui em solicitações de origem. Para cookies, é possível escolher uma das seguintes configurações:  
+ **None (Nenhum)**: os cookies nas solicitações do visualizador *não* são incluídos nas solicitações de origem.
+ **All (Todos)**: todos os cookies em solicitações do visualizador são incluídos em solicitações de origem.
+ **Incluir cookies especificados**: especifique quais dos cookies nas solicitações do visualizador serão incluídos nas solicitações de origem.
+ **Todos os cookies, exceto**: especifique quais dos cookies nas solicitações do visualizador ***não*** serão incluídos nas solicitações de origem. Todos os outros cookies nas solicitações do visualizador estão incluídos.
Ao usar a configuração **Incluir os cookies especificados** ou **Incluir todos os cookies, exceto**, especifique os cookies pelo nome, não pelo valor. O CloudFront inclui o cookie completo, incluindo seu valor, nas solicitações de origem.

**Strings de consulta **  
As strings de consulta de URL em solicitações do visualizador que o CloudFront inclui em solicitações de origem. Para strings de consulta, é possível escolher uma das seguintes configurações:  
+ **None (Nenhuma)**: as strings de consulta nas solicitações do visualizador *não* são incluídas nas solicitações de origem.
+ **All (Todas)**: todas as strings de consulta em solicitações do visualizador são incluídas em solicitações de origem.
+ **Incluir as strings de consulta especificadas**: especifique quais das strings de consulta nas solicitações do visualizador serão incluídas nas solicitações de origem.
+ **Todas as consultas, exceto**: especifique quais das strings de consulta nas solicitações do visualizador ***não*** serão incluídas nas solicitações de origem. Todas as outras strings de consulta estão incluídas.
Ao usar a configuração **Incluir as strings de consulta especificadas** ou **(Incluir todas as strings de consulta, exceto**, especifique as strings de consulta pelo nome, não pelo valor. O CloudFront inclui a string de consulta completa, incluindo seu valor, nas solicitações de origem.

# Criar políticas de solicitação de origem
<a name="origin-request-create-origin-request-policy"></a>

É possível usar uma política de solicitação de origem para controlar os valores (strings de consulta de URL, cabeçalhos HTTP e cookies) incluídos em solicitações que o CloudFront envia para a origem. Você pode criar uma política de solicitação de origem no console do CloudFront com a AWS Command Line Interface (AWS CLI) ou a API do CloudFront.

Depois de criar uma política de solicitação de origem, anexe-a a um ou mais comportamentos de cache em uma distribuição do CloudFront.

As políticas de solicitação de origem não são necessárias. Quando um comportamento de cache não tem uma política de solicitação de origem anexada, a solicitação de origem inclui todos os valores especificados na [política de cache](cache-key-understand-cache-policy.md), mas nada a mais.

**nota**  
Para usar uma política de solicitação de origem, o comportamento de cache também deve usar uma [política de cache](controlling-the-cache-key.md). Não é possível usar uma política de solicitação de origem em um comportamento de cache sem uma política de cache.

------
#### [ Console ]

**Como criar uma política de solicitação de origem (console)**

1. Faça login no Console de gerenciamento da AWS e abra a página **Policies** (Políticas) no console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home?#/policies](https://console.aws.amazon.com/cloudfront/v4/home?#/policies).

1. Escolha **Origin request** (Solicitação de origem) e escolha **Create origin request policy** (Criar política de solicitação de origem).

1. Escolha a configuração desejada para esta política de solicitação de origem. Para obter mais informações, consulte [Noções básicas sobre políticas de solicitação de origem](origin-request-understand-origin-request-policy.md).

1. Quando terminar, escolha **Create** (Criar).

Depois de criar uma política de solicitação de origem, é possível anexá-la a um comportamento de cache.

**Como anexar uma política de solicitação de origem a uma distribuição existente (console)**

1. Abra a página **Distributions** (Distribuições) no console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home#/distributions](https://console.aws.amazon.com/cloudfront/v4/home#/distributions).

1. Escolha a distribuição a ser atualizada e escolha a guia **Behaviors (Comportamentos)**.

1. Escolha o comportamento de cache a ser atualizado e escolha **Edit (Editar)**.

   Ou, para criar um novo comportamento de cache, escolha **Create behavior** (Criar comportamento).

1. Na seção **Cache key and origin requests** (Solicitações da chave de cache e de origem), verifique se a opção **Cache policy and origin request policy** (Política de cache e política de solicitação de origem) está selecionada.

1. Para **Origin request policy** (Política de solicitação de origem), escolha a política de solicitação de origem a ser anexada a esse comportamento de cache.

1. Na parte inferior da página, escolha **Save changes** (Salvar alterações).

**Como anexar uma política de solicitação de origem a uma nova distribuição (console)**

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 **Create distribution** (Criar distribuição).

1. Na seção **Cache key and origin requests** (Solicitações da chave de cache e de origem), verifique se a opção **Cache policy and origin request policy** (Política de cache e política de solicitação de origem) está selecionada.

1. Em **Origin request policy** (Política de solicitação de origem), escolha a política de solicitação de origem a ser anexada ao comportamento de cache padrão dessa distribuição.

1. Escolha as configurações desejadas para a origem, o comportamento padrão do cache e outras configurações de distribuição. Para obter mais informações, consulte [Referência de configurações de todas as distribuições](distribution-web-values-specify.md).

1. Ao concluir, escolha **Create distribution** (Criar distribuição).

------
#### [ CLI ]

Para criar uma política de solicitação de origem com a AWS Command Line Interface (AWS CLI), use o comando **aws cloudfront create-origin-request-policy**. É possível usar um arquivo de entrada para fornecer os parâmetros de entrada do comando, em vez de especificar cada parâmetro individual como entrada na linha de comando.

**Como criar uma política de solicitação de origem (CLI com arquivo de entrada)**

1. Use o comando a seguir para criar um arquivo chamado `origin-request-policy.yaml` que contém todos os parâmetros de entrada para o comando **create-origin-request-policy**.

   ```
   aws cloudfront create-origin-request-policy --generate-cli-skeleton yaml-input > origin-request-policy.yaml
   ```

1. Abra o arquivo chamado `origin-request-policy.yaml` que você acabou de criar. Edite o arquivo para especificar as configurações de política de solicitação de origem desejadas e salve o arquivo. É possível remover campos opcionais do arquivo, mas não remover os campos obrigatórios.

   Para obter mais informações sobre as configurações de política de solicitação de origem, consulte [Noções básicas sobre políticas de solicitação de origem](origin-request-understand-origin-request-policy.md).

1. Use o comando a seguir para criar a política de solicitação de origem usando parâmetros de entrada do arquivo `origin-request-policy.yaml`.

   ```
   aws cloudfront create-origin-request-policy --cli-input-yaml file://origin-request-policy.yaml
   ```

   Anote o valor de `Id` na saída do comando. Esse é o ID da política de solicitação de origem, que será necessário para anexar essa política ao comportamento de cache de uma distribuição do CloudFront.

**Como anexar uma política de solicitação de origem a uma distribuição existente (CLI com arquivo de entrada)**

1. Use o comando a seguir para salvar a configuração da distribuição do CloudFront que você deseja atualizar. Substitua *distribution\$1ID* pelo ID da distribuição.

   ```
   aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
   ```

1. Abra o arquivo chamado `dist-config.yaml` que você acabou de criar. Edite o arquivo, fazendo as seguintes alterações em cada comportamento de cache que você está atualizando para usar uma política de solicitação de origem.
   + No comportamento de cache, adicione um campo chamado `OriginRequestPolicyId`. Para o valor do campo, use o ID da política de solicitação de origem que você anotou após criar a política.
   + Renomeie o campo `ETag` para `IfMatch`, mas não altere o valor do campo.

   Ao concluir, salve o arquivo.

1. Use o comando a seguir para atualizar a distribuição para usar a política de solicitação de origem. Substitua *distribution\$1ID* pelo ID da distribuição.

   ```
   aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml
   ```

**Para anexar uma política de solicitação de origem a uma nova distribuição (CLI com arquivo de entrada)**

1. Use o comando a seguir para criar um arquivo chamado `distribution.yaml` que contém todos os parâmetros de entrada para o comando **create-distribution**.

   ```
   aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
   ```

1. Abra o arquivo chamado `distribution.yaml` que você acabou de criar. No comportamento de cache padrão, no campo `OriginRequestPolicyId`, insira o ID da política de solicitação de origem que você anotou após criar a política. Continue editando o arquivo para especificar as configurações de distribuição desejadas e salve o arquivo ao concluir.

   Para obter mais informações sobre as configurações de distribuição, consulte [Referência de configurações de todas as distribuições](distribution-web-values-specify.md).

1. Use o seguinte comando para criar a distribuição usando parâmetros de entrada do arquivo `distribution.yaml`.

   ```
   aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
   ```

------
#### [ API ]

Para criar uma política de solicitação de origem com a API do CloudFront, use [CreateOriginRequestPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateOriginRequestPolicy.html). Para obter mais informações sobre os campos especificados nessa chamada de API, consulte [Noções básicas sobre políticas de solicitação de origem](origin-request-understand-origin-request-policy.md) e a documentação de referência de API do seu AWS SDK ou de outro cliente de API.

Depois de criar uma política de solicitação de origem, é possível anexá-la a um comportamento de cache usando uma das seguintes chamadas de API:
+ Para anexá-la a um comportamento de cache em uma distribuição existente, use [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html).
+ Para anexá-la a um comportamento de cache em uma nova distribuição, use [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html).

Para as duas chamadas de API, forneça o ID da política de solicitação de origem no campo `OriginRequestPolicyId`, dentro de um comportamento de cache. Para mais informações sobre os outros campos especificados nessas chamadas de API, consulte [Referência de configurações de todas as distribuições](distribution-web-values-specify.md) e a documentação de referência da API do AWS SDK ou de outro cliente de API.

------

# Usar políticas de solicitação de origem gerenciadas
<a name="using-managed-origin-request-policies"></a>

O CloudFront fornece um conjunto de políticas de solicitação de origem gerenciadas que é possível anexar a qualquer um dos comportamentos de cache da distribuição. Com uma política de solicitação de origem gerenciada, você não precisa escrever ou manter sua própria política de solicitação de origem. As políticas gerenciadas usam configurações que são otimizadas para casos de uso específicos.

Para usar uma política de solicitação de origem gerenciada, anexe-a a um comportamento de cache em sua distribuição. O processo é o mesmo que quando você cria uma política de solicitação de origem, mas em vez de criar uma, basta anexar uma das políticas de solicitação de origem gerenciadas. Você anexa a política por nome (com o console) ou por ID (com a AWS CLI ou os SDKs). Os nomes e IDs são listados na seção a seguir.

Para obter mais informações, consulte [Criar políticas de solicitação de origem](origin-request-create-origin-request-policy.md).

Os tópicos a seguir descrevem as políticas de solicitação de origem gerenciadas que você pode usar.

**Topics**
+ [AllViewer](#managed-origin-request-policy-all-viewer)
+ [AllViewerAndCloudFrontHeaders-2022-06](#managed-origin-request-policy-all-viewer-and-cloudfront)
+ [AllViewerExceptHostHeader](#managed-origin-request-policy-all-viewer-except-host-header)
+ [CORS-CustomOrigin](#managed-origin-request-policy-cors-custom)
+ [CORS-S3Origin](#managed-origin-request-policy-cors-s3)
+ [Elemental-MediaTailor-PersonalizedManifests](#managed-origin-request-policy-mediatailor)
+ [HostHeaderOnly](#managed-origin-request-policy-host-header-only)
+ [UserAgentRefererHeaders](#managed-origin-request-policy-user-agent-referer)

## AllViewer
<a name="managed-origin-request-policy-all-viewer"></a>

[Visualizar essa política no console do CloudFront](https://console.aws.amazon.com/cloudfront/v4/home#/policies/origin/216adef6-5c7f-47e4-b989-5492eafa07d3)

Essa política inclui todos os valores (cabeçalhos, cookies e strings de consulta) da solicitação do visualizador.

Ao usar o CloudFormation, a AWS CLI ou a API do CloudFront, o ID dessa política é:

`216adef6-5c7f-47e4-b989-5492eafa07d3`

Essa política tem as seguintes configurações:
+ **Cabeçalhos incluídos nas solicitações de origem:** todos os cabeçalhos na solicitação do visualizador
+ **Cookies incluídos nas solicitações de origem:** todos
+ **Strings de consulta incluídas em solicitações de origem:** todas

## AllViewerAndCloudFrontHeaders-2022-06
<a name="managed-origin-request-policy-all-viewer-and-cloudfront"></a>

[Visualizar essa política no console do CloudFront](https://console.aws.amazon.com/cloudfront/v4/home#/policies/origin/33f36d7e-f396-46d9-90e0-52428a34d9dc)

Essa política inclui todos os valores (cabeçalhos, cookies e strings de consulta) da solicitação do visualizador e todos os [cabeçalhos do CloudFront](adding-cloudfront-headers.md) que foram lançados até junho de 2022 (os cabeçalhos do CloudFront lançados depois de junho de 2022 não estão incluídos).

Ao usar o CloudFormation, a AWS CLI ou a API do CloudFront, o ID dessa política é:

`33f36d7e-f396-46d9-90e0-52428a34d9dc`

Essa política tem as seguintes configurações:
+ **Cabeçalhos incluídos nas solicitações de origem:** todos os cabeçalhos na solicitação do visualizador, e os seguintes cabeçalhos do CloudFront:
  + `CloudFront-Forwarded-Proto`
  + `CloudFront-Is-Android-Viewer`
  + `CloudFront-Is-Desktop-Viewer`
  + `CloudFront-Is-IOS-Viewer`
  + `CloudFront-Is-Mobile-Viewer`
  + `CloudFront-Is-SmartTV-Viewer`
  + `CloudFront-Is-Tablet-Viewer`
  + `CloudFront-Viewer-Address`
  + `CloudFront-Viewer-ASN`
  + `CloudFront-Viewer-City`
  + `CloudFront-Viewer-Country`
  + `CloudFront-Viewer-Country-Name`
  + `CloudFront-Viewer-Country-Region`
  + `CloudFront-Viewer-Country-Region-Name`
  + `CloudFront-Viewer-Http-Version`
  + `CloudFront-Viewer-Latitude`
  + `CloudFront-Viewer-Longitude`
  + `CloudFront-Viewer-Metro-Code`
  + `CloudFront-Viewer-Postal-Code`
  + `CloudFront-Viewer-Time-Zone`
  + `CloudFront-Viewer-TLS`
+ **Cookies incluídos nas solicitações de origem:** todos
+ **Strings de consulta incluídas em solicitações de origem:** todas

## AllViewerExceptHostHeader
<a name="managed-origin-request-policy-all-viewer-except-host-header"></a>

[Visualizar essa política no console do CloudFront](https://console.aws.amazon.com/cloudfront/v4/home#/policies/origin/b689b0a8-53d0-40ab-baf2-68738e2966ac)

Essa política ***não*** inclui o cabeçalho de `Host` da solicitação do visualizador, mas inclui todos os outros valores (cabeçalhos, cookies e strings de consulta) da solicitação do visualizador.

Essa política também inclui cabeçalhos de [solicitação adicionais do CloudFront](adding-cloudfront-headers.md) para protocolo HTTP, versão HTTP, versão TLS e todos os cabeçalhos de tipo de dispositivo e localização do visualizador.

Essa política é destinada para uso com o Amazon API Gateway e as origens do URL da função do AWS Lambda. Essas origens esperam que o cabeçalho de `Host` contenha o nome do domínio de origem, não o nome de domínio da distribuição do CloudFront. Encaminhar o cabeçalho de `Host` da solicitação do visualizador para essas origens pode impedir que elas funcionem.

**nota**  
Quando você usa essa política de solicitação de origem gerenciada para remover o cabeçalho de `Host` do visualizador, o CloudFront adiciona um novo cabeçalho de `Host` com o nome de domínio da origem à solicitação de origem.

Ao usar o CloudFormation, a AWS CLI ou a API do CloudFront, o ID dessa política é:

`b689b0a8-53d0-40ab-baf2-68738e2966ac`

Essa política tem as seguintes configurações:
+ **Cabeçalhos incluídos nas solicitações de origem:** todos os cabeçalhos na solicitação do visualizador, ***exceto*** para o cabeçalho de `Host`
+ **Cookies incluídos nas solicitações de origem:** todos
+ **Strings de consulta incluídas em solicitações de origem:** todas

## CORS-CustomOrigin
<a name="managed-origin-request-policy-cors-custom"></a>

[Visualizar essa política no console do CloudFront](https://console.aws.amazon.com/cloudfront/v4/home#/policies/origin/59781a5b-3903-41f3-afcb-af62929ccde1)

Esta política inclui o cabeçalho que permite solicitações de compartilhamento de recursos de origem cruzada (CORS) quando a origem é uma origem personalizada.

Ao usar o CloudFormation, a AWS CLI ou a API do CloudFront, o ID dessa política é:

`59781a5b-3903-41f3-afcb-af62929ccde1`

Essa política tem as seguintes configurações:
+ **Cabeçalhos incluídos nas solicitações de origem:**
  + `Origin`
+ **Cookies incluídos nas solicitações de origem:** nenhum
+ **Strings de consulta incluídas em solicitações de origem:** nenhuma

## CORS-S3Origin
<a name="managed-origin-request-policy-cors-s3"></a>

[Visualizar essa política no console do CloudFront](https://console.aws.amazon.com/cloudfront/v4/home#/policies/origin/88a5eaf4-2fd4-4709-b370-b4c650ea3fcf)

Esta política inclui os cabeçalhos que permitem solicitações de compartilhamento de recursos de origem cruzada (CORS) quando a origem é um bucket do Amazon S3.

Ao usar o CloudFormation, a AWS CLI ou a API do CloudFront, o ID dessa política é:

`88a5eaf4-2fd4-4709-b370-b4c650ea3fcf`

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

## Elemental-MediaTailor-PersonalizedManifests
<a name="managed-origin-request-policy-mediatailor"></a>

[Visualizar essa política no console do CloudFront](https://console.aws.amazon.com/cloudfront/v4/home#/policies/origin/775133bc-15f2-49f9-abea-afb2e0bf67d2)

Esta política deve ser usada com uma origem que seja um endpoint do AWS Elemental MediaTailor.

Ao usar o CloudFormation, a AWS CLI ou a API do CloudFront, o ID dessa política é:

`775133bc-15f2-49f9-abea-afb2e0bf67d2`

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`
  + `User-Agent`
  + `X-Forwarded-For`
+ **Cookies incluídos nas solicitações de origem:** nenhum
+ **Strings de consulta incluídas em solicitações de origem:** todas

## HostHeaderOnly
<a name="managed-origin-request-policy-host-header-only"></a>

[Visualizar essa política no console do CloudFront](https://console.aws.amazon.com/cloudfront/v4/home#/policies/origin/bf0718e1-ba1e-49d1-88b1-f726733018ae)

Esta política inclui apenas o cabeçalho `Host` da solicitação de origem. Não inclui nenhuma string de consulta ou cookie.

Ao usar o CloudFormation, a AWS CLI ou a API do CloudFront, o ID dessa política é:

`bf0718e1-ba1e-49d1-88b1-f726733018ae`

Essa política tem as seguintes configurações:
+ **Cabeçalhos incluídos nas solicitações de origem:** Host
+ **Cookies incluídos nas solicitações de origem:** nenhum
+ **Strings de consulta incluídas em solicitações de origem:** nenhuma

## UserAgentRefererHeaders
<a name="managed-origin-request-policy-user-agent-referer"></a>

[Visualizar essa política no console do CloudFront](https://console.aws.amazon.com/cloudfront/v4/home#/policies/origin/acba4595-bd28-49b8-b9fe-13317c0390fa)

Esta política inclui apenas os cabeçalhos `User-Agent` e `Referer`. Não inclui nenhuma string de consulta ou cookie.

Ao usar o CloudFormation, a AWS CLI ou a API do CloudFront, o ID dessa política é:

`acba4595-bd28-49b8-b9fe-13317c0390fa`

Essa política tem as seguintes configurações:
+ **Cabeçalhos incluídos nas solicitações de origem:**
  + `User-Agent`
  + `Referer`
+ **Cookies incluídos nas solicitações de origem:** nenhum
+ **Strings de consulta incluídas em solicitações de origem:** nenhuma

# Adicionar cabeçalhos de solicitação do CloudFront
<a name="adding-cloudfront-headers"></a>

É possível configurar o CloudFront para adicionar cabeçalhos HTTP específicos às solicitações que o CloudFront recebe dos visualizadores e encaminha para sua origem ou [função de borda](edge-functions.md). Os valores desses cabeçalhos HTTP são baseados nas características do visualizador ou da solicitação do visualizador. Os cabeçalhos fornecem informações sobre o tipo de dispositivo, o endereço IP, a localização geográfica, o protocolo de solicitação (HTTP ou HTTPS), a versão HTTP, os detalhes da conexão TLS, a [impressão digital JA3](https://github.com/salesforce/ja3) e a impressão JA4 do visualizador. Você também pode configurar o comportamento do cache da distribuição para encaminhar cabeçalhos WebSocket. Para obter mais informações, consulte [Usar WebSockets com distribuições do CloudFront](distribution-working-with.websockets.md).

Com esses cabeçalhos, sua origem ou função de borda pode receber informações sobre o visualizador sem a necessidade de escrever seu próprio código para determiná-las. Se a origem retornar respostas diferentes com base nas informações nesses cabeçalhos, você poderá incluí-las na *chave de cache* para que o CloudFront armazene as respostas em cache separadamente. Por exemplo, sua origem pode responder com conteúdo em um idioma específico com base no país em que o visualizador está ou com conteúdo personalizado para um tipo de dispositivo específico. Sua origem também pode gravar esses cabeçalhos em arquivos de log, que você pode usar para determinar informações sobre onde seus visualizadores estão, em quais tipos de dispositivo eles estão e muito mais.

Para incluir cabeçalhos na chave de cache, use uma *política de cache*. Para obter mais informações, consulte [Controlar a chave de cache com uma política](controlling-the-cache-key.md) e [Noções básicas sobre a chave de cache](understanding-the-cache-key.md).

Para receber esses cabeçalhos em sua origem, mas não incluí-los na chave de cache, use uma *política de solicitação de origem*. Para obter mais informações, consulte [Controlar as solicitações de origem com uma política](controlling-origin-requests.md).

**Topics**
+ [Cabeçalhos de tipo de dispositivo](#cloudfront-headers-device-type)
+ [Cabeçalhos de localização do visualizador](#cloudfront-headers-viewer-location)
+ [Cabeçalhos para determinar a estrutura de cabeçalho do visualizador](#cloudfront-headers-viewer-headers)
+ [Cabeçalhos relacionados a TLS](#tls-related-versions)
+ [Outros cabeçalhos do CloudFront](#cloudfront-headers-other)

## Cabeçalhos de tipo de dispositivo
<a name="cloudfront-headers-device-type"></a>

Você pode adicionar os cabeçalhos a seguir para determinar o tipo de dispositivo do visualizador. Com base no valor do cabeçalho `User-Agent`, o CloudFront define o valor desses cabeçalhos como `true` ou `false`. Se o dispositivo se encaixar em mais de uma categoria, mais de um valor poderá ser `true`. Por exemplo, para alguns tablets, o CloudFront pode definir tanto `CloudFront-Is-Mobile-Viewer` quanto `CloudFront-Is-Tablet-Viewer` como `true`.
+ `CloudFront-Is-Android-Viewer`: definido como `true` quando o CloudFront determina que o visualizador é um dispositivo com o sistema operacional Android.
+ `CloudFront-Is-Desktop-Viewer`: definido como `true` quando o CloudFront determina que o visualizador é um dispositivo desktop.
+ `CloudFront-Is-IOS-Viewer`: definido como `true` quando o CloudFront determina que o visualizador é um dispositivo com um sistema operacional móvel Apple, como iPhone, iPod touch e alguns dispositivos iPad.
+ `CloudFront-Is-Mobile-Viewer`: definido como `true` quando o CloudFront determina que o visualizador é um dispositivo móvel.
+ `CloudFront-Is-SmartTV-Viewer`: definido como `true` quando o CloudFront determina que o visualizador é uma Smart TV.
+ `CloudFront-Is-Tablet-Viewer`: definido como `true` quando o CloudFront determina que o visualizador é um tablet.

## Cabeçalhos de localização do visualizador
<a name="cloudfront-headers-viewer-location"></a>

Você pode adicionar os cabeçalhos a seguir para determinar a localização do visualizador. O CloudFront determina os valores para esses cabeçalhos com base no endereço IP do visualizador. Para caracteres não ASCII nos valores desses cabeçalhos, o CloudFront codifica o caractere de porcentagem de acordo com a [seção 1.2 da RFC 3986](https://tools.ietf.org/html/rfc3986#section-2.1).
+ `CloudFront-Viewer-Address`: contém o endereço IP do visualizador e a porta de origem da solicitação. Por exemplo, um valor de cabeçalho de `198.51.100.10:46532` significa que o endereço IP do visualizador é 198.51.100.10 e a porta da fonte da solicitação é 46532.
+ `CloudFront-Viewer-ASN`: contém o número de sistema autônomo (ASN) do visualizador.
**nota**  
É possível adicionar `CloudFront-Viewer-Address` e `CloudFront-Viewer-ASN` a uma política de solicitação de origem, mas não a uma política de cache.
+ `CloudFront-Viewer-Country`: contém o código de duas letras do país do visualizador. Para obter uma lista de códigos de país, consulte [ISO 3166-1 alfa-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
+ `CloudFront-Viewer-City`: contém o nome da cidade do visualizador.

Quando você adiciona os cabeçalhos a seguir, o CloudFront os aplica a todas as solicitações *exceto* aquelas que se originam da rede da AWS:
+ `CloudFront-Viewer-Country-Name`: contém o nome do país do visualizador.
+ `CloudFront-Viewer-Country-Region`: contém um código (de até três caracteres) que representa a região do visualizador. A região é a subdivisão de primeiro nível (a mais ampla ou menos específica) do código [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).
+ `CloudFront-Viewer-Country-Region-Name`: contém o nome da região do visualizador. A região é a subdivisão de primeiro nível (a mais ampla ou menos específica) do código [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).
+ `CloudFront-Viewer-Latitude`: contém a latitude aproximada do visualizador.
+ `CloudFront-Viewer-Longitude`: contém a longitude aproximada do visualizador.
+ `CloudFront-Viewer-Metro-Code`: contém o código metro do visualizador. Esse código só está presente quando o visualizador está nos Estados Unidos.
+ `CloudFront-Viewer-Postal-Code`: contém o CEP do visualizador.
+ `CloudFront-Viewer-Time-Zone` contém o fuso horário do visualizador, no [formato de banco de dados de fuso horário da IANA](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) (por exemplo, `America/Los_Angeles`).

**nota**  
`CloudFront-Viewer-City`, `CloudFront-Viewer-Metro-Code` e `CloudFront-Viewer-Postal-Code` podem não estar disponíveis para todos os endereços IP. Alguns endereços IP não podem ser geolocalizados com especificidade suficiente para receber essas informações.

## Cabeçalhos para determinar a estrutura de cabeçalho do visualizador
<a name="cloudfront-headers-viewer-headers"></a>

Agora você pode adicionar os cabeçalhos a seguir para ajudar a identificar o visualizador com base nos cabeçalhos que ele envia. Por exemplo, navegadores diferentes podem enviar cabeçalhos HTTP em determinada ordem. Se o navegador especificado no cabeçalho `User-Agent` não corresponder à ordem de cabeçalho esperada desse navegador, você poderá negar a solicitação. Além disso, se o valor `CloudFront-Viewer-Header-Count` não corresponder ao número de cabeçalhos em `CloudFront-Viewer-Header-Order`, você poderá negar a solicitação.
+ `CloudFront-Viewer-Header-Order`: contém os nomes dos cabeçalhos do visualizador na ordem solicitada, separados por um sinal de dois pontos. Por exemplo: `CloudFront-Viewer-Header-Order: Host:User-Agent:Accept:Accept-Encoding`. Os cabeçalhos além do limite de caracteres de 7.680 são truncados.
+ `CloudFront-Viewer-Header-Count`: contém o número total de cabeçalhos do visualizador.

## Cabeçalhos relacionados a TLS
<a name="tls-related-versions"></a>

Você pode adicionar os seguintes cabeçalhos para determinar a impressão digital JA3, a impressão digital JA4 e os detalhes de conexão TLS do visualizador:
+ `CloudFront-Viewer-JA3-Fingerprint`: contém a [impressão digital JA3](https://github.com/salesforce/ja3) do visualizador. A impressão digital JA3 pode ajudar você a determinar se a solicitação vem de um cliente conhecido, se é um malware ou um bot malicioso, ou se é uma aplicação esperada (na lista de permissões). 
+ `CloudFront-Viewer-JA4-Fingerprint`: contém a impressão digital JA4 do visualizador. De modo semelhante à impressão digital JA3, a [impressão digital JA4](https://github.com/FoxIO-LLC/ja4) pode ajudar você a determinar se a solicitação provém de um cliente conhecido, se é um malware ou um bot mal-intencionado ou se é uma aplicação esperada (na lista de permissões). Você pode usar a impressão digital para criar um banco de dados de agentes conhecidos, bons e ruins, para aplicar ao inspecionar solicitações HTTP. Em seguida, você pode inspecionar o valor do cabeçalho nos servidores web de suas aplicações ou no [Lambda@Edge](lambda-at-the-edge.md) e [CloudFront Functions](cloudfront-functions.md) para comparar o valor do cabeçalho com uma lista de impressões digitais de malware conhecidas e bloquear clientes mal-intencionados.
+ `CloudFront-Viewer-TLS`: contém a versão SSL/TLS da cifra e as informações sobre o handshake de SSL/TLS que foi usado para a conexão entre o visualizador e o CloudFront. O valor do cabeçalho está no seguinte formato:

  ```
  SSL/TLS_version:cipher:handshake_information
  ```

  Para `handshake_information`, o cabeçalho contém um dos seguintes valores:
  + `fullHandshake`: foi realizado um handshake completo para a sessão SSL/TLS.
  + `sessionResumed`: uma sessão anterior de SSL/TLS foi retomada.
  + `connectionReused`: uma conexão SSL/TLS anterior foi reutilizada.

  Veja a seguir alguns exemplos de valores para esse cabeçalho:

  ```
  TLSv1.3:TLS_AES_128_GCM_SHA256:sessionResumed
  ```

  ```
  TLSv1.2:ECDHE-ECDSA-AES128-GCM-SHA256:connectionReused
  ```

  ```
  TLSv1.1:ECDHE-RSA-AES128-SHA256:fullHandshake
  ```

  ```
  TLSv1:ECDHE-RSA-AES256-SHA:fullHandshake
  ```

  Para obter a lista completa de possíveis versões e criptografias SSL/TLS que podem estar nesse valor de cabeçalho, consulte [Protocolos e cifras compatíveis entre visualizadores e o CloudFront](secure-connections-supported-viewer-protocols-ciphers.md).

**Observações**  
As impressões digitais JA3 e JA4 são derivadas do pacote `Client Hello` de SSL/TLS. Elas estão presentes apenas para solicitações HTTPS.
No caso dos cabeçalhos relacionados ao TLS, você pode adicioná-los a uma [política de solicitação para a origem](controlling-origin-requests.md), mas não a uma [política de cache](controlling-the-cache-key.md).

## Outros cabeçalhos do CloudFront
<a name="cloudfront-headers-other"></a>

É possível adicionar os seguintes cabeçalhos para determinar o URI da solicitação original do visualizador, os parâmetros e valores da string de consulta da solicitação original, o protocolo e a versão:
+ `CloudFront-Error-Uri`: contém o URI da solicitação original recebida do visualizador.
+ `CloudFront-Error-Args`: contém os parâmetros e os valores da string de consulta da solicitação original.
+ `CloudFront-Forwarded-Proto`: contém o protocolo da solicitação do visualizador (HTTP ou HTTPS).
+ `CloudFront-Viewer-Http-Version`: contém a versão HTTP da solicitação do visualizador.

# Noções básicas sobre como as políticas de solicitação de origem e as políticas de cache funcionam juntas
<a name="understanding-how-origin-request-policies-and-cache-policies-work-together"></a>

É possível usar uma [política de solicitação de origem](controlling-origin-requests.md) do CloudFront para controlar as solicitações que o CloudFront envia para a origem, que são chamadas de *solicitações de origem*. Para usar uma política de solicitação de origem, é necessário anexar uma [política de cache](controlling-the-cache-key.md) ao mesmo comportamento de cache. Não é possível usar uma política de solicitação de origem em um comportamento de cache sem uma política de cache. Para ter mais informações, consulte [Controlar as solicitações de origem com uma política](controlling-origin-requests.md).

As políticas de solicitação de origem e as políticas de cache funcionam juntas para determinar os valores que o CloudFront inclui nas solicitações de origem. Todas as strings de consulta de URL, cabeçalhos HTTP e cookies que você especificar na chave de cache (usando uma política de cache) são automaticamente incluídos nas solicitações de origem. Quaisquer strings de consulta, cabeçalhos e cookies adicionais especificados em uma política de solicitação de origem também serão incluídos nas solicitações de origem (mas não na chave de cache).

As políticas de solicitação de origem e as políticas de cache têm configurações que podem parecer mutuamente conflitantes. Por exemplo, uma política pode permitir determinados valores enquanto outra os bloqueia. A tabela a seguir explica quais valores o CloudFront inclui nas solicitações de origem quando você usa as configurações de uma política de solicitação de origem e uma política de cache em conjunto. Essas configurações geralmente se aplicam a todos os tipos de valores (strings de consulta, cabeçalhos e cookies), com a exceção de que não é possível especificar todos os cabeçalhos ou usar uma lista de bloqueio de cabeçalhos em uma política de cache.


|  |  **Política de solicitação de origem**  |  |  **Nenhum**  |  **Todos**  |  **Lista de permissões**  |  **Lista de bloqueios**  | 
| --- | --- | --- | --- | --- | --- | --- | 
|  **Política de cache**  | 
|  **Nenhum**  |  Nenhum valor da solicitação do visualizador é incluído na solicitação de origem, exceto os padrões, que estão incluídos em todas as solicitações de origem. Para ter mais informações, consulte [Controlar as solicitações de origem com uma política](controlling-origin-requests.md).  |  Todos os valores da solicitação do visualizador são incluídos na solicitação de origem.  |  Somente os valores especificados na política de solicitação de origem são incluídos na solicitação de origem.  |  Todos os valores da solicitação do visualizador, ***exceto*** aqueles especificados na política de solicitação de origem, são incluídos na solicitação de origem.  | 
|  **Todos** **Nota:** não é possível especificar todos os cabeçalhos em uma política de cache.  |  Todas as strings de consulta e cookies da solicitação do visualizador são incluídos na solicitação de origem.  |  Todos os valores da solicitação do visualizador são incluídos na solicitação de origem.  |  Todas as strings de consulta e cookies da solicitação do visualizador e quaisquer cabeçalhos especificados na política de solicitação de origem são incluídos na solicitação de origem.  |  Todas as strings de consulta e cookies da solicitação do visualizador são incluídos na solicitação de origem, mesmo aqueles especificados na lista de bloqueio da política de solicitação de origem. A configuração da política de cache substitui a lista de bloqueio da política de solicitação de origem.  | 
|  **Lista de permissões**  |  Somente os valores especificados na solicitação do visualizador são incluídos na solicitação de origem.  |  Todos os valores da solicitação do visualizador são incluídos na solicitação de origem.  |  Todos os valores especificados na política de cache ou na política de solicitação de origem são incluídos na solicitação de origem.  |  Os valores especificados na política de cache são incluídos na solicitação de origem, mesmo que esses valores estejam especificados na lista de bloqueio da política de solicitação de origem. A lista de permissões da política de cache substitui a lista de bloqueio da política de solicitação de origem.  | 
|  **Lista de bloqueios** **Nota:** não é possível especificar cabeçalhos em uma lista de bloqueio da política de cache.  |  Todas as cadeias de caracteres de consulta e cookies da solicitação do visualizador, ***exceto*** aqueles especificados, são incluídos na solicitação de origem.  |  Todos os valores da solicitação do visualizador são incluídos na solicitação de origem.  |  Os valores especificados na política de solicitação de origem são incluídos na solicitação de origem, mesmo que esses valores estejam especificados na lista de bloqueio da política de cache. A lista de permissões da política de solicitação de origem substitui a lista de bloqueio da política de cache.  |  Todos os valores da solicitação do visualizador, ***exceto*** aqueles especificados na política de cache ou na política de solicitação de origem, são incluídos na solicitação de origem.  | 