Métodos de autenticación
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.
Puede expresar la información de autenticación mediante uno de los siguientes métodos.
Encabezado de autorización HTTP
El encabezado de Authorization
HTTP es el método más común para autenticar una solicitud. Todas las operaciones de la API de REST (excepto las cargas basadas en el navegador mediante solicitudes POST
) requieren este encabezado. Para obtener más información sobre el valor del encabezado de autorización y cómo calcular la firma y las opciones relacionadas, consulte Autenticación de solicitudes: uso del encabezado de autorización (AWS Signature Version 4) en la Referencia de la API de Amazon S3.
A continuación, se muestra un ejemplo de un valor de encabezado de Authorization
. Se agregan saltos de línea a este ejemplo para facilitar la lectura. En su código, el encabezado debe ser una cadena continua. No hay comas entre el algoritmo y la credencial, pero los demás elementos deben estar separados por comas.
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, SignedHeaders=host;range;x-amz-date, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
En la siguiente tabla, se describen los distintos componentes del valor del encabezado de autorización del ejemplo anterior:
Componente | Descripción |
---|---|
Autorización |
El algoritmo que se utilizó para calcular la firma. Debe proporcionar este valor cuando utilice AWS Signature Version 4 para la autenticación. La cadena especifica AWS Signature Version 4 ( |
Credential |
El ID de clave de acceso y la información sobre el alcance, que incluye la fecha, la región y el servicio que se utilizaron para calcular la firma. Esta cadena tiene el siguiente formato:
Dónde: el valor |
SignedHeaders |
Una lista de encabezados de solicitud separados por punto y coma que utilizó para calcular |
Signature |
La firma de 256 bits expresada en 64 caracteres hexadecimales en minúsculas. Por ejemplo: Tenga en cuenta que los cálculos de la firma varían según la opción que elija para transferir la carga. |
Parámetros de cadenas de consulta
Puede utilizar una cadena de consulta para expresar una solicitud en su totalidad en una URL. En este caso, utiliza los parámetros de consulta para proporcionar la información de la solicitud, incluida la información de autenticación. Dado que la firma de la solicitud forma parte de la dirección URL, este tipo de URL suele denominarse como URL prefirmada. Puede utilizar URL prefirmadas para incrustar enlaces en los que se puede hacer clic en HTML, que pueden tener una validez de hasta siete días. Para obtener más información, consulte Autenticación de solicitudes: uso de parámetros de consulta (AWS Signature Version 4) en la Referencia de la API de Amazon S3.
A continuación, se muestra un ejemplo de una URL prefirmada. Se agregan saltos de línea a este ejemplo para facilitar la lectura:
https://s3.amazonaws.com/amzn-s3-demo-bucket/test.txt ? X-Amz-Algorithm=AWS4-HMAC-SHA256 & X-Amz-Credential=<your-access-key-id>/20130721/us-east-1/s3/aws4_request & X-Amz-Date=20130721T201207Z & X-Amz-Expires=86400 & X-Amz-SignedHeaders=host &X-Amz-Signature=<signature-value>
nota
El valor X-Amz-Credential
de la URL muestra el carácter “/” solo para facilitar la lectura. En la práctica, debe codificarse como %2F. Por ejemplo:
&X-Amz-Credential=<your-access-key-id>%2F20130721%2Fus-east-1%2Fs3%2Faws4_request
En la siguiente tabla, se describen los parámetros de consulta de la URL que proporcionan información de autenticación.
Nombre del parámetro de la cadena de consulta | Descripción |
---|---|
X-Amz-Algorithm |
Identifica la versión de AWS Signature y el algoritmo que utilizó para calcular la firma. En el caso de AWS Signature Version 4, establece este valor de parámetro en |
X-Amz-Credential |
Además del ID de clave de acceso, este parámetro también proporciona el alcance (región y servicio de AWS) para el que es válida la firma. Este valor debe coincidir con el alcance que se utiliza en los cálculos de firmas, como se explica en la siguiente sección. El formato general de este valor de parámetro es el siguiente:
Por ejemplo: Para obtener una lista de las cadenas regionales de AWS, consulte Puntos de conexión regionales en la Referencia general de AWS. |
X-Amz-Date |
El formato de fecha y hora debe seguir la norma ISO 8601 y debe tener el formato |
X-Amz-Expires |
Proporciona el periodo, en segundos, durante el que es válida la URL prefirmada generada. Por ejemplo, 86 400 (24 horas). Este valor es un entero. El valor mínimo que puede establecer es 1 y el máximo es 604 800 (siete días). Una URL prefirmada puede ser válida durante un máximo de siete días porque la clave de firma que utiliza para calcular la firma es válida durante un máximo de siete días. |
X-Amz-SignedHeaders |
Muestra los encabezados que utilizó para calcular la firma. Los siguientes encabezados son obligatorios para los cálculos de firmas:
Para mayor seguridad, debe firmar todos los encabezados de solicitud que planea incluir en su solicitud. |
X-Amz-Signature |
Proporciona la firma para autenticar la solicitud. Esta firma debe coincidir con la firma que calcula el servicio; de lo contrario, el servicio deniega la solicitud. Por ejemplo, Los cálculos de firmas se describen en la siguiente sección. |
X-Amz-Security-Token |
Parámetro de credenciales opcional si se utilizan credenciales procedentes del servicio STS. |