View a markdown version of this page

요청 인증: POST를 사용한 브라우저 기반 업로드(AWS 서명 버전 4) - Amazon Simple Storage Service

요청 인증: POST를 사용한 브라우저 기반 업로드(AWS 서명 버전 4)

Amazon S3는 사용자가 Amazon S3에 직접 콘텐츠를 업로드할 수 있도록 HTTP POST 요청을 지원합니다. HTTP POST를 사용하여 콘텐츠를 업로드하면 사용자가 Amazon S3에 저장할 데이터를 업로드할 때 업로드 과정이 간소화되고 업로드 지연 시간이 단축됩니다. 이 섹션에서는 HTTP POST 요청을 인증하는 방법을 설명합니다. HTTP POST 요청, 양식 생성 방법, POST 정책 생성 방법 및 예제에 대한 자세한 내용은 POST를 사용한 브라우저 기반 업로드(AWS 서명 버전 4) 섹션을 참조하세요.

HTTP POST 요청을 인증하려면 다음을 수행합니다.

  1. 양식에는 Amazon S3가 요청을 수신하면 서명을 다시 계산하는 데 사용할 수 있는 서명 및 관련 정보를 제공하는 다음 필드가 포함되어야 합니다.

    요소 이름 설명
    policy

    요청에서 허용되는 항목을 설명하는 Base64로 인코딩된 보안 정책입니다. 서명 계산의 경우 이 정책은 서명하는 문자열입니다. Amazon S3는 서명을 다시 계산할 수 있도록 이 정책을 가져와야 합니다.

    x-amz-algorithm

    사용된 서명 알고리즘입니다. AWS 서명 버전 4의 경우 값은 AWS4-HMAC-SHA256입니다.

    x-amz-credential

    액세스 키 ID 외에도 서명 계산을 위한 서명 키 계산에 사용한 범위 정보를 제공합니다.

    이는 다음 형식의 문자열입니다.

    <your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

    예제:

    AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request. .

    Amazon S3의 경우 aws-service 문자열은 s3입니다. Amazon S3 aws-region 문자열의 목록은 AWS 일반 참조리전 및 엔드포인트를 참조하세요.

    x-amz-date

    ISO8601 형식의 날짜 값입니다. 예를 들어 20130728T000000Z입니다.

    이 값은 서명 키를 생성할 때 사용한 날짜와 동일합니다. 또한 서명한 정책(x-amz-date)에 제공한 값과도 동일해야 합니다.

    x-amz-signature

    (AWS 서명 버전 4) 보안 정책의 HMAC-SHA256 해시입니다.

    서명 옵션에 대한 자세한 내용은 AWS 일반 참조HTTP 요청에 서명 추가를 참조하세요.

  2. POST 정책은 다음 요소를 포함해야 합니다.

    요소 이름 설명
    x-amz-algorithm

    서명 계산에 사용한 알고리즘입니다. AWS 서명 버전 4의 경우 값은 AWS4-HMAC-SHA256입니다.

    x-amz-credential

    액세스 키 ID 외에도 서명 계산을 위한 서명 키 계산에 사용한 범위 정보를 제공합니다.

    이는 다음 형식의 문자열입니다.

    <your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

    예:

    AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request. .

    x-amz-date

    ISO8601 형식 문자열에 지정된 날짜 값입니다. 예를 들어 '20130728T000000Z'입니다. 이 날짜는 서명 계산을 위한 서명 키를 생성할 때 사용한 날짜와 동일해야 합니다.

  3. 서명 계산의 경우 POST 정책은 서명할 문자열입니다.

서명 계산

다음 다이어그램은 서명 계산 프로세스를 보여줍니다.

StringToSign, SigningKey 및 서명 단계를 포함한 AWS 서명 계산 프로세스입니다.

서명을 계산하려면
  1. UTF-8 인코딩을 사용하여 정책을 생성합니다.

  2. UTF-8로 인코딩된 정책을 Base64로 변환합니다. 결과는 서명할 문자열입니다.

  3. 서명할 문자열의 HMAC-SHA256 해시로 서명을 생성합니다. 서명 키를 해시 함수의 키로 제공합니다.

  4. 16진수 인코딩을 사용하여 서명을 인코딩합니다.

HTML 양식, 보안 정책 및 예제 생성에 대한 자세한 내용은 다음 하위 주제를 참조하세요.