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.
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 hashHMAC-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
.
Para obtener más información, consulte Métodos de autenticación.