Establecimiento de cookies firmadas mediante una política predefinida - Amazon CloudFront

Establecimiento de cookies firmadas mediante una política predefinida

Para establecer una cookie firmada utilizando una política predefinida, complete los pasos siguientes. Para crear la firma, consulte Creación de una firma para una cookie firmada que utiliza una política predefinida.

En el ejemplo siguiente, se muestran los encabezados Set-Cookie de una cookie firmada cuando se usa el nombre de dominio asociado a la distribución en las URL de los archivos:

Set-Cookie: CloudFront-Expires=1426500000; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly

En el ejemplo siguiente, se muestran los encabezados Set-Cookie de una cookie firmada cuando se usa el nombre de dominio alternativo example.org en las URL de los archivos:

Set-Cookie: CloudFront-Expires=1426500000; Domain=example.org; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_; Domain=example.org; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=example.org; Path=/images/*; Secure; HttpOnly

Si desea utilizar un nombre de dominio alternativo como example.com en las URL, debe añadir dicho nombre de dominio a su distribución independientemente de que especifique el atributo Domain. Para obtener más información, consulte Nombres de dominio alternativos (CNAME) en el tema Referencia de configuración de la distribución.

Creación de una firma para una cookie firmada que utiliza una política predefinida

Para crear la firma para una cookie firmada que utilice una política predefinida, realice los procedimientos indicados a continuación.

Creación de una instrucción de política para una cookie firmada que use una política predefinida

Al establecer una cookie firmada que use una política predefinida, el atributo CloudFront-Signature es una versión de una instrucción de política firmada y a la que se le ha aplicado una función hash. En el caso de cookies firmadas que utilizan una política predefinida, la instrucción de política no se incluye en el encabezado Set-Cookie, a diferencia de las cookies firmadas que utilizan una política personalizada. Para crear la instrucción de política, complete los pasos siguientes.

Para crear una instrucción de política para una cookie firmada que use una política predefinida
  1. Cree la instrucción de política utilizando el siguiente formato JSON y codificación de caracteres UTF-8. Incluya toda la puntuación y otros valores literalmente, tal como se especifica. Para obtener más información acerca de los parámetros Resource y DateLessThan, consulte Valores que se especifican en la instrucción de política de una política predefinida para cookies firmadas.

    { "Statement": [ { "Resource": "base URL or stream name", "Condition": { "DateLessThan": { "AWS:EpochTime": ending date and time in Unix time format and UTC } } } ] }
  2. Elimine todos los espacios vacíos (incluidos tabuladores y caracteres de línea nueva) de la instrucción de la política. Es posible que tenga que incluir caracteres de escape en la cadena del código de la aplicación.

Valores que se especifican en la instrucción de política de una política predefinida para cookies firmadas

Al crear una instrucción de una política predefinida, debe especificar los siguientes valores:

Recurso

La URL base, incluidas las cadenas de consulta, de haberlas; por ejemplo:

https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes

Puede especificar solo un valor en Resource.

Tenga en cuenta lo siguiente:

  • Protocol (Protocolo): el valor debe comenzar con http:// o https://.

  • Query string parameters (Parámetros de cadena de consulta): si no tiene parámetros de cadena de consulta, omita el signo de interrogación.

  • Alternate domain names (Nombres de dominio alternativos): si especifica un nombre de dominio alternativo (CNAME) en la URL, debe especificarlo al hacer referencia al archivo en la página web o aplicación. No especifique la URL de Amazon S3 para el archivo.

DateLessThan

La fecha y hora de vencimiento de la URL en formato de tiempo Unix (en segundos) y hora universal coordinada (UTC). No incluya el valor entre comillas.

Por ejemplo, 16 de marzo de 2015 a las 10:00 h UTC pasa a ser 1426500000 en formato de tiempo Unix.

Este valor debe coincidir con el valor del atributo CloudFront-Expires en el encabezado Set-Cookie. No incluya el valor entre comillas.

Para obtener más información, consulte Cuándo comprueba CloudFront la fecha y hora de vencimiento de una cookie firmada.

Ejemplo de instrucción de política para una política predefinida

Si se utiliza el siguiente ejemplo de instrucción de política en una cookie firmada, los usuarios podrán obtener acceso al archivo https://d111111abcdef8.cloudfront.net/horizon.jpg hasta el 16 de marzo de 2015 a las 10:00 h UTC:

{ "Statement": [ { "Resource": "https://d111111abcdef8.cloudfront.net/horizon.jpg?size=large&license=yes", "Condition": { "DateLessThan": { "AWS:EpochTime": 1426500000 } } } ] }

Firma de la instrucción de política para crear una firma para una cookie firmada que utiliza una política predefinida

Para crear el valor del atributo CloudFront-Signature en un encabezado Set-Cookie, aplique una función hash y firme la instrucción de política creada en Para crear una instrucción de política para una cookie firmada que use una política predefinida.

Para obtener más información y ejemplos de cómo aplicar una función hash, firmar y codificar la instrucción de política, consulte los siguientes temas: