

# Autenticación de solicitudes: cargas basadas en el navegador con POST (AWS Signature Version 4)
<a name="sigv4-authentication-HTTPPOST"></a>

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)](sigv4-UsingHTTPPOST.md).

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:


<table>
<thead>
  <tr><th>Nombre del elemento</th><th>Descripción</th></tr>
</thead>
<tbody>
  <tr><td><code>policy</code></td><td>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.</td></tr>
  <tr><td><code>x-amz-algorithm</code></td><td>El algoritmo de firma usado. Para AWS Signature Version 4, el valor es <code>AWS4-HMAC-SHA256</code>.</td></tr>
  <tr><td><code>x-amz-credential</code></td><td>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. <br />Es una cadena del formulario siguiente:<br /><code>&lt;your-access-key-id&gt;/&lt;date&gt;/&lt;aws-region&gt;/&lt;aws-service&gt;/aws4_request </code><br />Por ejemplo:<br /> <code> AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request</code>. . <br />Para Amazon S3, la cadena <i>aws-service</i> es <code>s3</code>. Para obtener una lista de las cadenas de <code>aws-region</code> de Amazon S3, consulte <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regiones y puntos de conexión</a> en <i>Referencia general de AWS</i>. </td></tr>
  <tr><td><code>x-amz-date</code></td><td>Es el valor de la fecha en formato ISO8601. Por ejemplo, <code>20130728T000000Z</code>. <br />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 (<code>x-amz-date</code>) que firmó. </td></tr>
  <tr><td><code>x-amz-signature</code></td><td>(AWS Signature Version 4) El hash HMAC-SHA256 de la política de seguridad. <br />Para obtener más información sobre opciones para la firma, consulte <a href="https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html">Agregar la firma a la solicitud HTTP</a> en <i>Referencia general de AWS</i>.</td></tr>
</tbody>
</table>


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


<table>
<thead>
  <tr><th>Nombre del elemento</th><th>Descripción</th></tr>
</thead>
<tbody>
  <tr><td><code>x-amz-algorithm</code></td><td> El algoritmo de firma que utilizó para calcular la firma. Para AWS Signature Version 4, el valor es <code>AWS4-HMAC-SHA256</code>. </td></tr>
  <tr><td><code>x-amz-credential</code></td><td>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. <br />Es una cadena del formulario siguiente:<br /><code>&lt;your-access-key-id&gt;/&lt;date&gt;/&lt;aws-region&gt;/&lt;aws-service&gt;/aws4_request </code><br />Por ejemplo: <br /> <code> AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request</code>. . </td></tr>
  <tr><td><code>x-amz-date</code></td><td> 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. </td></tr>
</tbody>
</table>


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

## Cálculo de una firma
<a name="sigv4-signature-calc-post"></a>

 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.](https://docs.aws.amazon.com/es_es/AmazonS3/latest/developerguide/images/sigV4-post.png)






**Cálculo de una firma**

1. Cree una política con la codificación UTF-8.

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

1. 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.

1. 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:


+ [Creación de un formulario HTML (mediante AWS Signature Version 4)](sigv4-HTTPPOSTForms.md)
+ [Política POST](sigv4-HTTPPOSTConstructPolicy.md)
+ [Ejemplo: carga basada en el navegador con HTTP POST (con AWS Signature Version 4)](sigv4-post-example.md)