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 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. -
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 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.
-
Crie uma solicitação para 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 AWS.
Parte 2: A resposta de AWS
AWS inicia o seguinte processo em resposta.
-
AWS usa o ID da chave de acesso para pesquisar sua chave de acesso secreta.
-
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 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.
-