

# Elementos de una firma de solicitud a la API de AWS
<a name="reference_sigv-signing-elements"></a>

**importante**  
A menos que utilice la CLI o los SDK de AWS, debe escribir código para calcular las firmas que brindan información de autenticación en sus solicitudes. El cálculo de firmas en AWS Signature Version 4 puede ser una tarea compleja, por lo que le recomendamos que utilice la CLI o los SDK de AWS siempre que sea posible.

Cada solicitud HTTP/HTTPS que utiliza la firma Signature Version 4 debe contener estos elementos.

**Topics**
+ [Especificación de punto de enlace](#endpoint-specification)
+ [Action](#action)
+ [Parámetros de acciones](#parameters)
+ [Date](#date)
+ [Información de autenticación](#authentication)

## Especificación de punto de enlace
<a name="endpoint-specification"></a>

Especifica el nombre de DNS del punto de conexión al que se envía la solicitud. Este nombre suele contener el código de servicio y la región. Por ejemplo, el punto de conexión de Amazon DynamoDB en la región `us-east-1` es `dynamodb.us-east-1.amazonaws.com`.

Para las solicitudes HTTP/1.1, debe incluir el encabezado `Host`. Para solicitudes HTTP/2, puede incluir el encabezado `:authority` o el encabezado `Host`. Utilice únicamente el encabezado `:authority` de conformidad con la especificación HTTP/2. No todos los servicios son compatibles con las solicitudes HTTP/2.

Para conocer los puntos de conexión admitidos por cada servicio, consulte los [Puntos de conexión y cuotas del servicio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) en la *Referencia general de AWS*.

## Action
<a name="action"></a>

Especifica una acción de la API para el servicio. Por ejemplo, la acción de DynamoDB `CreateTable` o la acción de Amazon EC2 `DescribeInstances`.

Para ver las acciones admitidas por cada servicio, consulte la [Referencia de autorización del servicio](https://docs.aws.amazon.com//service-authorization/latest/reference/reference.html).

## Parámetros de acciones
<a name="parameters"></a>

Especifica los parámetros de la acción especificada en la solicitud. Cada acción de la API de AWS tiene un conjunto de parámetros obligatorios y opcionales. La versión de la API suele ser un parámetro obligatorio.

Para ver los parámetros admitidos por una acción de la API, consulte la Referencia de la API del servicio.

## Date
<a name="date"></a>

Especifica la fecha y la hora de la solicitud. Incluir la fecha y la hora en una solicitud ayuda a impedir que terceros intercepten su solicitud y vuelvan a enviarla posteriormente. La fecha que especifica en el alcance de credencial debe coincidir con la fecha de su solicitud.

La marca de tiempo debe estar en UTC y en el siguiente formato ISO 8601: *AAAAMMDD*T*HHMMSS*Z. Por ejemplo, `20220830T123600Z`. No incluya milisegundos en la marca de tiempo.

Puede utilizar un encabezado `date` o `x-amz-date`, o puede incluir `x-amz-date` como parámetro de consulta. Si no podemos encontrar un encabezado `x-amz-date`, buscamos un encabezado `date`.

## Información de autenticación
<a name="authentication"></a>

Cada solicitud que envíe debe incluir la siguiente información. AWS usa esta información para garantizar la validez y autenticidad de la solicitud.
+ Algoritmo: el algoritmo hash que está utilizando como parte del proceso de firma. 
  + SigV4: use `AWS4-HMAC-SHA256` para especificar Signature Version 4 con el algoritmo de hash `HMAC-SHA256`. 
  + SigV4a: use `AWS4-ECDSA-P256-SHA256` para especificar el algoritmo hash `ECDSA-P256-SHA-256`.
+ Credencial: una cadena que se forma concatenando sus componentes de ID de clave de acceso y ámbito de credenciales.
  + SigV4: el ámbito de la credencial incluye su clave de acceso, la fecha en formato *DDMMAAAA*, el código de región, el código de servicio y la cadena de terminación `aws4_request`, separados por barras diagonales (/). El código de región, el código de servicio y la cadena de terminación deben utilizar caracteres en minúscula.

    ```
    AKIAIOSFODNN7EXAMPLE/YYYYMMDD/region/service/aws4_request
    ```
  + SigV4a: el ámbito de la credencial incluye la fecha con el formato DDMMAAAA, el nombre del servicio y la cadena de terminación `aws4_request`, separados por barras diagonales (/). Tenga en cuenta que el ámbito de las credenciales no incluye la región, ya que la región está cubierta en un encabezado `X-Amz-Region-Set` independiente.

    ```
    AKIAIOSFODNN7EXAMPLE/YYYYMMDD/service/aws4_request
    ```
+ Encabezados firmados: los encabezados HTTP que se incluirán en la firma, separados por punto y coma (;). Por ejemplo, `host;x-amz-date`.

  En el caso de SigV4a, debe incluir un encabezado de conjunto de regiones que especifique el conjunto de regiones en las que será válida la solicitud. El encabezado `X-Amz-Region-Set` se especifica como una lista de valores separados por comas. En el siguiente ejemplo, se muestra un encabezado de región que permite realizar una solicitud tanto en las regiones us-east-1 como us-west-1.

  ```
  X-Amz-Region-Set=us-east-1,us-west-1
  ```

  Puede utilizar comodines (\$1) en las regiones para especificar varias regiones. En el siguiente ejemplo, el encabezado permite realizar una solicitud tanto en us-west-1 como en us-west-2.

  ```
  X-Amz-Region-Set=us-west-*
  ```
+ Firma: una cadena codificada en formato hexadecimal que representa la firma calculada. Debe calcular la firma utilizando el algoritmo especificado en el parámetro `Algorithm`. 

Para obtener más información, consulte [Métodos de autenticación](reference_sigv-authentication-methods.md)