Autenticación de solicitudes para Amazon SQS - Amazon Simple Queue Service

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 (para obtener más información, consulte Paso 1: Crear un usuario Cuenta de AWS de IAM). A continuación AWS , sigue el siguiente procedimiento:

  1. El productor (remitente) obtiene la credencial necesaria.

  2. El productor envía una solicitud y la credencial al consumidor (receptor).

  3. El consumidor utiliza la credencial para verificar si el productor envió la solicitud.

  4. 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 identificador de clave de AWS acceso que lo identifica Cuenta de AWS y que se AWS utiliza para buscar su 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.

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

    2. 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:59Z Aunque 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 especificas una marca de tiempo (en lugar de una fecha de caducidad), la solicitud caduca automáticamente 15 minutos después de la hora especificada (AWS no procesa las solicitudes con marcas de tiempo más de 15 minutos antes de la hora actual en los servidores). 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 dateTime con una precisión de no más de un milisegundo.

Parte 1: la solicitud del usuario

El siguiente es el proceso que debe seguir para autenticar las AWS solicitudes mediante una firma de solicitud del HMAC-SHA.

Diagrama que describe la solicitud del usuario.
  1. Cree una solicitud para AWS.

  2. Calcule la firma de código de autenticación de mensajes mediante algoritmos hash con clave (HMAC-SHA) utilizando su clave de acceso secreta.

  3. Incluye la firma y tu ID de clave de acceso en la solicitud y, a continuación, envía la solicitud a AWS.

Parte 2: La respuesta de AWS

AWS comienza el siguiente proceso en respuesta.

Diagrama que describe la respuesta de AWS.
  1. AWS utiliza el identificador de clave de acceso para buscar su clave de acceso secreta.

  2. AWS genera una firma a partir de los datos de la solicitud y la clave de acceso secreta, utilizando el mismo algoritmo que utilizó para calcular la firma que envió en la solicitud.

  3. Se produce una de las circunstancias siguientes:

    • Si la firma que se AWS genera coincide con la que se envió en la solicitud, se considerará AWS que la solicitud es auténtica.

    • Si la comparación falla, la solicitud se descarta y AWS devuelve un error.