Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Autenticación de solicitudes para Amazon SQS
La autenticación es un proceso para identificar y verificar a la parte que envía una solicitud. Durante la primera fase de la autenticación, AWS verifica la identidad del productor y si está registrado para utilizar AWS
-
El productor (remitente) obtiene la credencial necesaria.
-
El productor envía una solicitud y la credencial al consumidor (receptor).
-
El consumidor utiliza la credencial para verificar si el productor envió la solicitud.
-
Se produce una de las circunstancias siguientes:
-
Si la autenticación se realiza correctamente, el consumidor procesa la solicitud.
-
Si se produce un error de autenticación, el consumidor rechaza la solicitud y devuelve un error.
-
Proceso básico de autenticación con HMAC-SHA
Cuando se obtiene acceso a Amazon SQS con la API de consultas, se deben proporcionar los siguientes elementos para autenticar la solicitud:
-
El ID de clave de acceso de AWS que identifica la Cuenta de AWS, que AWS utiliza para buscar la clave de acceso secreta.
-
La firma de la solicitud HMAC-SHA, que se calcula utilizando la clave de acceso secreta (un secreto compartido conocido únicamente por usted y por AWS; para obtener más información, consulte RFC2104
). El AWS SDK se encarga del proceso de firma; sin embargo, si se realiza una solicitud de consulta a través de HTTP o HTTPS, se deberá incluir una firma en cada solicitud de consulta. -
Genere una clave firma Signature Version 4. Para obtener más información, consulte Generación de la clave de firma con Java.
nota
Amazon SQS admite Signature Version 4, que proporciona una seguridad basada en SHA256 y un rendimiento mejorados con respecto a las versiones anteriores. Cuando cree aplicaciones nuevas que usen Amazon SQS, utilice Signature Version 4.
-
codifique en formato base64 la firma de la solicitud. El siguiente ejemplo se de código Java lo hace:
package amazon.webservices.common; // Define common routines for encoding data in AWS requests. public class Encoding { /* Perform base64 encoding of input bytes. * rawData is the array of bytes to be encoded. * return is the base64-encoded string representation of rawData. */ public static String EncodeBase64(byte[] rawData) { return Base64.encodeBytes(rawData); } }
-
-
La marca temporal (o vencimiento) de la solicitud. La marca temporal que utilice en la solicitud debe ser un objeto
dateTime, con la fecha completa, incluidas las horas, los minutos y los segundos. Por ejemplo: 2007-01-31T23:59:59ZAunque no es necesario, le recomendamos que proporcione el objeto utilizando la zona horaria de la hora universal coordinada (hora del meridiano de Greenwich).nota
Asegúrese de que la hora del servidor esté ajustada correctamente. Si especifica una marca temporal (en lugar de un vencimiento), la solicitud caduca automáticamente 15 minutos después de la hora especificada (AWS no procesa las solicitudes cuya marca temporal sea anterior en más de 15 minutos a la hora actual de los servidores de AWS).
Si utiliza .NET, no debe enviar marcas temporales demasiado específicas (debido a las diferentes interpretaciones con respecto a cómo se debe descartar la precisión adicional del tiempo). En este caso, debe crear manualmente objetos
dateTimecon una precisión de no más de un milisegundo.
Parte 1: la solicitud del usuario
A continuación se muestra el proceso que debe seguir para autenticar solicitudes en AWS mediante una firma de solicitud HMAC-SHA.
-
Cree una solicitud para AWS.
-
Calcule la firma de código de autenticación de mensajes mediante algoritmos hash con clave (HMAC-SHA) utilizando su clave de acceso secreta.
-
Incluya la firma y su ID de clave de acceso en la solicitud y, a continuación, envíe la solicitud a AWS.
Parte 2: la respuesta de AWS
AWS comienza el siguiente proceso como respuesta.
-
AWS utiliza el ID de clave de acceso para buscar su clave de acceso secreta.
-
AWS genera una firma a partir de los datos de la solicitud y la clave de acceso secreta con el mismo algoritmo que usted utilizó para calcular la firma que envió en la solicitud.
-
Se produce una de las circunstancias siguientes:
-
Si la firma generada por AWS coincide con la que se envía con la solicitud, AWS considera que la solicitud es auténtica.
-
Si no coincide, se descarta la solicitud y AWS devuelve un error.
-