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 IAM usuário final). Em seguida, a AWS segue o procedimento a seguir:

  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 acesso da AWS que identifica a Conta da AWS, que a AWS usa para procurar 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 timestamp (em vez de uma expiração), a solicitação expirará automaticamente 15 minutos após o horário especificado (a AWS não processa solicitações com timestamps superiores a 15 minutos antes da hora atual nos servidores da 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

Veja a seguir o processo que você deve seguir para autenticar solicitações da AWS usando uma assinatura de solicitação HMAC-SHA.

Diagrama descrevendo a solicitação do usuário.
  1. Crie uma solicitação para a 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 a AWS.

Parte 2: a resposta da AWS

A AWS inicia este processo em resposta.

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

  2. A 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 gerada pela AWS corresponder àquela enviada na solicitação, a AWS considerará a solicitação como autêntica.

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