

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Modificação de cabeçalho HTTP para seu Application Load Balancer
<a name="header-modification"></a>

A modificação de cabeçalho HTTP tem suporte pelos Application Load Balancers para cabeçalhos de solicitação e de resposta. A modificação do cabeçalho permite que você tenha mais controle sobre o tráfego e a segurança do seu aplicativo sem precisar atualizar o código do seu aplicativo.

Para ativar a modificação do cabeçalho, consulte [Habilitar a modificação de cabeçalho](enable-header-modification.md).

## Renomear mTLS/TLS cabeçalhos
<a name="rename-header"></a>

O recurso de renomeação do cabeçalho permite que você configure os nomes dos cabeçalhos mTLS e TLS que o Application Load Balancer gera e adiciona às solicitações.

A capacidade de modificar cabeçalhos HTTP permite que seu Application Load Balancer ofereça suporte facilmente a aplicativos que usam cabeçalhos de solicitação e resposta formatados especificamente.


| Cabeçalho | Description | 
| --- | --- | 
|  X-Amzn-Mtls-Clientcert-Serial-Number  |  Garante que o destino possa identificar e verificar o certificado específico apresentado pelo cliente durante o handshake do TLS.  | 
|  X-Amzn-Mtls-Clientcert-Issuer  |  Ajuda o destino a validar e autenticar o certificado do cliente identificando a autoridade de certificação que emitiu o certificado.  | 
|  X-Amzn-Mtls-Clientcert-Subject  |  Fornece informações detalhadas ao destino sobre a entidade para a qual o certificado do cliente foi emitido, o que ajuda na identificação, autenticação, autorização e log durante a autenticação do mTLS.  | 
|  X-Amzn-Mtls-Clientcert-Validity  |  Permite que o destino verifique se o certificado do cliente utilizado está dentro do período de validade definido, garantindo que o certificado não tenha expirado ou seja usado prematuramente.  | 
|  X-Amzn-Mtls-Clientcert-Leaf  |  Fornece o certificado do cliente usado no handshake do mTLS, permitindo que o servidor autentique o cliente e valide a cadeia de certificados. Isso garante que a conexão seja segura e autorizada.  | 
|  X-Amzn-Mtls-Clientcert  |  Carrega o certificado completo do cliente. Permite que o destino verifique a autenticidade do certificado, valide a cadeia de certificados e autentique o cliente durante o processo de handshake do mTLS.  | 
|  X-Amzn-TLS-Version  |  Indica a versão do protocolo TLS usada para uma conexão. Isso facilita a determinação do nível de segurança da comunicação, a solução de problemas de conexão e a garantia da conformidade.  | 
|  X-Amzn-TLS-Cipher-Suite  |  Indica a combinação de algoritmos criptográficos usados para proteger uma conexão no TLS. Isso permite que o servidor avalie a segurança da conexão, auxiliando na solução de problemas de compatibilidade e garantindo a conformidade com as políticas de segurança.  | 

## Adicionar cabeçalhos de resposta
<a name="insert-header"></a>

Usando cabeçalhos de inserção, você pode configurar seu Application Load Balancer para adicionar cabeçalhos relacionados à segurança às respostas. Com esses atributos, você pode inserir cabeçalhos, incluindo HSTS, CORS e CSP.

Esses cabeçalhos estão vazios por padrão. Quando isso acontece, o Application Load Balancer não modifica esse cabeçalho de resposta.

Quando você ativa um cabeçalho de resposta, o Application Load Balancer adiciona o cabeçalho com o valor configurado a todas as respostas. Se a resposta do destino incluir o cabeçalho de resposta HTTP, o balanceador de carga atualizará o valor do cabeçalho para ser o valor configurado. Caso contrário, o balanceador de carga adicionará o cabeçalho de resposta HTTP à resposta com o valor configurado.


| Cabeçalho | Description | 
| --- | --- | 
|  Strict-Transport-Security  |  Impõe conexões somente HTTPS pelo navegador por um período especificado, ajudando a proteger contra man-in-the-middle ataques, downgrades de protocolo e erros do usuário, garantindo que todas as comunicações entre o cliente e o alvo sejam criptografadas.  | 
|  Access-Control-Allow-Origin  |  Controla a possibilidade de recursos em um destino serem acessados a partir de diferentes origens. Isso permite interações seguras entre origens, evitando o acesso não autorizado.  | 
|  Access-Control-Allow-Methods  |  Especifica os métodos HTTP permitidos para solicitações de origem cruzada para o destino. Fornece controle sobre quais ações podem ser realizadas de diferentes origens.  | 
|  Access-Control-Allow-Headers  |  Especifica quais cabeçalhos personalizados ou não simples podem ser incluídos em uma solicitação de origem cruzada. Esse cabeçalho dá controle aos destinos sobre quais cabeçalhos podem ser enviados por clientes de diferentes origens.  | 
|  Access-Control-Allow-Credentials  |  Especifica se o cliente deve incluir credenciais como cookies, autenticação HTTP ou certificados de cliente em solicitações de origem cruzada.  | 
|  Access-Control-Expose-Headers  |  Permite que o destino especifique quais cabeçalhos de resposta adicionais podem ser acessados pelo cliente em solicitações de origem cruzada.  | 
|  Access-Control-Max-Age  |  Define por quanto tempo o navegador pode armazenar em cache o resultado de uma solicitação de comprovação, reduzindo a necessidade de repetidas verificações de comprovação. Isso ajuda a otimizar o desempenho ao reduzir o número de solicitações OPTIONS necessárias para determinadas solicitações de origem cruzada.  | 
|  Content-Security-Policy  |  Atributo de segurança que evita ataques de injeção de código, como o XSS, ao controlar quais recursos, como scripts, estilos, imagens etc. podem ser carregados e executados por um site.  | 
|  X-Content-Type-Options  |  Com a diretiva no-sniff, aprimora a segurança da web impedindo que os navegadores adivinhem o tipo MIME de um recurso. Garante que os navegadores interpretem o conteúdo apenas de acordo com o tipo de conteúdo declarado  | 
|  X-Frame-Options  |  Mecanismo de segurança de cabeçalho que ajuda a evitar ataques de clickjacking ao controlar se uma página da web pode ser incorporada em quadros. Valores como DENY e SAMEORIGIN podem garantir que o conteúdo não seja incorporado a sites maliciosos ou não confiáveis.  | 

## Desabilitar cabeçalhos
<a name="disable-header"></a>

Você pode configurar seu Application Load Balancer para desativar o cabeçalho `server:awselb/2.0` das respostas usando o comando Desabilitar cabeçalhos. Isso reduz a exposição de informações específicas do servidor e adiciona uma camada extra de proteção ao seu aplicativo.

O nome do atributo é `routing.http.response.server.enabled`. Os valores disponíveis são `true` ou `false`. O valor padrão é `true`.

## Limitações
<a name="header-modification-limits"></a>
+ Os valores do cabeçalho podem conter os seguintes caracteres
  + Caracteres alfanuméricos: `a-z`, `A-Z` e `0-9`
  + Caracteres especiais: `_ :;.,\/'?!(){}[]@<>=-+*#&`|~^%`
+ O valor do atributo não pode exceder 1K bytes de tamanho.
+ O Elastic Load Balancing realiza validações básicas de entrada para verificar se o valor do cabeçalho é válido. Entretanto, a validação não consegue confirmar se o valor é compatível com um cabeçalho específico.
+ Definir um valor vazio para qualquer atributo fará com que o Application Load Balancer volte ao comportamento padrão.

# Permitir modificação de cabeçalho HTTP para seu Application Load Balancer
<a name="enable-header-modification"></a>

A modificação de cabeçalho fica desativada por padrão e deve ser habilitada em cada receptor. Para obter mais informações, consulte [Modificação de cabeçalho HTTP](header-modification.md).

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

**Para ativar a modificação do cabeçalho**

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

1. No painel de navegação, selecione **Balanceador de carga**.

1. Selecione o Application Load Balancer.

1. Na guia **Receptores e regras**, selecione o protocolo e porta para abrir a página de detalhes do receptor.

1. Na guia **Atributos**, selecione **Editar**.

   Os atributos do receptor são organizados em grupos. Você escolherá os atributos a habilitar.

1. [ouvintes HTTPS] Nomes de **cabeçalho modificáveis mTLS/TLS **

   1. Expanda **nomes de mTLS/TLS cabeçalhos modificáveis**.

   1. Autorize os cabeçalhos da solicitação a modificar e fornecer nomes para eles. Para obter mais informações, consulte [Renomear mTLS/TLS cabeçalhos](header-modification.md#rename-header).

1. **Adicionar cabeçalhos de resposta**

   1. Expanda **Adicionar cabeçalhos de resposta**.

   1. Autorize os cabeçalhos de resposta a adicionar e atribuir valores para eles. Para obter mais informações, consulte [Adicionar cabeçalhos de resposta](header-modification.md#insert-header).

1. **Cabeçalho de resposta do servidor ALB**

   1. Ative ou desative o **Cabeçalho do servidor**.

1. Escolha **Salvar alterações**.

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

**Para ativar a modificação do cabeçalho**  
Use o comando [modify-listener-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-listener-attributes.html). Para a lista de atributos, consulte [Atributos de modificação de cabeçalho](#header-modification-attributes).

```
aws elbv2 modify-listener-attributes \
    --listener-arn listener-arn \
    --attributes "Key=attribute-name,Value=attribute-value"
```

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

**Para ativar a modificação do cabeçalho**  
Atualize o [AWS::ElasticLoadBalancingV2::Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listener.html)recurso para incluir os atributos. Para a lista de atributos, consulte [Atributos de modificação de cabeçalho](#header-modification-attributes).

```
Resources:
  myHTTPlistener:
  Type: 'AWS::ElasticLoadBalancingV2::Listener'
  Properties:
    LoadBalancerArn: !Ref myLoadBalancer
    Protocol: HTTP
    Port: 80
    DefaultActions:
      - Type: "forward"
        TargetGroupArn: !Ref myTargetGroup
    ListenerAttributes:
      - Key: "attribute-name"
        Value: "attribute-value"
```

------

## Atributos de modificação de cabeçalho
<a name="header-modification-attributes"></a>

Os seguintes são atributos de modificação de cabeçalho compatíveis apenas com Application Load Balancers.

`routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name`  
Modifique o nome do cabeçalho de **X-Amzn-Mtls-Clientcert-Serial-Number**.

`routing.http.request.x_amzn_mtls_clientcert_issuer.header_name`  
Modifique o nome do cabeçalho de **X-Amzn-Mtls-Clientcert-Issuer**.

`routing.http.request.x_amzn_mtls_clientcert_subject.header_name`  
Modifique o nome do cabeçalho de **X-Amzn-Mtls-Clientcert-Subject**.

`routing.http.request.x_amzn_mtls_clientcert_validity.header_name`  
Modifique o nome do cabeçalho de **X-Amzn-Mtls-Clientcert-Validity**.

`routing.http.request.x_amzn_mtls_clientcert_leaf.header_name`  
Modifique o nome do cabeçalho de **X-Amzn-Mtls-Clientcert-Leaf**.

`routing.http.request.x_amzn_mtls_clientcert.header_name`  
Modifique o nome do cabeçalho de **X-Amzn-Mtls-Clientcert**.

`routing.http.request.x_amzn_tls_version.header_name`  
Modifique o nome do cabeçalho de **X-Amzn-Tls-Version**.

`routing.http.request.x_amzn_tls_cipher_suite.header_name`  
Modifique o nome do cabeçalho de **X-Amzn-Tls-Cipher-Suite**.

`routing.http.response.server.enabled`  
Indica se deve permitir ou remover o cabeçalho do servidor de resposta HTTP.

`routing.http.response.strict_transport_security.header_value`  
Adicione o cabeçalho **Strict-Transport-Security** para informar aos navegadores que o site só deve ser acessado usando HTTPS e que qualquer tentativa futura de acessá-lo usando HTTP deve ser automaticamente convertida em HTTPS.

`routing.http.response.access_control_allow_origin.header_value`  
Adicione o cabeçalho **Access-Control-Allow-Origin** para determinar quais origens têm permissão de acesso ao servidor.

`routing.http.response.access_control_allow_methods.header_value`  
Adicione o cabeçalho **Access-Control-Allow-Methods** para determinar quais métodos HTTP têm permissão de acesso ao servidor a partir de uma origem diferente.

`routing.http.response.access_control_allow_headers.header_value`  
Adicione o cabeçalho **Access-Control-Allow-Headers** para determinar quais cabeçalhos têm permissão de acesso durante uma solicitação de origem cruzada.

`routing.http.response.access_control_allow_credentials.header_value`  
Adicione o cabeçalho **Access-Control-Allow-Credentials** para indicar se o navegador deve incluir credenciais como cookies ou autenticação em solicitações de origem cruzada.

`routing.http.response.access_control_expose_headers.header_value`  
Adicione o cabeçalho **Access-Control-Expose-Headers** para indicar quais cabeçalhos o navegador pode expor ao cliente solicitante.

`routing.http.response.access_control_max_age.header_value`  
Adicione o cabeçalho **Access-Control-Max-Age** para especificar por quanto tempo os resultados de uma solicitação de comprovação podem ser armazenados em cache, em segundos.

`routing.http.response.content_security_policy.header_value`  
Adicione o cabeçalho **Content-Security-Policy** para determinar as restrições impostas pelo navegador para ajudar a minimizar o risco de certos tipos de ameaças à segurança.

`routing.http.response.x_content_type_options.header_value`  
Adicione o cabeçalho **X-Content-Type-Options** para indicar se os tipos MIME anunciados nos cabeçalhos **Content-Type** devem ser seguidos e não alterados.

`routing.http.response.x_frame_options.header_value`  
Adicione o cabeçalho **X-Frame-Options** para indicar se o navegador tem permissão para renderizar uma página em um **quadro**, **iframe**, **incorporação** ou **objeto**.