Métodos de autenticación - AWS Identity and Access Management

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 (AWS4) y el algoritmo de firma (HMAC-SHA256).

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:

<your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

Dónde: el valor <date> se especifica con el formato DDMMAAAA. El valor <aws-service> es s3 al enviar una solicitud a Amazon S3.

SignedHeaders

Una lista de encabezados de solicitud separados por punto y coma que utilizó para calcular Signature. La lista solo incluye los nombres de los encabezados y estos nombres deben estar en minúsculas. Por ejemplo: host;range;x-amz-date

Signature

La firma de 256 bits expresada en 64 caracteres hexadecimales en minúsculas. Por ejemplo:fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024

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 AWS4-HMAC-SHA256. Esta cadena identifica AWS Signature Version 4 (AWS 4) y el algoritmo HMAC-SHA256 (HMAC-SHA256).

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:

<your-access-key-id>/<date>/<AWS Region>/<AWS-service>/aws4_request

Por ejemplo: AKIAIOSFODNN7EXAMPLE/20130721/us-east-1/s3/aws4_request .

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 yyyyMMddTHHmmssZ. Por ejemplo, si la fecha y la hora son “08/01/2016 15:32:41.982-700”, primero se deben convertir a UTC (hora universal coordinada) y, a continuación, se deben enviar como “20160801T223241Z”.

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:

  • El encabezado del host HTTP.

  • Cualquier encabezado x-amz-* que planee agregar a la solicitud.

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, 733255ef022bec3f2a8701cd61d4b371f3f28c9f193a1f02279211d48d5193d7

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.