기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
쿼리 사용 API
쿼리 파라미터
HTTP 쿼리 기반 요청은 HTTP 동사 GET 또는 POST 및 라는 쿼리 파라미터를 사용하는 HTTP 요청입니다Action
.
각 쿼리 요청은 인증 및 작업을 처리할 수 있도록 일부 공통 파라미터를 포함해야 합니다.
일부 작업은 파라미터의 목록을 허용합니다. 이러한 목록은 param.
표기법을 사용하여 지정됩니다. 값 n
n
는 1부터 시작하는 정수입니다.
쿼리 요청 인증
쿼리 요청은 로만 보낼 수 HTTPS 있으며 모든 쿼리 요청에 서명을 포함해야 합니다. 이 섹션에서는 서명을 작성하는 방법을 설명합니다. 아래 절차에 설명된 방법은 서명 버전 4라고 합니다.
다음은 AWS에 대한 요청을 인증하는 데 사용되는 기본 단계입니다. 이는 사용자가 에 등록되어 AWS 있고 액세스 키 ID와 보안 액세스 키가 있다고 가정합니다.
쿼리 인증 절차
-
발신자는 에 대한 요청을 구성합니다 AWS.
-
발신자는 이 주제의 다음 섹션에 정의된 대로 -SHA1 해시 함수를 사용하여 요청 서명인 해시 기반 메시지 인증 코드(HMAC)를 키로 입력합니다.
-
요청 발신자는 요청 데이터, 서명 및 액세스 키 ID(사용된 보안 액세스 키의 키 식별자)를 로 전송합니다 AWS.
-
AWS 는 액세스 키 ID를 사용하여 보안 액세스 키를 조회합니다.
-
AWS 는 요청의 서명을 계산하는 데 사용된 것과 동일한 알고리즘을 사용하여 요청 데이터와 보안 액세스 키에서 서명을 생성합니다.
-
서명이 일치하는 경우, 요청이 인증되는 것으로 간주됩니다. 서명이 일치하지 않을 경우, 요청이 삭제되고 AWS 에서 오류 응답을 반환합니다.
참고
Timestamp
매개 변수가 요청에 포함된 경우, 요청에 대해 계산된 서명은 그 매개 변수 값보다 15분 후에 만료됩니다.
Expires
매개 변수가 요청에 포함된 경우, 그 서명은 Expires
매개 변수에 의해 지정된 시간에 만료됩니다.
요청 서명을 계산하려면
-
정규화된 쿼리 문자열을 만듭니다. 이 절차의 뒷부분에서 필요합니다.
-
파라미터 이름별로 UTF-8 쿼리 문자열 구성 요소를 자연 바이트 정렬로 정렬합니다. 파라미터는 에서 GET URI 또는 POST 본문에서 가져올 수 있습니다(콘텐츠 유형이 애플리케이션/인 경우x-www-form-urlencoded).
-
URL 다음 규칙에 따라 파라미터 이름과 값을 인코딩합니다.
-
RFC 3986에서 정의한 예약되지 않은 문자는 URL 인코딩하지 마세요. 이러한 예약되지 않은 문자는 A~Z, a~z, 0~9, 하이픈( - ), 밑줄( _ ), 마침표( . ) 및 물결표(~)입니다.
-
%XY와 같이 모든 기타 문자를 퍼센트 인코딩합니다(여기서 X 및 Y는 16진 문자 0~9 및 대문자 A~F).
-
백분율 인코딩 확장 UTF-8자, %XY%ZA... 형식.
-
공백 문자는 %20(일반 인코딩 구조인 +가 아님)으로 퍼센트 인코딩합니다.
-
-
파라미터 값이 비어 있더라도 인코딩된 파라미터 이름과 인코딩된 값을 등호( = )(ASCII 문자 61)로 구분합니다.
-
이름-값 페어를 앰퍼샌드( & )(ASCII 코드 38)로 구분합니다.
-
-
다음 의사 문법에 따라 서명할 문자열을 생성합니다(“\n”은 ASCII 새 줄을 나타냄).
StringToSign = HTTPVerb + "\n" + ValueOfHostHeaderInLowercase + "\n" + HTTPRequestURI + "\n" + CanonicalizedQueryString <from the preceding step>
구성 HTTPRequestURI 요소는 쿼리 문자열을 포함하지 않는 URI 최대 의 HTTP 절대 경로 구성 요소입니다. HTTPRequestURI 가 비어 있는 경우 슬래시( / )를 사용합니다.
-
방금 생성한 문자열, 보안 액세스 키를 키로, SHA256 또는 RFC 해시 알고리즘SHA1으로 HMAC 2104를 준수합니다.
자세한 내용은 https://www.ietf.org/rfc/rfc2104.txt를
참조하세요. -
결과 값을 base64로 변환합니다.
-
요청에서
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 서명 프로세스 항목과 그 하위 항목을 참조하세요.