Amazon SWF에 대한 HMAC-SHA 서명 계산 - Amazon Simple Workflow Service

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

Amazon SWF에 대한 HMAC-SHA 서명 계산

Amazon SWF에 대한 모든 요청은 인증해야 합니다. AWS SDK에서는 요청에 자동으로 서명하고 토큰 기반 인증을 관리합니다. 그러나 자체 HTTP POST 요청을 작성하려는 경우 요청 인증의 일부로 HTTP POST Header 콘텐츠에 대한 x-amzn-authorization 값을 생성해야 합니다.

헤더 형식 지정에 대한 자세한 내용은 HTTP 헤더 콘텐츠 단원을 참조하십시오. AWS 버전 3 서명의 AWS SDK for Java 구현은 AWSSigner.java 클래스를 참조하십시오.

요청 서명 생성

HMAC-SHA 요청 서명을 생성하려면 AWS 자격 증명(액세스 키 ID 및 보안 키)을 얻어야 합니다.

중요

SHA1 또는 SHA256을 사용하여 요청에 서명할 수 있습니다. 그러나 서명 프로세스 전체에서 동일한 방법을 사용해야 합니다. 선택한 메서드는 HTTP 헤더의 Algorithm 이름 값과 일치해야 합니다.

요청 서명을 생성하려면

  1. HTTP 요청 헤더의 표준 양식을 생성합니다. HTTP 헤더의 표준 양식에는 다음이 포함됩니다.

    • host

    • x-amz-로 시작되는 모든 헤더 요소

    포함된 헤더에 대한 자세한 내용은 HTTP 헤더 콘텐츠 단원을 참조하십시오.

    1. 각 헤더 이름-값 페어의 경우 헤더 이름(헤더 값 아님)을 소문자로 변환합니다.

    2. 헤더 이름 맵을 쉼표로 구분된 헤더 값으로 작성합니다.

      x-amz-example: value1 x-amz-example: value2 => x-amz-example:value1,value2

      자세한 내용은 RFC 2616의 섹션 4.2를 참조하십시오.

    3. 각 헤더 이름-값 페어의 경우 이름-값 페어를 headerName:headerValue 형식의 문자열로 변환합니다. 콜론 양쪽에 공백이 없도록 하고, headerNameheaderValue 모두 시작 및 끝부분에서 공백을 잘라냅니다.

      x-amz-example1:value1,value2 x-amz-example2:value3
    4. 마지막 문자열을 포함하여 변환된 각 문자열 뒤에 새 줄(U+000A)을 삽입합니다.

    5. 변환된 문자열 컬렉션을 헤더 이름에 따라 영문자순으로 정렬합니다.

  2. 다음 항목이 포함된 서명할 문자열 값을 생성합니다.

    • 1: HTTP 메서드(POST), 뒤에서 줄바꿈합니다.

    • 2: 요청 URI(/), 뒤에서 줄바꿈합니다.

    • 3: 빈 문자열, 뒤에서 줄바꿈합니다.

      참고

      일반적으로 여기에 쿼리 문자열이 나타나지만 Amazon SWF는 쿼리 문자열을 사용하지 않습니다.

    • 4–n: 1단계에서 계산한 정규화된 요청 헤더를 나타내는 문자열로, 뒤에서 줄바꿈합니다. 이 새 줄 때문에 HTTP 요청의 헤더와 본문 사이에 빈 줄이 생깁니다. 자세한 내용은 RFC 2616를 참조하십시오.

    • 요청 본문 뒤에는 줄바꿈하지 않습니다.

  3. 서명할 문자열 값의 SHA256 또는 SHA1 다이제스트를 계산합니다. 프로세스 전체에서 동일한 SHA 메서드를 사용합니다.

  4. 이전 단계에서 생성된 값의 SHA256 또는 SHA1 다이제스트(사용하는 메서드에 따라 다름)와 GetSessionToken API 작업을 사용해 얻은 AWS Security Token Service의 임시 비밀 액세스 키를 사용하여 HMAC-SHA를 계산해 Base64로 인코딩합니다.

    참고

    Amazon SWF는 Base64로 인코딩된 HMAC-SHA 값 끝에 등호(=)가 있어야 합니다. Base64 인코딩 루틴에 등호가 추가되어 있지 않으면 값의 끝에 등호를 추가합니다.

    Amazon SWF 및 기타 AWS 서비스에서 임시 보안 인증을 사용하는 방법에 대한 자세한 내용은 IAM 사용자 설명서IAM으로 작업하는 AWS 서비스를 참조하십시오.

  5. Amazon SWF에 대한 HTTP 요청의 x-amzn-authorization 헤더에 Signature 이름에 대한 값으로 결과 값을 배치합니다.

  6. Amazon SWF는 요청을 확인하고 지정된 작업을 수행합니다.