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á.
Usando a consulta API
Parâmetros de consulta
HTTPSolicitações baseadas em consultas são HTTP solicitações que usam o HTTP verbo GET ou POST e um parâmetro de consulta chamado. Action
Cada solicitação de consulta deve incluir alguns parâmetros comuns para lidar com a autenticação e a seleção de uma ação.
Algumas operações levam listas de parâmetros. Essas listas são especificadas usando a notação param.
. Valores de n
n
são números inteiros a partir de 1.
Autenticação de solicitação de consulta
Você só pode enviar solicitações de consulta HTTPS e deve incluir uma assinatura em cada solicitação de consulta. Esta seção descreve como criar a assinatura. O método descrito no procedimento a seguir é conhecido como versão de assinatura 4.
As etapas básicas a seguir são usadas para autenticar as solicitações à AWS. Isso pressupõe que você esteja registrado AWS e tenha uma ID de chave de acesso e uma chave de acesso secreta.
Processo de autenticação de consulta
-
O remetente constrói uma solicitação para. AWS
-
O remetente calcula a assinatura da solicitação, um código de autenticação de mensagens baseado em hash (HMAC) com uma função hash SHA -1, conforme definido na próxima seção deste tópico.
-
O remetente da solicitação envia os dados da solicitação, a assinatura e o ID da chave de acesso (o identificador da chave de acesso secreta usada) para. AWS
-
AWS usa o ID da chave de acesso para pesquisar a 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 na solicitação.
-
Se as assinaturas coincidirem, a solicitação será considerada autêntica. Se a comparação falhar, a solicitação será descartada e a AWS retornará uma resposta de erro.
nota
Se uma solicitação contiver um parâmetro Timestamp
, a assinatura calculada para a solicitação expirará 15 minutos após o valor.
Se uma solicitação contiver um parâmetro Expires
, a assinatura expirará no horário especificado pelo parâmetro Expires
.
Para calcular a assinatura da solicitação
-
Crie a query string canonizada de que você precisará posteriormente neste procedimento:
-
Classifique os componentes da string de consulta UTF -8 pelo nome do parâmetro com a ordem natural de bytes. Os parâmetros podem vir do GET URI ou do POST corpo (quando Content-Type é x-www-form-urlencoded application/).
-
URLcodifique o nome e os valores do parâmetro de acordo com as seguintes regras:
-
Não URL codifique nenhum dos caracteres não reservados definidos por RFC 3986. Esses caracteres não reservados são A–Z, a–z, 0–9, hífen ( - ), sublinhado ( _ ), ponto ( . ) e til ( ~ ).
-
Codificar em percentual todos os outros caracteres com %XY, onde X e Y são caracteres hexadecimais de 0 a 9 e maiúsculas de A a F.
-
Codificação percentual estendida UTF de -8 caracteres no formato %XY%ZA...
-
Codificar em percentual o caractere de espaço como %20 (e não +, como em esquemas de codificação comuns).
-
-
Separe os nomes dos parâmetros codificados de seus valores codificados com o sinal de igual (=) (ASCIIcaractere 61), mesmo que o valor do parâmetro esteja vazio.
-
Separe os pares nome-valor com um e comercial (&) (ASCIIcódigo 38).
-
-
Crie a string a ser assinada de acordo com a seguinte pseudogramática (o "\n" representa uma nova linha). ASCII
StringToSign = HTTPVerb + "\n" + ValueOfHostHeaderInLowercase + "\n" + HTTPRequestURI + "\n" + CanonicalizedQueryString <from the preceding step>
O HTTPRequestURI componente é o componente do caminho HTTP absoluto URI até, mas não inclui, a string de consulta. Se HTTPRequestURI estiver vazio, use uma barra (/).
-
Calcule um RFC compatível HMAC com 2104 com a string que você acabou de criar, sua chave de acesso secreta como chave SHA256 e/ou SHA1 como algoritmo de hash.
Para obter mais informações, consulte https://www.ietf.org/rfc/rfc2104.txt
. -
Converta o valor resultante para base64.
-
Inclua o valor como o valor do parâmetro
Signature
na solicitação.
Por exemplo, a seguir você encontra um exemplo de solicitação (as quebras de linha foram adicionadas para maior clareza).
https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheClusters &CacheClusterIdentifier=myCacheCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01
Para a sequência de caracteres de consulta anterior, você calcularia a HMAC assinatura sobre a sequência de caracteres a seguir.
GET\n elasticache.amazonaws.com\n Action=DescribeCacheClusters &CacheClusterIdentifier=myCacheCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE%2F20140523%2Fus-west-2%2Felasticache%2Faws4_request &X-Amz-Date=20141201T223649Z &X-Amz-SignedHeaders=content-type%3Bhost%3Buser-agent%3Bx-amz-content-sha256%3Bx-amz-date content-type: host:elasticache.us-west-2.amazonaws.com user-agent:CacheServicesAPICommand_Client x-amz-content-sha256: x-amz-date:
O resultado é a seguinte solicitação assinada.
https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheClusters &CacheClusterIdentifier=myCacheCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20141201/us-west-2/elasticache/aws4_request &X-Amz-Date=20141201T223649Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=2877960fced9040b41b4feaca835fd5cfeb9264f768e6a0236c9143f915ffa56
Para obter informações detalhadas sobre o processo de assinatura e o cálculo da assinatura da solicitação, consulte o tópico Processo de assinatura do Signature Version 4 e seus subtópicos.