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
-
O produtor (remetente) obtém as credenciais necessárias.
-
O produtor envia uma solicitação e a credencial para o consumidor (destinatário).
-
O consumidor usa a credencial para verificar se o produtor enviou a solicitação.
-
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.
-
Tópicos
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. -
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.
-
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.

-
Crie uma solicitação para a AWS.
-
Calcule uma assinatura com código de autenticação de mensagem de hash com chave (HMAC-SHA) usando sua chave de acesso secreta.
-
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.

-
A AWS usa o ID da chave de acesso para pesquisar sua chave de acesso secreta.
-
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.
-
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.
-