Elementos de una firma de solicitud a la API de AWS - AWS Identity and Access Management

Elementos de una firma de solicitud a la API de AWS

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.

Especificación de punto de enlace

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 en la Referencia general de AWS.

Acción

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.

Parámetros de acciones

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

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

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: use AWS4-HMAC-SHA256 para especificar Signature Version 4 con el algoritmo de hash HMAC-SHA256.

  • Credencial: una cadena compuesta por el identificador de clave de acceso, la fecha en formato AAAAMMDD, 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
  • Encabezados firmados: los encabezados HTTP que se incluirán en la firma, separados por punto y coma (;). Por ejemplo, host;x-amz-date.

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