Uso de la consulta API - Amazon ElastiCache

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de la consulta API

Parámetros de consulta

HTTPLas solicitudes basadas en consultas son HTTP solicitudes que utilizan el HTTP verbo GET o POST y un parámetro de consulta denominado. Action

Cada solicitud de consulta debe incluir algunos parámetros comunes para realizar la autenticación y la selección de una acción.

Algunas operaciones toman listas de parámetros. Estas listas se especifican utilizando la notación param.n. Valores de n son números enteros a partir de 1.

Autenticación de solicitudes de consulta

Solo puede enviar solicitudes de consulta HTTPS y debe incluir una firma en cada solicitud de consulta. En esta sección se describe cómo crear la firma. El método que se describe en el procedimiento siguiente se conoce como firma versión 4.

A continuación se indican los pasos básicos que se utilizan para autenticar las solicitudes en AWS. Esto supone que está registrado AWS y tiene un identificador de clave de acceso y una clave de acceso secreta.

Proceso de autenticación de consulta
  1. El remitente crea una solicitud para AWS.

  2. El remitente calcula la firma de la solicitud, un código hash codificado para el código de autenticación de mensajes basado en hash (HMAC) con una función hash SHA -1, tal como se define en la siguiente sección de este tema.

  3. El remitente de la solicitud envía los datos de la solicitud, la firma y el ID de la clave de acceso (el identificador clave de la clave de acceso secreta utilizada) a. AWS

  4. AWS usa el ID de clave de acceso para buscar la clave de acceso secreta.

  5. AWS genera una firma a partir de los datos de la solicitud y la clave de acceso secreta mediante el mismo algoritmo utilizado para calcular la firma de la solicitud.

  6. Si las firmas coinciden, se considera que la solicitud es auténtica. Si la comparación falla, se descarta la solicitud y AWS devuelve una respuesta de error.

nota

Si una solicitud contiene un parámetro Timestamp, la firma calculada para la solicitud caduca 15 minutos después de su valor.

Si una solicitud contiene un parámetro Expires, la firma caduca en el momento especificado por el parámetro Expires.

Para calcular la firma de la solicitud
  1. Cree la cadena de consulta canónica que necesitará más adelante en este procedimiento:

    1. Ordene los UTF -8 componentes de la cadena de consulta por nombre de parámetro con un orden natural de bytes. Los parámetros pueden provenir del cuerpo GET URI o del POST cuerpo (cuando Content-Type es x-www-form-urlencoded application/).

    2. URLcodifique el nombre y los valores del parámetro según las siguientes reglas:

      1. No URL codifique ninguno de los caracteres no reservados que RFC define 3986. Estos caracteres no reservados son A–Z, a–z, 0–9, guion (-), carácter de subrayado (_), punto (.) y tilde (~).

      2. Codifique con signos de porcentaje el resto de los caracteres con %XY, donde X e Y son caracteres hexadecimales (0-9 y A-F mayúsculas).

      3. Codifique porcentaje de caracteres extendidos de 8 a UTF 8 en el formato %XY%ZA...

      4. Codifique con el signo de porcentaje el carácter de espacio como %20 y no como + (lo que se hace en las codificaciones comunes).

    3. Separe los nombres de los parámetros codificados de sus valores codificados con el signo igual (=) (ASCIIcarácter 61), incluso si el valor del parámetro está vacío.

    4. Separe los pares nombre-valor con un signo (&) (ASCIIcódigo 38).

  2. Cree la cadena para firmar de acuerdo con la siguiente pseudogramática (la «\n» representa una nueva línea). ASCII

    StringToSign = HTTPVerb + "\n" + ValueOfHostHeaderInLowercase + "\n" + HTTPRequestURI + "\n" + CanonicalizedQueryString <from the preceding step>

    El HTTPRequestURI componente es el componente de la ruta HTTP absoluta de la cadena de consulta que va URI hasta la cadena de consulta, pero no la incluye. Si HTTPRequestURI está vacío, utilice una barra inclinada (/).

  3. Calcula un RFC número 2104 compatible HMAC con la cadena que acabas de crear, tu clave de acceso secreta como clave SHA256 o SHA1 como algoritmo de hash.

    Para obtener más información, consulte https://www.ietf.org/rfc/rfc2104.txt.

  4. Convierta el valor resultante en base 64.

  5. Incluya el valor como valor del parámetro Signature de la solicitud.

A continuación se muestra una solicitud de muestra (se han agregado saltos de línea para facilitar la lectura).

https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheClusters &CacheClusterIdentifier=myCacheCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01

Para la cadena de consulta anterior, calcularía la HMAC firma sobre la cadena siguiente.

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:

El resultado es la siguiente solicitud firmada.

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 obtener información detallada acerca del proceso de firma y el cálculo de la firma de la solicitud, consulte el tema Proceso de firma Signature Version 4 y sus subtemas.