View a markdown version of this page

Autenticación de solicitudes: cargas basadas en el navegador con POST (AWS Signature Version 4) - Amazon Simple Storage Service

Autenticación de solicitudes: cargas basadas en el navegador con POST (AWS Signature Version 4)

Amazon S3 admite las solicitudes HTTP POST para que los usuarios puedan cargar contenido directamente en Amazon S3. Con HTTP POST para cargar contenido se simplifican las cargas y se reduce la latencia de carga donde los usuarios cargan datos para almacenar en Amazon S3. En esta sección se describe cómo autenticar solicitudes HTTP POST. Para obtener más información sobre las solicitudes HTTP POST, cómo crear un formulario, crear una política POST y un ejemplo, consulte Cargas basadas en el navegador con POST (AWS Signature Version 4).

Para autenticar una solicitud HTTP POST, haga lo siguiente:

  1. El formulario debe incluir los siguientes campos para proporcionar la firma y la información relevante que Amazon S3 puede utilizar para volver a calcular la firma al recibir la solicitud:

    Nombre del elemento Descripción
    policy

    La política de seguridad codificada en base64 que describe lo q‎ue se permite en la solicitud. Para el cálculo de la firma, esta política es la cadena que usted firma. Amazon S3 debe contar con esta política para poder volver a calcular la firma.

    x-amz-algorithm

    El algoritmo de firma usado. Para AWS Signature Version 4, el valor es AWS4-HMAC-SHA256.

    x-amz-credential

    Además del ID de clave de acceso, proporciona información sobre el alcance que utilizó para calcular la clave de firma para el cálculo de la firma.

    Es una cadena del formulario siguiente:

    <your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

    Por ejemplo:

    AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request. .

    Para Amazon S3, la cadena aws-service es s3. Para obtener una lista de las cadenas de aws-region de Amazon S3, consulte Regiones y puntos de conexión en Referencia general de AWS.

    x-amz-date

    Es el valor de la fecha en formato ISO8601. Por ejemplo, 20130728T000000Z.

    Es la misma fecha que utilizó al crear la clave de firma. Este debe ser también el mismo valor que proporciona en la política (x-amz-date) que firmó.

    x-amz-signature

    (AWS Signature Version 4) El hash HMAC-SHA256 de la política de seguridad.

    Para obtener más información sobre opciones para la firma, consulte Agregar la firma a la solicitud HTTP en Referencia general de AWS.

  2. La política POST debe incluir los siguientes elementos:

    Nombre del elemento Descripción
    x-amz-algorithm

    El algoritmo de firma que utilizó para calcular la firma. Para AWS Signature Version 4, el valor es AWS4-HMAC-SHA256.

    x-amz-credential

    Además del ID de clave de acceso, proporciona información sobre el alcance que utilizó para calcular la clave de firma para el cálculo de la firma.

    Es una cadena del formulario siguiente:

    <your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

    Por ejemplo:

    AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request. .

    x-amz-date

    El valor de la fecha especificado en la cadena con formato ISO8601. Por ejemplo, “20130728T000000Z”. La fecha debe ser la misma que utilizó al crear la clave de firma para el cálculo de la firma.

  3. Para el cálculo de la firma, la política POST es la cadena a firmar.

Cálculo de una firma

En el diagrama siguiente se ilustra el proceso de cálculo de firma.

Proceso de cálculo de firmas de AWS con los pasos StringToSign, SigningKey y Signature.

Cálculo de una firma
  1. Cree una política con la codificación UTF-8.

  2. Convierta la política codificada en UTF-8 a Base64. El resultado es la cadena que se va a firmar.

  3. Cree la firma como un hash HMAC-SHA256 de la cadena que se va a firmar. Proporcionará la clave de firma como clave de la función hash.

  4. Codifique la firma mediante la codificación hexadecimal.

Para obtener más información acerca de la creación de formularios HTML, políticas de seguridad y un ejemplo, consulte los siguientes subtemas: