쿼리 사용 API - Amazon MemoryDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

쿼리 사용 API

쿼리 파라미터

HTTP 쿼리 기반 요청은 HTTP 동사 GET 또는 POST 및 라는 쿼리 파라미터를 사용하는 HTTP 요청입니다Action.

각 쿼리 요청은 인증 및 작업을 처리할 수 있도록 일부 공통 파라미터를 포함해야 합니다.

일부 작업은 파라미터의 목록을 허용합니다. 이러한 목록은 param.n 표기법을 사용하여 지정됩니다. 값 n 는 1부터 시작하는 정수입니다.

쿼리 요청 인증

쿼리 요청은 로만 보낼 수 HTTPS 있으며 모든 쿼리 요청에 서명을 포함해야 합니다. 이 섹션에서는 서명을 작성하는 방법을 설명합니다. 아래 절차에 설명된 방법은 서명 버전 4라고 합니다.

다음은 AWS에 대한 요청을 인증하는 데 사용되는 기본 단계입니다. 이는 사용자가 에 등록되어 AWS 있고 액세스 키 ID와 보안 액세스 키가 있다고 가정합니다.

쿼리 인증 절차
  1. 발신자는 에 대한 요청을 구성합니다 AWS.

  2. 발신자는 이 주제의 다음 섹션에 정의된 대로 -SHA1 해시 함수를 사용하여 요청 서명인 해시 기반 메시지 인증 코드(HMAC)를 키로 입력합니다.

  3. 요청 발신자는 요청 데이터, 서명 및 액세스 키 ID(사용된 보안 액세스 키의 키 식별자)를 로 전송합니다 AWS.

  4. AWS 는 액세스 키 ID를 사용하여 보안 액세스 키를 조회합니다.

  5. AWS 는 요청의 서명을 계산하는 데 사용된 것과 동일한 알고리즘을 사용하여 요청 데이터와 보안 액세스 키에서 서명을 생성합니다.

  6. 서명이 일치하는 경우, 요청이 인증되는 것으로 간주됩니다. 서명이 일치하지 않을 경우, 요청이 삭제되고 AWS 에서 오류 응답을 반환합니다.

참고

Timestamp 매개 변수가 요청에 포함된 경우, 요청에 대해 계산된 서명은 그 매개 변수 값보다 15분 후에 만료됩니다.

Expires 매개 변수가 요청에 포함된 경우, 그 서명은 Expires 매개 변수에 의해 지정된 시간에 만료됩니다.

요청 서명을 계산하려면
  1. 정규화된 쿼리 문자열을 만듭니다. 이 절차의 뒷부분에서 필요합니다.

    1. 파라미터 이름별로 UTF-8 쿼리 문자열 구성 요소를 자연 바이트 정렬로 정렬합니다. 파라미터는 에서 GET URI 또는 POST 본문에서 가져올 수 있습니다(콘텐츠 유형이 애플리케이션/인 경우x-www-form-urlencoded).

    2. URL 다음 규칙에 따라 파라미터 이름과 값을 인코딩합니다.

      1. RFC 3986에서 정의한 예약되지 않은 문자는 URL 인코딩하지 마세요. 이러한 예약되지 않은 문자는 A~Z, a~z, 0~9, 하이픈( - ), 밑줄( _ ), 마침표( . ) 및 물결표(~)입니다.

      2. %XY와 같이 모든 기타 문자를 퍼센트 인코딩합니다(여기서 X 및 Y는 16진 문자 0~9 및 대문자 A~F).

      3. 백분율 인코딩 확장 UTF-8자, %XY%ZA... 형식.

      4. 공백 문자는 %20(일반 인코딩 구조인 +가 아님)으로 퍼센트 인코딩합니다.

    3. 파라미터 값이 비어 있더라도 인코딩된 파라미터 이름과 인코딩된 값을 등호( = )(ASCII 문자 61)로 구분합니다.

    4. 이름-값 페어를 앰퍼샌드( & )(ASCII 코드 38)로 구분합니다.

  2. 다음 의사 문법에 따라 서명할 문자열을 생성합니다(“\n”은 ASCII 새 줄을 나타냄).

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

    구성 HTTPRequestURI 요소는 쿼리 문자열을 포함하지 않는 URI 최대 의 HTTP 절대 경로 구성 요소입니다. HTTPRequestURI 가 비어 있는 경우 슬래시( / )를 사용합니다.

  3. 방금 생성한 문자열, 보안 액세스 키를 키로, SHA256 또는 RFC 해시 알고리즘SHA1으로 HMAC 2104를 준수합니다.

    자세한 내용은 https://www.ietf.org/rfc/rfc2104.txt를 참조하세요.

  4. 결과 값을 base64로 변환합니다.

  5. 요청에서 Signature 매개 변수 값을 값으로 포함합니다.

예를 들어, 다음은 샘플 요청입니다(줄 바꿈이 명확성을 위해 추가됨).

https://memory-db.us-east-1.amazonaws.com/ ?Action=DescribeClusters &ClusterName=myCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2021-01-01

이전 쿼리 문자열의 경우 다음 문자열을 통해 HMAC 서명을 계산합니다.

GET\n memory-db.amazonaws.com\n Action=DescribeClusters &ClusterName=myCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2021-01-01 &X-Amz-Algorithm=Amazon4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE%2F20140523%2Fus-east-1%2Fmemorydb%2Faws4_request &X-Amz-Date=20210801T223649Z &X-Amz-SignedHeaders=content-type%3Bhost%3Buser-agent%3Bx-amz-content-sha256%3Bx-amz-date content-type: host:memory-db.us-east-1.amazonaws.com user-agent:ServicesAPICommand_Client x-amz-content-sha256: x-amz-date:

이 결과는 다음의 서명된 요청입니다.

https://memory-db.us-east-1.amazonaws.com/ ?Action=DescribeClusters &ClusterName=myCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2021-01-01 &X-Amz-Algorithm=Amazon4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20141201/us-east-1/memorydb/aws4_request &X-Amz-Date=20210801T223649Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=2877960fced9040b41b4feaca835fd5cfeb9264f768e6a0236c9143f915ffa56

서명 프로세스 및 요청 서명 계산에 대한 자세한 내용은 서명 버전 4 서명 프로세스 항목과 그 하위 항목을 참조하세요.