Creación de políticas de encabezados de respuesta - Amazon CloudFront

Creación de políticas de encabezados de respuesta

Puede utiliza una política de encabezados de respuesta para especificar los encabezados HTTP que Amazon CloudFront añade o elimina de las respuestas HTTP. 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.

Puede crear una política de encabezados de respuesta en la consola de CloudFront. O bien, puede crear una mediante AWS CloudFormation, AWS Command Line Interface (AWS CLI) o la API de CloudFront. Después de crear una política de encabezados de respuesta, puede adjuntarla a uno o más comportamientos de la caché en una distribución de CloudFront.

Antes de crear una política de encabezados de respuesta personalizada, compruebe si una de las políticas de encabezados de respuesta administradas se ajusta a su caso de uso. Si lo hace, puede adjuntarla a su comportamiento de caché. De este modo, no tendrá que crear ni administrar su propia política de encabezados de respuesta.

Console
Para crear una política de encabezados de respuesta (consola)
  1. Inicie sesión en la AWS Management Console y, a continuación, vaya a la pestaña Response headers (Encabezados de respuesta) en la página Policies (Políticas) en la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders.

  2. Elija Create response headers policy (Crear política de encabezados de respuesta).

  3. En el formulario Create response headers policy (Crear política de encabezados de respuesta), haga lo siguiente:

    1. En el panel Details (Detalles), ingrese un Nombre para la política de encabezados de respuesta y (opcionalmente) una Descripción que explique para qué sirve la política.

    2. En el panel Cross-origin resource sharing (CORS) (Uso compartido de recursos entre orígenes [CORS]), elija alternar Configure CORS (Configurar CORS) y configure los encabezados CORS que desee agregar a la política. Si desea que los encabezados configurados invaliden los encabezados que CloudFront recibe del origen, seleccione la casilla de verificación Origin override (Invalidación de origen).

      Para obtener más información sobre la configuración de encabezados CORS, consulte Encabezados de CORS.

    3. En el panel Security headers (Encabezados de seguridad), elija alternar y configure cada uno de los encabezados de seguridad que desee agregar a la política.

      Para obtener más información sobre la configuración de encabezados de seguridad, consulte Encabezados de seguridad.

    4. En el panel Custom headers (Encabezados personalizados), agregue los encabezados personalizados que desee incluir en la política.

      Para obtener más información sobre la configuración de encabezados personalizados, consulte Encabezados personalizados.

    5. En el panel Remove headers (Eliminar encabezados), añada los nombres de los encabezados que desee que CloudFront elimine de la respuesta del origen y no los incluya en la respuesta que CloudFront envía a los lectores.

      Para obtener más información sobre cómo eliminar encabezados, consulte Eliminar encabezados.

    6. En el panel Server-Timing header (Encabezado Server-Timing), elija el conmutador Enable (Habilitar) e introduzca una tasa de muestreo (un número entre 0 y 100, inclusive).

      Para obtener más información acerca del encabezado Server-Timing, consulte Encabezado Server-Timing.

  4. Elija Create (Crear) para crear la política.

Después de crear una política de encabezados de respuesta, puede adjuntarla a un comportamiento de la caché en una distribución de CloudFront.

Para adjuntar una política de encabezados de respuesta a una distribución existente (consola)
  1. Abra la página Distributions (Distribuciones) en la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v4/home#/distributions.

  2. Elija la distribución que se va a actualizar y, a continuación, elija la pestaña Behaviors (Comportamientos).

  3. Elija el comportamiento de la caché que se va a actualizar y, a continuación, elija Edit (Editar).

    O bien, para crear un nuevo comportamiento de caché, elija Create behavior (Crear comportamiento).

  4. Para Política de encabezados de respuesta, elija la política que desea agregar al comportamiento de la caché.

  5. Elija Save changes (Guardar cambios) para actualizar el comportamiento de la caché. Si va a crear un nuevo comportamiento de la caché, elija Create behavior (Crear comportamiento).

Para adjuntar una política de encabezados de respuesta a una distribución nueva (consola)
  1. Abra la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v4/home.

  2. Elija Crear distribución.

  3. Para Política de encabezados de respuesta, elija la política que desea agregar al comportamiento de la caché.

  4. Elija las demás configuraciones para la distribución. Para obtener más información, consulte Referencia de configuración de la distribución.

  5. Elija Create distribution (Crear distribución) para crear la distribución.

AWS CloudFormation

Para crear una política de encabezados de respuesta con AWS CloudFormation, utilice el tipo de recurso de AWS::CloudFront::ResponseHeadersPolicy. En el siguiente ejemplo se muestra la sintaxis de plantilla de AWS CloudFormation, en formato YAML, para crear una política de encabezados de respuesta.

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 obtener más información, consulte AWS::CloudFront::ResponseHeadersPolicy en la Guía del usuario de AWS CloudFormation.

CLI

Para crear una política de encabezados de respuesta con la AWS Command Line Interface (AWS CLI), utilice el comando aws cloudfront create-response-headers-policy. Puede utilizar un archivo de entrada para proporcionar los parámetros de entrada del comando, en lugar de especificar cada parámetro individual como entrada de la línea de comandos.

Para crear una política de encabezados de respuesta (CLI con archivo de entrada)
  1. Utilice el siguiente comando para crear un archivo llamado response-headers-policy.yaml. Este archivo contiene todos los parámetros de entrada para el comando create-response-headers-policy.

    aws cloudfront create-response-headers-policy --generate-cli-skeleton yaml-input > response-headers-policy.yaml
  2. Abra el archivo response-headers-policy.yaml que acaba de crear. Edite el archivo para especificar un nombre de política y la configuración de la política de encabezados de respuesta deseada y, a continuación, guarde el archivo.

    Para obtener más información sobre la configuración de política de encabezados de respuesta, consulte Descripción de las políticas de encabezados de respuesta.

  3. Utilice el siguiente comando para crear la política de encabezados de respuesta. La política que cree utiliza los parámetros de entrada del archivo response-headers-policy.yaml.

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

    Anote el valor de Id en la salida del comando. Se trata del ID de la política de los encabezados de respuesta. Lo necesita para adjuntar la política al comportamiento de la caché de una distribución de CloudFront.

Para adjuntar una política de encabezados de respuesta a una distribución existente (CLI con archivo de entrada)
  1. Utilice el comando siguiente para guardar la configuración de distribución de la distribución de CloudFront que desea actualizar. Reemplace distribution_ID por el ID de la distribución.

    aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
  2. Abra el archivo llamado dist-config.yaml que acaba de crear. Edite el archivo y realice los siguientes cambios en el comportamiento de la caché para que utilice la política de encabezados de respuesta.

    • En el comportamiento de caché, agregue un campo que se denomina ResponseHeadersPolicyId. Para el valor del campo, utilice el ID de política de encabezados de respuesta que anotó después de crear la política.

    • Cambie el nombre del campo ETag a IfMatch, pero no cambie el valor del campo.

    Guarde el archivo cuando haya terminado.

  3. Utilice el siguiente comando para actualizar la distribución y utilizar la política de encabezados de respuesta. Reemplace distribution_ID por el ID de la distribución.

    aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml
Para adjuntar una política de encabezados de respuesta a una distribución nueva (CLI con archivo de entrada)
  1. Utilice el siguiente comando para crear un archivo llamado distribution.yaml. Este archivo contiene todos los parámetros de entrada para el comando create-distribution.

    aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
  2. Abra el archivo distribution.yaml que acaba de crear. En el comportamiento de la caché predeterminado, en el campo ResponseHeadersPolicyId, ingrese el ID de política de encabezados de respuesta que anotó después de crear la política. Siga editando el archivo para especificar la configuración de distribución que desee y, a continuación, guarde el archivo cuando termine.

    Para obtener más información acerca de la configuración de distribución, consulte Referencia de configuración de la distribución.

  3. Utilice el siguiente comando para crear la distribución mediante los parámetros de entrada del archivo de distribution.yaml.

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

Para crear una política de encabezados de respuesta con la API de CloudFront, utilice CreateResponseHeadersPolicy. Para obtener más información sobre los campos que especifique en esta llamada a la API, consulte Descripción de las políticas de encabezados de respuesta y la documentación de referencia de la API para el SDK de AWS u otro cliente de la API.

Después de crear una política de encabezados de respuesta, puede adjuntarla a un comportamiento de la caché, mediante una de las siguientes llamadas a la API:

  • Para asociarla a un comportamiento de caché en una distribución existente, utilice UpdateDistribution.

  • Para asociarlo con un comportamiento de caché en una nueva distribución, utilice CreateDistribution.

Para estas dos llamadas a la API, proporcione el ID de la política de los encabezados de respuesta en el campo ResponseHeadersPolicyId, dentro de un comportamiento de caché. Para obtener más información sobre los otros campos que especifique en estas llamadas a la API, consulte Referencia de configuración de la distribución y la documentación de referencia de la API para el SDK de AWS u otro cliente de la API.