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는 이 정보를 사용하여 요청의 유효성 및 진위를 확인합니다.
-
알고리즘 - 서명 프로세스의 일부로 사용하는 알고리즘.
-
SigV4 -
AWS4-HMAC-SHA256
을 사용하여HMAC-SHA256
해시 알고리즘으로 Signature Version 4를 지정합니다. -
SigV4a -
AWS4-ECDSA-P256-SHA256
을 사용하여 ECDSA-P256-SHA-256
해시 알고리즘을 지정합니다.
-
-
자격 증명 - 액세스 키 ID 및 자격 증명 범위 구성 요소를 연결하여 구성된 문자열.
-
SigV4 - 자격 증명 범위에는 액세스 키 ID, YYYYMMDD 형식의 날짜, 리전 코드, 서비스 코드,
aws4_request
종료 문자열(슬래시(/)로 구분됨)이 포함됩니다. 리전 코드, 서비스 코드 및 종료 문자열에는 소문자를 사용해야 합니다.AKIAIOSFODNN7EXAMPLE
/YYYYMMDD
/region
/service
/aws4_request -
SigV4a - 자격 증명 범위에는 YYYYMMDD 형식의 날짜, 서비스 이름,
aws4_request
종료 문자열(슬래시(/)로 구분됨)이 포함됩니다. 리전이 별도의 헤더(X-Amz-Region-Set
)에 포함되므로 자격 증명 범위에는 리전이 포함되지 않습니다.AKIAIOSFODNN7EXAMPLE
/YYYYMMDD
/service
/aws4_request
-
-
서명된 헤더 - 서명에 포함할 HTTP 헤더로, 세미콜론(;)으로 구분됩니다. 예:
host;x-amz-date
.SigV4a의 경우 요청이 유효한 리전 세트를 지정하는 리전 세트 헤더를 포함해야 합니다.
X-Amz-Region-Set
헤더는 쉼표로 구분된 값 목록으로 지정됩니다. 다음 예제는 us-east-1 및 us-west-1 리전 모두에서 요청을 수행할 수 있는 리전 헤더를 보여줍니다.X-Amz-Region-Set=us-east-1,us-west-1
리전에서 와일드카드(*)를 사용하여 여러 리전을 지정할 수 있습니다. 다음 예제에서 헤더는 us-west-1 및 us-west-2 모두에서 요청을 수행할 수 있도록 허용합니다.
X-Amz-Region-Set=us-west-*
-
서명 - 계산된 서명을 나타내는 16진수로 인코딩된 문자열입니다.
Algorithm
파라미터에서 지정한 알고리즘을 사용해 서명을 계산해야 합니다.
자세한 내용은 인증 방법 섹션을 참조하세요.