Autenticação de solicitações para o Amazon SQS - Amazon Simple Queue Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Autenticação de solicitações para o Amazon SQS

A autenticação é o processo para identificar e verificar quem envia uma solicitação. Durante a primeira etapa de autenticação, a AWS verifica a identidade do produtor e se ele está registrado para usar a AWS (para obter mais informações, consulte Etapa 1: criar um Conta da AWS e IAM usuário). Em seguida, AWS segue o seguinte procedimento:

  1. O produtor (remetente) obtém as credenciais necessárias.

  2. O produtor envia uma solicitação e a credencial para o consumidor (destinatário).

  3. O consumidor usa a credencial para verificar se o produtor enviou a solicitação.

  4. Uma das seguintes situações acontece:

    • Se a autenticação for bem-sucedida, o consumidor processará a solicitação.

    • Se a autenticação falhar, o consumidor rejeitará a solicitação e retornará um erro.

Processo de autenticação básica com HMAC-SHA

Ao acessar o Amazon SQS usando a API de consulta, você deve fornecer os seguintes itens para que a solicitação seja autenticada:

  • O ID da chave de AWS acesso que identifica sua Conta da AWS, que é AWS usado para pesquisar sua chave de acesso secreta.

  • A assinatura da solicitação HMAC-SHA, que é calculada usando sua chave de acesso secreta (um segredo compartilhado do qual somente você e a AWS têm conhecimento. Para obter mais informações, consulte RFC2104). O SDK da AWS lida com o processo de assinatura. No entanto, se você enviar uma solicitação de consulta por meio de HTTP ou HTTPS, precisará incluir uma assinatura em cada solicitação de consulta.

    1. Derive uma chave de assinatura Signature versão 4. Para obter mais informações, consulte Derivar a chave de assinatura com Java.

      nota

      O Amazon SQS oferece suporte ao Signature versão 4, que fornece segurança e performance aprimorados com base em SHA256 em relação às versões anteriores. Ao criar novas aplicações que usem o Amazon SQS, você deverá usar o Signature versão 4.

    2. Codifique a assinatura da solicitação usando base64. Este exemplo do código Java faz o seguinte:

      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); } }
  • O timestamp (ou a expiração) da solicitação. O timestamp que você usa na solicitação deve ser um objeto dateTime, com a data completa, incluindo horas, minutos e segundos. Por exemplo: 2007-01-31T23:59:59Z Embora isso não seja necessário, recomendamos que você informe o objeto usando o fuso horário Tempo Universal Coordenado (Horário de Greenwich).

    nota

    Certifique-se de que a hora do servidor esteja definida corretamente. Se você especificar um registro de data e hora (em vez de uma expiração), a solicitação expirará automaticamente 15 minutos após o horário especificado (AWS não processará solicitações com carimbos de data e hora mais de 15 minutos antes da hora atual nos servidores). AWS

    Se você está usando .NET, não deve enviar timestamps excessivamente específicos (devido a interpretações diferentes em relação a como a precisão de tempo extra deve ser aplicada). Neste caso, você deve criar objetos dateTime manualmente com precisão inferior a um milissegundo.

Parte 1: a solicitação do usuário

A seguir está o processo que você deve seguir para autenticar AWS solicitações usando uma assinatura de solicitação HMAC-SHA.

Diagrama descrevendo a solicitação do usuário.
  1. Crie uma solicitação para AWS.

  2. Calcule uma assinatura com código de autenticação de mensagem de hash com chave (HMAC-SHA) usando sua chave de acesso secreta.

  3. Inclua a assinatura e o ID da chave de acesso na solicitação e, em seguida, envie a solicitação para AWS.

Parte 2: A resposta de AWS

AWS inicia o seguinte processo em resposta.

Diagrama descrevendo a resposta de AWS.
  1. AWS usa o ID da chave de acesso para pesquisar sua chave de acesso secreta.

  2. AWS gera uma assinatura a partir dos dados da solicitação e da chave de acesso secreta, usando o mesmo algoritmo usado para calcular a assinatura enviada na solicitação.

  3. Uma das seguintes situações acontece:

    • Se a assinatura AWS gerada corresponder à que você enviou na solicitação, AWS considere a solicitação autêntica.

    • Se a comparação falhar, a solicitação será descartada e AWS retornará um erro.