Noções básicas das políticas de cabeçalhos de resposta - Amazon CloudFront

Noções básicas das políticas de cabeçalhos de resposta

Você pode usar uma política de cabeçalhos de resposta para especificar os cabeçalhos de HTTP que o Amazon CloudFront adiciona às respostas enviadas aos visualizadores (navegadores da Web ou clientes). Para obter mais informações sobre políticas de cabeçalhos de respostas e por que usá-las, consulte Adição de cabeçalhos de HTTP às respostas do CloudFront.

Os tópicos a seguir explicam as configurações em uma política de cabeçalhos de resposta. As configurações são agrupadas em categorias, que são representadas nos tópicos a seguir.

Detalhes da política (metadados)

As configurações de detalhes da política contêm metadados sobre uma política de cabeçalhos de resposta.

  • Name (Nome): um nome para identificar a política dos cabeçalhos de resposta. No console, você usa o nome para anexar a política a um comportamento de cache.

  • Description (Descrição, opcional): um comentário para descrever a política dos cabeçalhos de resposta. Isso é opcional, mas pode ajudar a identificar a finalidade da política.

Cabeçalhos de CORS

As configurações de compartilhamento de recursos entre origens (CORS) permitem adicionar e configurar cabeçalhos de CORS em uma política de cabeçalhos de resposta.

Essa lista se concentra em como especificar a configuração e valores válidos em uma política de cabeçalhos de resposta. Para obter mais informações sobre cada um desses cabeçalhos e como eles são usados para solicitações e respostas de CORS do mundo real, consulte compartilhamento de recursos entre origens no MDN Web Docs e a Especificação do protocolo CORS.

  • Access-Control-Allow-Credentials: esta é uma configuração booleana (true ou false) que determina se o CloudFront adiciona ou não o cabeçalho Access-Control-Allow-Credentials em respostas às solicitações do CORS. Quando essa configuração for true, o CloudFront adicionará o cabeçalho Access-Control-Allow-Credentials: true em respostas às solicitações do CORS. Caso contrário, o CloudFront não adicionará esse cabeçalho às respostas.

  • Access-Control-Allow-Headers: especifica os nomes de cabeçalho que o CloudFront usa como valores para o cabeçalho Access-Control-Allow-Headers em respostas às solicitações de comprovação do CORS. Os valores válidos para essa configuração incluem nomes de cabeçalho de HTTP ou o caractere curinga (*).

  • Access-Control-Allow-Methods: especifica os métodos de HTTP que o CloudFront usa como valores para o cabeçalho Access-Control-Allow-Methods em respostas às solicitações de comprovação do CORS. Os valores válidos são GET, DELETE, HEAD, OPTIONS, PATCH, POST, PUT, ou ALL. ALL é um valor especial que inclui todos os métodos de HTTP listados.

  • Access-Control-Allow-Origin: especifica os valores que o CloudFront pode usar no cabeçalho de resposta Access-Control-Allow-Origin. Valores válidos para essa configuração incluem nomes de domínio como example.com, ou o caractere curinga (*), que significa todos os domínios (permitir todas as origens).

  • Access-Control-Expose-Headers: especifica os nomes de cabeçalho que o CloudFront usa como valores para o cabeçalho Access-Control-Expose-Headers em respostas às solicitações do CORS. Os valores válidos para essa configuração incluem nomes de cabeçalho de HTTP ou o caractere curinga (*).

  • Access-Control-Max-Age: um número de segundos, que o CloudFront usa como valor para o cabeçalho Access-Control-Max-Age em respostas às solicitações de comprovação do CORS.

  • Origin override (Substituição de origem): esta é uma configuração booleana (true ou false) que determina como o CloudFront se comporta quando a resposta da origem contém um dos cabeçalhos do CORS que também está na política.

    Quando essa configuração for true e a resposta da origem contiver um cabeçalho do CORS que também esteja na política, o CloudFront adiciona o cabeçalho do CORS na política à resposta que envia ao visualizador, ignorando o cabeçalho recebido da origem.

    Quando essa configuração for false e a resposta da origem contiver um cabeçalho do CORS que também esteja na política, o CloudFront inclui o cabeçalho do CORS recebido da origem na resposta que envia ao visualizador.

    Quando a resposta da origem não contiver um cabeçalho do CORS que esteja na política, o CloudFront adicionará o cabeçalho do CORS na política à resposta que envia ao visualizador, independentemente de a configuração ser true or false.

Cabeçalhos de segurança

As configurações de cabeçalhos de segurança permitem adicionar e configurar vários cabeçalhos de resposta de HTTP relacionados à segurança em uma política de cabeçalhos de resposta.

Essa lista se concentra em como especificar a configuração e valores válidos em uma política de cabeçalhos de resposta. Para obter mais informações sobre cada um desses cabeçalhos e como eles são usados em respostas de HTTP do mundo real, consulte os links para o MDN Web Docs.

  • Content-Security-Policy: especifica as diretivas de política de segurança de conteúdo que o CloudFront usa como valores para o cabeçalho de resposta Content-Security-Policy.

    Para obter mais informações sobre esse cabeçalho e diretivas de políticas válidas, consulteContent-Security-Policy no MDN Web Docs.

    nota

    O valor do cabeçalho Content-Security-Policy é limitado a 1783 caracteres.

  • Referrer-Policy: especifica a diretiva de política do referenciador que o CloudFront usa como valor para o cabeçalho de resposta Referrer-Policy. Os valores válidos para essa configuração são no-referrer, no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, ou unsafe-url.

    Para obter mais informações sobre esse cabeçalho e essas diretivas, consulte Referrer-Policy no MDN Web Docs.

  • Strict-Transport-Security: especifica as diretivas e as configurações que o CloudFront usa como valor para o cabeçalho de resposta Strict-Transport-Security. Para essa configuração, você especifica separadamente:

    • Um número de segundos, que o CloudFront usa como valor para a diretiva max-age desse cabeçalho

    • Uma configuração booleana (true ou false) para preload, que determina se o CloudFront inclui a diretiva preload no valor desse cabeçalho

    • Uma configuração booleana (true ou false) para includeSubDomains, que determina se o CloudFront inclui a diretiva includeSubDomains no valor desse cabeçalho

    Para obter mais informações sobre esse cabeçalho e essas diretivas, consulte Strict-Transport-Security no MDN Web Docs.

  • X-Content-Type-Options: esta é uma configuração booleana (true ou false) que determina se o CloudFront adiciona ou não o cabeçalho X-Content-Type-Options às respostas. Quando essa configuração for true, o CloudFront adicionará o cabeçalho X-Content-Type-Options: nosniff às respostas. Caso contrário, o CloudFront não adicionará esse cabeçalho.

    Para obter mais informações sobre esse cabeçalho, consulte X-Content-Type-Options no MDN Web Docs.

  • X-Frame-Options: especifica a diretiva que o CloudFront usa como valor para o cabeçalho de resposta X-Frame-Options. Os valores válidos para essa configuração são DENY ou SAMEORIGIN.

    Para obter mais informações sobre esse cabeçalho e essas diretivas, consulte X-Frame-Options no MDN Web Docs.

  • X-XSS-Protection: especifica as diretivas e as configurações que o CloudFront usa como valor para o cabeçalho de resposta X-XSS-Protection. Para essa configuração, você especifica separadamente:

    • Uma configuração X-XSS-Protection de 0 (desabilita a filtragem de XSS) ou 1 (habilita a filtragem de XSS)

    • Uma configuração booleana (true ou false) para block, que determina se o CloudFront inclui a diretiva mode=block no valor desse cabeçalho

    • Um URI de relatório, que determina se o CloudFront inclui a diretiva report=reporting URI no valor deste cabeçalho

    Você pode especificar true para block, ou você pode especificar um URI de relatório, mas não pode especificar os dois juntos. Para obter mais informações sobre esse cabeçalho e essas diretivas, consulte X-XSS-Protection no MDN Web Docs.

  • Origin override (Substituição de origem): cada uma dessas configurações de cabeçalhos de segurança contém uma configuração booleana (true ou false) que determina como o CloudFront se comporta quando a resposta da origem contém esse cabeçalho.

    Quando essa configuração for true e a resposta da origem contiver o cabeçalho, o CloudFront adicionará o cabeçalho na política à resposta que envia ao visualizador, ignorando o cabeçalho recebido da origem.

    Quando essa configuração for false e a resposta da origem contiver o cabeçalho, o CloudFront incluirá o cabeçalho recebido da origem na resposta que envia ao visualizador.

    Quando a resposta da origem não contiver o cabeçalho, o CloudFront adicionará o cabeçalho na política à resposta que envia ao visualizador, independentemente de a configuração ser true or false.

Cabeçalhos personalizados

As configurações de cabeçalhos personalizados permitem adicionar e configurar cabeçalhos de HTTP personalizados em uma política de cabeçalhos de resposta. O CloudFront adiciona esses cabeçalhos a cada resposta que ele retorna aos espectadores. Para cada cabeçalho personalizado, você também especifica o valor do cabeçalho, embora os valores sejam opcionais (o CloudFront pode adicionar um cabeçalho de resposta sem valor).

Cada cabeçalho personalizado também tem sua própria configuração de substituição de origem:

  • Quando essa configuração for true e a resposta da origem contiver o cabeçalho personalizado que está na política, o CloudFront adicionará o cabeçalho personalizado na política à resposta que envia ao visualizador, ignorando o cabeçalho recebido da origem.

  • Quando essa configuração for false e a resposta da origem contiver o cabeçalho personalizado que está na política, o CloudFront incluirá o cabeçalho personalizado recebido da origem na resposta que envia ao visualizador.

  • Quando a resposta da origem não contiver o cabeçalho personalizado que está na política, o CloudFront adicionará o cabeçalho personalizado na política à resposta que envia ao visualizador, independentemente de a configuração ser true or false.