AWS API 요청 서명의 요소 - AWS Identity and Access Management

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 파라미터에서 지정한 알고리즘을 사용해 서명을 계산해야 합니다.