Descripción de las políticas de encabezados de respuesta
Puede utilizar una política de encabezados de respuesta para especificar los encabezados HTTP que Amazon CloudFront elimina o añade en las respuestas que envía a los lectores. Para obtener más información sobre las políticas de encabezados de respuesta y los motivos para usarlas, consulte Añadido o eliminación de encabezados HTTP en las respuestas de CloudFront con una política.
En los siguientes temas, se explica la configuración de una política de encabezados de respuesta. La configuración se agrupa en categorías, que se representan en los siguientes temas.
Temas
Detalles de la política (metadatos)
La configuración de detalles de la política contiene metadatos sobre una política de encabezados de respuesta.
-
Nombre: un nombre para identificar la política de encabezados de respuesta. En la consola, se utiliza el nombre para adjuntar la política a un comportamiento de la caché.
-
Descripción (opcional): un comentario para describir la política de encabezados de respuesta. Esto es opcional, pero puede ayudar a identificar el propósito de la política.
Encabezados de CORS
La configuración de uso compartido de recursos entre orígenes (CORS) permite agregar y configurar encabezados CORS en una política de encabezados de respuesta.
Esta lista se centra en cómo especificar la configuración y los valores válidos en una política de encabezados de respuesta. Para obtener más información sobre cada uno de estos encabezados y cómo se utilizan para solicitudes y respuestas de CORS reales, consulte el artículo sobre el uso compartido de recursos entre orígenes
- Access-Control-Allow-Credentials
-
Esta es una configuración booleana (
true
ofalse
) que determina si CloudFront añade el encabezadoAccess-Control-Allow-Credentials
en las respuestas a las solicitudes de CORS. Cuando esta configuración se configura comotrue
, CloudFront agrega el encabezadoAccess-Control-Allow-Credentials: true
en las respuestas a las solicitudes de CORS. De lo contrario, CloudFront no agrega este encabezado a las respuestas. - Access-Control-Allow-Headers
-
Especifica los nombres de encabezado que CloudFront utiliza como valores para el encabezado
Access-Control-Allow-Headers
en las respuestas a las solicitudes de comprobación previa de CORS. Los valores válidos para esta configuración incluyen los nombres de encabezado HTTP o el carácter comodín (*
), lo que indica que se permiten todos los encabezados.nota
El encabezado
Authorization
no puede usar un comodín y debe aparecer de forma explícita.Ejemplos de usos válidos del carácter comodín Ejemplo Coincidirá No coincidirá x-amz-*
x-amz-test
x-amz-
x-amz
x-*-amz
x-test-amz
x--amz
*
Todos los encabezados excepto Authorization
Authorization
- Access-Control-Allow-Methods
-
Especifica los métodos HTTP que CloudFront utiliza como valores para el encabezado
Access-Control-Allow-Methods
en las respuestas a las solicitudes de comprobación previa de CORS. Los valores válidos sonGET
,DELETE
,HEAD
,OPTIONS
,PATCH
,POST
,PUT
yALL
.ALL
es un valor especial que incluye todos los métodos HTTP enumerados. - Access-Control-Allow-Origin
-
Especifica los valores que CloudFront puede utilizar en el encabezado de respuesta
Access-Control-Allow-Origin
. Los valores válidos para esta configuración incluyen un origen específico (comohttp://www.example.com
) o el carácter comodín (*
) que indica que se permiten todos los orígenes.Notas
-
Se permite el carácter comodín (
*
) como subdominio más a la izquierda (*.example.org
). -
El carácter comodín (
*
) no está permitido en las siguientes posiciones:-
Dominios de nivel superior (
example.*
) -
A la derecha de los subdominios (
test.*.example.org
) o en cualquier subdominio (*test.example.org
) -
Dentro de los términos (
exa*mple.org)
-
Para ver ejemplos de formas de utilizar el carácter comodín, consulte la tabla siguiente.
Ejemplo Coincidirá No coincidirá http://*.example.org
http://www.example.org
http://test.example.org
https://test.example.org
https://test.example.org:123
http://test.example.org:123
*.example.org
test.example.org
test.test.example.org
.example.org
http://test.example.org
https://test.example.org
http://test.example.org:123
https://test.example.org:123
example.org
http://example.org
https://example.org
http://example.org
https://example.org
http://example.org:123
http://example.org:*
http://example.org:123
http://example.org
http://example.org:1*3
http://example.org:123
http://example.org:1893
http://example.org:13
*.example.org:1*
test.example.org:123
-
- Access-Control-Expose-Headers
-
Especifica los nombres de encabezado que CloudFront utiliza como valores para el encabezado
Access-Control-Expose-Headers
en las respuestas a las solicitudes de CORS. Los valores válidos para esta configuración incluyen los nombres de encabezado HTTP o el carácter comodín (*
). - Access-Control-Max-Age
-
Se trata de la cantidad de segundos que CloudFront utiliza como valor para el encabezado
Access-Control-Max-Age
en las respuestas a las solicitudes de comprobación previa de CORS. - Invalidación de origen
-
Configuración booleana que determina cómo se comporta CloudFront cuando la respuesta del origen contiene uno de los encabezados de CORS que también se encuentran en la política.
-
Cuando se establece como
true
y la respuesta de origen contiene un encabezado de CORS que también está en la política, CloudFront agrega el encabezado de CORS en la política a la respuesta. A continuación, CloudFront envía esa respuesta al espectador. CloudFront ignora el encabezado que recibió del origen. -
Cuando es
false
y la respuesta de origen contiene un encabezado de CORS (independientemente de si el encabezado de CORS también está en la política), CloudFront incluye el encabezado de CORS que recibió del origen en la respuesta. CloudFront no agrega ningún encabezado de CORS de la política a la respuesta que se envía al lector.
-
Encabezados de seguridad
Puede usar la configuración de encabezados de seguridad permite agregar y configurar varios encabezados de respuesta HTTP relacionados con la seguridad en una política de encabezados de respuesta.
En esta lista se describe cómo se pueden especificar configuraciones y valores válidos en una política de encabezados de respuesta. Para obtener más información sobre cada uno de estos encabezados y cómo se utilizan en las respuestas HTTP reales, consulte los enlaces a MDN Web Docs.
- Política de seguridad de contenido
-
Especifica las directivas de la política de seguridad del contenido que CloudFront utiliza como valores para el encabezado de respuesta
Content-Security-Policy
.Para obtener más información sobre este encabezado y las directivas de políticas válidas, consulte Content-Security-Policy
en MDN Web Docs. nota
El valor de encabezado
Content-Security-Policy
está limitado a 1783 caracteres. - Política de referencia
-
Especifica la directiva de política de referencia que CloudFront utiliza como valor para el encabezado de respuesta
Referrer-Policy
. Los valores válidos para esta configuración sonno-referrer
,no-referrer-when-downgrade
,origin
,origin-when-cross-origin
,same-origin
,strict-origin
,strict-origin-when-cross-origin
yunsafe-url
.Para obtener más información acerca de este encabezado y estas directivas, consulte Referrer-Policy
en MDN Web Docs. - Seguridad de transporte estricta
-
Especifica las directivas y la configuración que CloudFront utiliza como valor para el encabezado de respuesta
Strict-Transport-Security
. Para esta configuración, especifique por separado lo siguiente:-
la cantidad de segundos, que CloudFront utiliza como valor para la directiva
max-age
de este encabezado -
una configuración booleana (
true
ofalse
) parapreload
, que determina si CloudFront incluye la directivapreload
en el valor de este encabezado -
una configuración booleana (
true
ofalse
) paraincludeSubDomains
, que determina si CloudFront incluye la directivaincludeSubDomains
en el valor de este encabezado
Para obtener más información acerca de este encabezado y estas directivas, consulte Strict-Transport-Security
en MDN Web Docs. -
- Opciones de tipo de contenido X
-
Es una configuración booleana (
true
ofalse
) que determina si CloudFront añade el encabezadoX-Content-Type-Options
a las respuestas. Cuando esta configuración estrue
, CloudFront agrega el encabezadoX-Content-Type-Options: nosniff
a respuestas. De lo contrario, CloudFront no agrega este encabezado.Para obtener más información sobre este encabezado, consulte X-Content-Type-Options
en MDN Web Docs. - Opciones de marco X
-
Especifica la directiva que CloudFront utiliza como valor para el encabezado de respuesta
X-Frame-Options
. Los valores válidos para este ajuste sonDENY
oSAMEORIGIN
.Para obtener más información sobre este encabezado y estas directivas, consulte X-Frame-Options
en MDN Web Docs. - Protección X-XSS
-
Especifica las directivas y la configuración que CloudFront utiliza como valor para el encabezado de respuesta
X-XSS-Protection
. Para esta configuración, especifique por separado lo siguiente:-
una configuración
X-XSS-Protection
de0
(desactiva el filtrado XSS) o1
(habilita el filtrado XSS) -
una configuración booleana (
true
ofalse
) parablock
, que determina si CloudFront incluye la directivamode=block
en el valor de este encabezado -
un URI de informes, que determina si CloudFront incluye la directiva
report=
en el valor de este encabezadoreporting URI
Puede especificar
true
parablock
, o puede especificar un URI de informes, pero no puede especificar ambos a la vez. Para obtener más información acerca de este encabezado y estas directivas, consulte X-XSS-Protectionen MDN Web Docs. -
- Invalidación de origen
-
Cada una de estas configuraciones de encabezados de seguridad contiene una configuración booleana (
true
ofalse
) que determina cómo se comporta CloudFront cuando la respuesta del origen contiene ese encabezado.Cuando esta configuración se establece como
true
y la respuesta de origen contiene el encabezado, CloudFront agrega el encabezado a la política a la respuesta que envía al lector. Ignora el encabezado que recibió del origen.Cuando esta configuración se establece como
false
y la respuesta del origen contiene el encabezado, CloudFront incluye el encabezado que recibió del origen en la respuesta que envía al lector.Cuando la respuesta de origen no contiene el encabezado, CloudFront lo agrega a la política a la respuesta que envía al lector. CloudFront hace esto cuando esta configuración se establece en
true
ofalse
.
Encabezados personalizados
Puede usar la configuración de encabezados personalizados para agregar y configurar encabezados HTTP personalizados en una política de encabezados de respuesta. CloudFront agrega estos encabezados a cada respuesta que devuelve a los lectores. Para cada encabezado personalizado, también se especifica el valor del encabezado, aunque especificar un valor es opcional. Esto se debe a que CloudFront puede agregar un encabezado de respuesta sin valor.
Cada encabezado personalizado también tiene su propia configuración de Invalidación de origen:
-
Cuando esta configuración se establece como
true
y la respuesta de origen contiene el encabezado personalizado que está en la política, CloudFront agrega el encabezado de la política a la respuesta que envía al lector. Ignora el encabezado que recibió del origen. -
Cuando esta configuración es
false
y la respuesta del origen contiene el encabezado personalizado que está en la política, CloudFront incluye el encabezado personalizado que recibió del origen en la respuesta que envía al lector. -
Cuando la respuesta de origen no contiene el encabezado personalizado que está en la política, CloudFront agrega el encabezado de la política a la respuesta que envía al lector. CloudFront hace esto cuando esta configuración se establece en
true
ofalse
.
Eliminar encabezados
Puede especificar los encabezados que desee que CloudFront elimine de las respuestas que recibe del origen para que no se incluyan en las respuestas que CloudFront envía a los lectores. CloudFront elimina los encabezados de todas las respuestas que envía a los lectores, independientemente de si los objetos se envían desde la memoria caché de CloudFront o desde el origen. Por ejemplo, puede eliminar los encabezados que no son útiles para los navegadores, como X-Powered-By
o Vary
, para que CloudFront los elimine de las respuestas que envía a los lectores.
Al especificar los encabezados que se van a eliminar mediante una política de encabezados de respuesta, CloudFront elimina primero los encabezados y, a continuación, añade los encabezados que se especifiquen en otras secciones de la política de encabezados de respuesta (encabezados de CORS, encabezados de seguridad, encabezados personalizados, etc.). Si especifica un encabezado para eliminarlo, pero también añade el mismo encabezado en otra sección de la política, CloudFront incluye el encabezado en las respuestas que envía a los lectores.
nota
Puede utilizar una política de encabezados de respuesta para eliminar los encabezados Server
y Date
que CloudFront ha recibido del origen, de modo que estos encabezados (tal como se recibieron del origen) no se incluyan en las respuestas que CloudFront envía a los lectores. Sin embargo, si lo hace, CloudFront añade su propia versión a las respuestas que envía a los lectores. El valor del encabezado Server
que añade CloudFront es CloudFront
.
Encabezados que no puede eliminar
No puede eliminar los siguientes encabezados mediante una política de encabezados de respuesta. Si especifica estos encabezados en la sección Remove headers (Eliminar encabezados) de una política de encabezados de respuesta (ResponseHeadersPolicyRemoveHeadersConfig
en la API), recibirá un error.
-
Connection
-
Content-Encoding
-
Content-Length
-
Expect
-
Host
-
Keep-Alive
-
Proxy-Authenticate
-
Proxy-Authorization
-
Proxy-Connection
-
Trailer
-
Transfer-Encoding
-
Upgrade
-
Via
-
Warning
-
X-Accel-Buffering
-
X-Accel-Charset
-
X-Accel-Limit-Rate
-
X-Accel-Redirect
-
X-Amz-Cf-.*
-
X-Amzn-Auth
-
X-Amzn-Cf-Billing
-
X-Amzn-Cf-Id
-
X-Amzn-Cf-Xff
-
X-Amzn-ErrorType
-
X-Amzn-Fle-Profile
-
X-Amzn-Header-Count
-
X-Amzn-Header-Order
-
X-Amzn-Lambda-Integration-Tag
-
X-Amzn-RequestId
-
X-Cache
-
X-Edge-.*
-
X-Forwarded-Proto
-
X-Real-Ip
Encabezado Server-Timing
Utilice la configuración de encabezado Server-Timing
para habilitar el encabezado Server-Timing
en las respuestas HTTP enviadas desde CloudFront. Puede utilizar este encabezado para ver las métricas que pueden ayudarle a obtener información sobre el comportamiento y el rendimiento de CloudFront y su origen. Por ejemplo, puede ver qué capa de caché sirvió un acierto de caché. O puede ver la latencia del primer byte desde el origen si hay un error de caché. Las métricas del encabezado Server-Timing
pueden ayudarle a solucionar problemas o a probar la eficacia de su configuración de CloudFront o del origen.
Para obtener más información sobre las métricas de CloudFront en el encabezado Server-Timing
, consulte los siguientes temas.
Para habilitar el encabezado Server-Timing
, cree (o edite) una política de encabezados de respuesta.
Temas
Frecuencia de muestreo y cabecera de solicitud de Pragma
Cuando se habilita el encabezado Server-Timing
en una política de encabezados de respuesta, también se especifica la frecuencia de muestreo. La tasa de muestreo es un número de 0 a 100 (inclusive) que especifica el porcentaje de respuestas a las que desea que CloudFront agregue el encabezado Server-Timing
. Cuando se establece la tasa de muestreo en 100, CloudFront agrega el encabezado Server-Timing
a la respuesta HTTP para cada solicitud que coincida con el comportamiento de la caché a la que se adjunta la política de encabezados de respuesta. Si lo establece en 50, CloudFront agrega el encabezado al 50 % de las respuestas de las solicitudes que coinciden con el comportamiento de caché. Puede establecer la frecuencia de muestreo en cualquier número de 0 a 100 con un máximo de cuatro decimales.
Cuando la tasa de muestreo se establece en un número inferior a 100, no se puede controlar a qué respuestas agrega CloudFront el encabezado Server-Timing
, solo el porcentaje. No obstante, puede agregar el encabezado Pragma
con un valor establecido como server-timing
en una solicitud HTTP para recibir el encabezado Server-Timing
en la respuesta a esa solicitud. Esto funciona independientemente de la frecuencia de muestreo. Incluso si la tasa de muestreo se establece en cero (0), CloudFront agrega el encabezado Server-Timing
a la respuesta si la solicitud contiene el encabezado Pragma: server-timing
.
Encabezado Server-Timing del origen
Si se produce un error de caché y CloudFront reenvía la solicitud al origen, el origen puede incluir un encabezado Server-Timing
en su respuesta a CloudFront. En este caso, CloudFront agrega sus métricas al encabezado Server-Timing
que recibió del origen. La respuesta que CloudFront envía al espectador contiene un único encabezado Server-Timing
que incluye el valor que proviene del origen y las métricas que agregó CloudFront. El valor del encabezado del origen puede estar al final o entre dos conjuntos de métricas que CloudFront agrega al encabezado.
Cuando se produce un acierto de caché, la respuesta que CloudFront envía al espectador contiene un encabezado Server-Timing
que incluye solo las métricas de CloudFront en el valor del encabezado (no se incluye el valor del origen).
Métricas del encabezado Server-Timing
Cuando CloudFront agrega el encabezado a una respuesta HTTP, el valor del encabezado Server-Timing
contiene una o más métricas que pueden ayudarle a obtener información sobre el comportamiento y el rendimiento de CloudFront. La siguiente lista contiene todas las métricas y sus valores potenciales. Un encabezado Server-Timing
contiene solo algunas de estas métricas, según la naturaleza de la solicitud y la respuesta a través de CloudFront.
Algunas de estas métricas se incluyen en el encabezado Server-Timing
solo con un nombre (sin valor). Otras son un nombre y un valor. Cuando una métrica tiene un valor, el nombre y el valor están separados por un punto y coma (;
). Cuando el encabezado contiene más de una métrica, estas se separan con una coma (,
).
- cdn-cache-hit
-
CloudFront proporcionó una respuesta desde la caché sin hacer una solicitud al origen.
- cdn-cache-refresh
-
CloudFront proporcionó una respuesta desde la caché después de enviar una solicitud al origen para verificar que el objeto almacenado en la caché sigue siendo válido. En este caso, CloudFront no recuperó el objeto completo del origen.
- cdn-cache-miss
-
CloudFront no proporcionó la respuesta desde la caché. En este caso, CloudFront solicitó el objeto completo al origen antes de devolver la respuesta.
- cdn-pop
-
Contiene un valor que describe qué punto de presencia (POP) de CloudFront ha gestionado la solicitud.
- cdn-rid
-
Contiene un valor con el identificador único de CloudFront para la solicitud. Puede utilizar este identificador de solicitud (RID) cuando solucione problemas con Soporte.
- cdn-hit-layer
-
Esta métrica está presente cuando CloudFront proporciona una respuesta desde la caché sin realizar una solicitud al origen. Contiene uno de los siguientes valores:
-
EDGE: CloudFront proporcionó la respuesta en caché desde una ubicación POP.
-
REC: CloudFront proporcionó la respuesta en caché desde una ubicación de caché de borde regional (REC).
-
Origin Shield: CloudFront proporcionó la respuesta en caché de REC que está actuando como Origin Shield.
-
- cdn-upstream-layer
-
Cuando CloudFront solicita el objeto completo desde el origen, esta métrica está presente y contiene uno de los siguientes valores:
-
EDGE: una ubicación POP envió la solicitud directamente al origen.
-
REC: una ubicación REC envió la solicitud directamente al origen.
-
Origin Shield: la REC que actúa de Origin Shield envió la solicitud directamente al origen.
-
- cdn-upstream-dns
-
Contiene un valor con el número de milisegundos que se emplearon en recuperar el registro DNS para el origen. Un valor de cero (0) indica que CloudFront utilizó un resultado de DNS en caché o reutilizó una conexión existente.
- cdn-upstream-connect
-
Contiene un valor con el número de milisegundos transcurridos desde que se completó la solicitud de DNS de origen hasta que se completó una conexión TCP (y TLS, si procede) con el origen. Un valor de cero (0) indica que CloudFront reutilizó una conexión existente.
- cdn-upstream-fbl
-
Contiene un valor con el número de milisegundos que transcurren entre el momento en que se completa la solicitud HTTP de origen y el momento en que se recibe el primer byte en la respuesta del origen (latencia del primer byte).
- cdn-upstream-fbl
-
Contiene un valor con el número de milisegundos que transcurren entre el momento en que la ubicación periférica terminó de recibir la solicitud y el momento en que se envió el primer byte de respuesta al lector.
Ejemplos del encabezado Sever-Timing
A continuación se muestran ejemplos de un encabezado Server-Timing
que un lector podría recibir de CloudFront cuando la configuración del encabezado Server-Timing
está habilitada.
ejemplo : error de caché
En el siguiente ejemplo se muestra un encabezado Server-Timing
que puede recibir un lector cuando el objeto solicitado no está en la caché de CloudFront.
Server-Timing: cdn-upstream-layer;desc="EDGE",cdn-upstream-dns;dur=0,cdn-upstream-connect;dur=114,cdn-upstream-fbl;dur=177,cdn-cache-miss,cdn-pop;desc="PHX50-C2",cdn-rid;desc="yNPsyYn7skvTzwWkq3Wcc8Nj_foxUjQUe9H1ifslzWhb0w7aLbFvGg==",cdn-downstream-fbl;dur=436
Este encabezado Server-Timing
indica lo siguiente:
-
La solicitud de origen se envió desde una ubicación de punto de presencia (POP) de CloudFront (
cdn-upstream-layer;desc="EDGE"
). -
CloudFront usó un resultado de DNS en caché para el origen (
cdn-upstream-dns;dur=0
). -
CloudFront tardó 114 milisegundos en completar la conexión TCP (y TLS, si procede) con el origen (
cdn-upstream-connect;dur=114
). -
CloudFront tardó 177 milisegundos en recibir el primer byte de la respuesta del origen, tras completar la solicitud (
cdn-upstream-fbl;dur=177
). -
El objeto solicitado no estaba en la caché de CloudFront (
cdn-cache-miss
). -
La solicitud se recibió en la ubicación periférica identificada por el código
PHX50-C2
(cdn-pop;desc="PHX50-C2"
). -
El ID único de CloudFront correspondiente a esta solicitud fue
yNPsyYn7skvTzwWkq3Wcc8Nj_foxUjQUe9H1ifslzWhb0w7aLbFvGg==
(cdn-rid;desc="yNPsyYn7skvTzwWkq3Wcc8Nj_foxUjQUe9H1ifslzWhb0w7aLbFvGg=="
). -
CloudFront tardó 436 milisegundos en enviar el primer byte de la respuesta al espectador, tras recibir la solicitud del lector (
cdn-downstream-fbl;dur=436
).
ejemplo : acierto de caché
En el siguiente ejemplo se muestra un encabezado Server-Timing
que un lector podría recibir cuando el objeto solicitado está en la caché de CloudFront.
Server-Timing: cdn-cache-hit,cdn-pop;desc="SEA19-C1",cdn-rid;desc="nQBz4aJU2kP9iC3KHEq7vFxfMozu-VYBwGzkW9diOpeVc7xsrLKj-g==",cdn-hit-layer;desc="REC",cdn-downstream-fbl;dur=137
Este encabezado Server-Timing
indica lo siguiente:
-
El objeto solicitado estaba en la caché (
cdn-cache-hit
). -
La solicitud se recibió en la ubicación periférica identificada por el código
SEA19-C1
(cdn-pop;desc="SEA19-C1"
). -
El ID único de CloudFront correspondiente a esta solicitud fue
nQBz4aJU2kP9iC3KHEq7vFxfMozu-VYBwGzkW9diOpeVc7xsrLKj-g==
(cdn-rid;desc="nQBz4aJU2kP9iC3KHEq7vFxfMozu-VYBwGzkW9diOpeVc7xsrLKj-g=="
). -
El objeto solicitado se almacenó en una ubicación periférica regional (REC) (
cdn-hit-layer;desc="REC"
). -
CloudFront tardó 137 milisegundos en enviar el primer byte de la respuesta al espectador, tras recibir la solicitud del lector (
cdn-downstream-fbl;dur=137
).