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:
-
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 policyLa política de seguridad codificada en base64 que describe lo que 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-algorithmEl algoritmo de firma usado. Para AWS Signature Version 4, el valor es
AWS4-HMAC-SHA256.x-amz-credentialAdemá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_requestPor 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 deaws-regionde Amazon S3, consulte Regiones y puntos de conexión en Referencia general de AWS.x-amz-dateEs 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.
-
La política POST debe incluir los siguientes elementos:
Nombre del elemento Descripción x-amz-algorithmEl algoritmo de firma que utilizó para calcular la firma. Para AWS Signature Version 4, el valor es
AWS4-HMAC-SHA256.x-amz-credentialAdemá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_requestPor ejemplo:
AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request. .x-amz-dateEl 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.
-
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.
Cálculo de una firma
-
Cree una política con la codificación UTF-8.
-
Convierta la política codificada en UTF-8 a Base64. El resultado es la cadena que se va a firmar.
-
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.
-
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: