AWS API 요청 서명의 요소
중요
AWS SDK 또는 CLI를 사용하지 않는 한 요청에 인증 정보를 제공하는 서명을 계산하는 코드를 작성해야 합니다. AWS 서명 버전 4의 서명 계산은 복잡한 작업일 수 있으므로 가능한 경우 AWS SDK 또는 CLI를 사용하는 것이 좋습니다.
서명 버전 4를 사용하는 각 HTTP/HTTPS 요청은 이러한 요소를 반드시 포함해야 합니다.
엔드포인트 사양
요청을 전송할 엔드포인트의 DNS 이름을 지정합니다. 이 이름에는 일반적으로 서비스 코드와 리전이 포함됩니다. 예를 들어 us-east-1
리전에서 Amazon DynamoDB의 엔드포인트는 dynamodb.us-east-1.amazonaws.com
입니다.
HTTP/1.1 요청의 경우에는 Host
헤더를 반드시 포함해야 합니다. HTTP/2 요청의 경우에는 :authority
헤더나 Host
헤더를 포함할 수 있습니다. HTTP/2 사양의 규정 준수용으로는 :authority
헤더만 사용하십시오. 모든 서비스가 HTTP/2 요청을 지원하는 것은 아닙니다.
각 서비스에서 지원하는 엔드포인트에 대한 자세한 내용은 AWS 일반 참조의 서비스 엔드포인트 및 할당량을 참조하세요.
작업
서비스에 대한 API 작업을 지정합니다. DynamoDB CreateTable
작업 또는 Amazon EC2 DescribeInstances
작업을 예로 들 수 있습니다.
각 서비스에서 지원하는 작업은 서비스 승인 참조를 참조하세요.
작업 파라미터
요청에 지정된 작업의 파라미터를 지정합니다. 각 AWS API 작업에는 필수 및 선택적 파라미터 세트가 있습니다. API 버전은 대부분 필수 파라미터입니다.
API 작업에서 지원하는 파라미터는 해당 서비스의 API 참조를 참조하세요.
날짜
요청의 날짜 및 시간을 지정합니다. 요청에 날짜 및 시간을 포함하면 제3자가 요청을 가로채고 나중에 다시 전송하지 못하도록 차단할 수 있습니다. 보안 인증 범위에 지정하는 날짜는 요청의 날짜와 일치해야 합니다.
타임스탬프는 협정 세계시(UTC)이고 YYYYMMDDTHHMMSSZ ISO 8601 형식이어야 합니다. 예: 20220830T123600Z
. 타임스탬프에 밀리초를 포함하지 마십시오.
date
또는 x-amz-date
헤더를 사용하거나 x-amz-date
를 쿼리 파라미터로 포함할 수 있습니다. x-amz-date
헤더를 찾을 수 없는 경우 date
헤더를 찾습니다.
인증 정보
사용자가 전송하는 각 요청에는 다음 정보가 포함되어야 합니다. AWS는 이 정보를 사용하여 요청의 유효성 및 진위를 확인합니다.
-
알고리즘 -
AWS4-HMAC-SHA256
을 사용하여HMAC-SHA256
해시 알고리즘으로 서명 버전 4를 지정합니다. -
보안 인증 정보 - 액세스 키 ID, YYYYMMDD 형식의 날짜, 리전 코드, 서비스 코드 및
aws4_request
종료 문자열로 구성된 문자열로, 슬래시(/)로 구분됩니다. 리전 코드, 서비스 코드 및 종료 문자열에는 소문자를 사용해야 합니다.AKIAIOSFODNN7EXAMPLE
/YYYYMMDD
/region
/service
/aws4_request -
서명된 헤더 - 서명에 포함할 HTTP 헤더로, 세미콜론(;)으로 구분됩니다. 예:
host;x-amz-date
. -
서명 - 계산된 서명을 나타내는 16진수로 인코딩된 문자열입니다.
Algorithm
파라미터에서 지정한 알고리즘을 사용해 서명을 계산해야 합니다.
자세한 내용은 인증 방법 섹션을 참조하세요.