

# Criar políticas de cabeçalhos de resposta
<a name="creating-response-headers-policies"></a>

Você pode usar uma política de cabeçalhos para especificar os cabeçalhos HTTP que o Amazon CloudFront adiciona ou remove em respostas HTTP. Para obter mais informações sobre políticas de cabeçalhos de respostas e os motivos para usá-las, consulte [Adicionar ou remover cabeçalhos HTTP em respostas do CloudFront com uma política](modifying-response-headers.md).

Você pode criar uma política de cabeçalhos de resposta no console do CloudFront. Ou, você pode criar uma usando o AWS CloudFormation, a AWS Command Line Interface (AWS CLI) ou a API do CloudFront. Depois de criar uma política de cabeçalhos de resposta, anexe-a a um ou mais comportamentos de cache em uma distribuição do CloudFront.

Antes de criar uma política de cabeçalhos de resposta personalizada, verifique se uma das [políticas de cabeçalhos de resposta gerenciadas](using-managed-response-headers-policies.md) se encaixa no seu caso de uso. Caso contrário, você pode anexá-la ao comportamento de cache. Dessa forma, você não precisa criar nem gerenciar sua própria política de cabeçalhos de resposta.

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

**Para criar uma política de cabeçalhos de resposta (console)**

1. Faça login no Console de gerenciamento da AWS, depois vá para a guia **Response headers** (Cabeçalhos de resposta) na página **Policies** (Políticas) no console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders](https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders).

1. Selecione **Create response headers policy** (Criar política de cabeçalhos de resposta).

1. No formulário **Create response headers policy** (Criar política de cabeçalhos de resposta), faça o seguinte:

   1. No painel **Details** (Detalhes), insira um **Name** (Nome) para a política de cabeçalhos de resposta e (opcionalmente) uma **Description** (Descrição) que explique para que serve a política.

   1. No painel **Cross-origin resource sharing (CORS)** (Compartilhamento de recursos entre origens, CORS), escolha a chave **Configure CORS** (Configurar CORS) e configure todos os cabeçalhos do CORS que você deseja adicionar à política. Se você quiser que os cabeçalhos configurados substituam os cabeçalhos que o CloudFront recebe da origem, marque a caixa de seleção **Origin override** (Substituir origem).

      Para obter mais informações sobre as configurações dos cabeçalhos do CORS, consulte [Cabeçalhos de CORS](understanding-response-headers-policies.md#understanding-response-headers-policies-cors).

   1. No painel **Security headers** (Cabeçalhos de segurança), escolha a chave e configure cada um dos cabeçalhos de segurança que deseja adicionar à política.

      Para obter mais informações sobre as configurações dos cabeçalhos de segurança, consulte [Cabeçalhos de segurança](understanding-response-headers-policies.md#understanding-response-headers-policies-security).

   1. No painel **Custom headers** (Cabeçalhos personalizados), adicione quaisquer cabeçalhos personalizados que você desejar incluir na política.

      Para obter mais informações sobre as configurações dos cabeçalhos personalizados, consulte [Cabeçalhos personalizados](understanding-response-headers-policies.md#understanding-response-headers-policies-custom).

   1. No painel **Remove headers** (Remover cabeçalhos), adicione os nomes de todos os cabeçalhos que deseja que o CloudFront remova da resposta da origem e não inclua na resposta que o CloudFront enviará aos visualizadores.

      Para obter mais informações sobre as configurações de remoção de cabeçalhos, consulte [Remover cabeçalhos](understanding-response-headers-policies.md#understanding-response-headers-policies-remove-headers).

   1. No painel **Server-Timing header** (Cabeçalho Server-Timing), escolha a opção **Enable** (Habilitar) e insira uma taxa de amostragem (um número entre 0 e 100, ambos incluídos).

      Para obter mais informações sobre o cabeçalho `Server-Timing`, consulte [Cabeçalho de temporização do servidor](understanding-response-headers-policies.md#server-timing-header).

1. Escolha **Create** (Criar) para criar a política.

Depois de criar uma política de cabeçalhos de resposta, você pode anexá-la a um comportamento de cache em uma distribuição do CloudFront.

**Para anexar uma política de cabeçalhos de resposta 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. Selecione 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. Em **Response headers policy** (Políticas de cabeçalhos de resposta), escolha a política a ser adicionada ao comportamento do cache.

1. Escolha **Save changes** (Salvar alterações) para atualizar o comportamento do cache. Se você estiver criando um comportamento de cache, escolha **Create behavior** (Criar comportamento).

**Para anexar uma política de cabeçalhos de resposta 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. Em **Response headers policy** (Políticas de cabeçalhos de resposta), escolha a política a ser adicionada ao comportamento do cache.

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

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

------
#### [ CloudFormation ]

Para criar uma política de cabeçalhos de resposta com CloudFormation, use o tipo de recurso `AWS::CloudFront::ResponseHeadersPolicy`. O exemplo a seguir mostra a sintaxe do modelo de CloudFormation, no formato YAML, para criar uma política de cabeçalhos de resposta.

```
Type: AWS::CloudFront::ResponseHeadersPolicy
Properties: 
  ResponseHeadersPolicyConfig: 
    Name: EXAMPLE-Response-Headers-Policy
    Comment: Example response headers policy for the documentation
    CorsConfig: 
      AccessControlAllowCredentials: false
      AccessControlAllowHeaders: 
        Items: 
          - '*'
      AccessControlAllowMethods: 
        Items: 
          - GET
          - OPTIONS
      AccessControlAllowOrigins: 
        Items: 
          - https://example.com
          - https://docs.example.com
      AccessControlExposeHeaders: 
        Items: 
          - '*'
      AccessControlMaxAgeSec: 600
      OriginOverride: false
    CustomHeadersConfig: 
      Items: 
        - Header: Example-Custom-Header-1
          Value: value-1
          Override: true
        - Header: Example-Custom-Header-2
          Value: value-2
          Override: true
    SecurityHeadersConfig: 
      ContentSecurityPolicy: 
        ContentSecurityPolicy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'; frame-ancestors 'none'
        Override: false
      ContentTypeOptions: # You don't need to specify a value for 'X-Content-Type-Options'.
                          # Simply including it in the template sets its value to 'nosniff'.
        Override: false
      FrameOptions: 
        FrameOption: DENY
        Override: false
      ReferrerPolicy: 
        ReferrerPolicy: same-origin
        Override: false
      StrictTransportSecurity: 
        AccessControlMaxAgeSec: 63072000
        IncludeSubdomains: true
        Preload: true
        Override: false
      XSSProtection: 
        ModeBlock: true # You can set ModeBlock to 'true' OR set a value for ReportUri, but not both
        Protection: true
        Override: false
    ServerTimingHeadersConfig:
      Enabled: true
      SamplingRate: 50
    RemoveHeadersConfig:
      Items:
        - Header: Vary
        - Header: X-Powered-By
```

Para obter mais informações, consulte [AWS::CloudFront::ResponseHeadersPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html) no *Guia do usuário do AWS CloudFormation*.

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

Para criar uma política de cabeçalhos de resposta com a AWS Command Line Interface (AWS CLI), use o comando **aws cloudfront create-response-headers-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 cabeçalhos de resposta (CLI com arquivo de entrada)**

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

   ```
   aws cloudfront create-response-headers-policy --generate-cli-skeleton yaml-input > response-headers-policy.yaml
   ```

1. Abra o arquivo `response-headers-policy.yaml` que você acabou de criar. Edite o arquivo para especificar um nome de política e a configuração desejada de política de cabeçalhos de resposta, depois salve o arquivo.

   Para obter mais informações sobre as configurações de política de cabeçalhos de resposta, consulte [Noções básicas das políticas de cabeçalhos de resposta](understanding-response-headers-policies.md).

1. Use o comando a seguir para criar a política de cabeçalhos de resposta. A política que você cria usa os parâmetros de entrada do arquivo `response-headers-policy.yaml`.

   ```
   aws cloudfront create-response-headers-policy --cli-input-yaml file://response-headers-policy.yaml
   ```

   Anote o valor do `Id` na saída do comando. Esse é o ID da política de cabeçalhos de resposta. Você precisa dele para anexar a política ao comportamento de cache de uma distribuição do CloudFront.

**Como anexar uma política de cabeçalhos de resposta 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 no comportamento de cache para que ele use a política de cabeçalhos de resposta.
   + No comportamento de cache, adicione um campo chamado `ResponseHeadersPolicyId`. Para o valor do campo, use o ID da política de cabeçalhos de resposta que você anotou depois de 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 utilizar a política de cabeçalhos de resposta. Substitua *distribution\$1ID* pelo ID da distribuição.

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

**Como anexar uma política de cabeçalhos de resposta a uma nova distribuição (CLI com arquivo de entrada)**

1. Use o comando a seguir para criar um arquivo chamado `distribution.yaml`. Esse arquivo 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 `distribution.yaml` que você acabou de criar. No comportamento de cache padrão, no campo `ResponseHeadersPolicyId`, insira o ID da política de cabeçalhos de resposta 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 cabeçalhos de resposta com a API do CloudFront, use [CreateResponse HeadersPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateResponseHeadersPolicy.html). Para obter mais informações sobre os campos especificados nessa chamada de API, consulte [Noções básicas das políticas de cabeçalhos de resposta](understanding-response-headers-policies.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 cabeçalhos de resposta, é 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 cabeçalhos de resposta no campo `ResponseHeadersPolicyId`, 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.

------