Usando a consulta API - Amazon ElastiCache

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.n. Valores de 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
  1. O remetente constrói uma solicitação para. AWS

  2. 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.

  3. 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

  4. AWS usa o ID da chave de acesso para pesquisar a chave de acesso secreta.

  5. 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.

  6. 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
  1. Crie a query string canonizada de que você precisará posteriormente neste procedimento:

    1. 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/).

    2. URLcodifique o nome e os valores do parâmetro de acordo com as seguintes regras:

      1. 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 ( ~ ).

      2. 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.

      3. Codificação percentual estendida UTF de -8 caracteres no formato %XY%ZA...

      4. Codificar em percentual o caractere de espaço como %20 (e não +, como em esquemas de codificação comuns).

    3. 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.

    4. Separe os pares nome-valor com um e comercial (&) (ASCIIcódigo 38).

  2. 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 (/).

  3. 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.

  4. Converta o valor resultante para base64.

  5. 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.