요청 인증: POST를 사용한 브라우저 기반 업로드(AWS 서명 버전 4)
Amazon S3는 사용자가 Amazon S3에 직접 콘텐츠를 업로드할 수 있도록 HTTP POST 요청을 지원합니다. HTTP POST를 사용하여 콘텐츠를 업로드하면 사용자가 Amazon S3에 저장할 데이터를 업로드할 때 업로드 과정이 간소화되고 업로드 지연 시간이 단축됩니다. 이 섹션에서는 HTTP POST 요청을 인증하는 방법을 설명합니다. HTTP POST 요청, 양식 생성 방법, POST 정책 생성 방법 및 예제에 대한 자세한 내용은 POST를 사용한 브라우저 기반 업로드(AWS 서명 버전 4) 섹션을 참조하세요.
HTTP POST 요청을 인증하려면 다음을 수행합니다.
-
양식에는 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 S3aws-region문자열의 목록은 AWS 일반 참조의 리전 및 엔드포인트를 참조하세요.x-amz-dateISO8601 형식의 날짜 값입니다. 예를 들어
20130728T000000Z입니다.이 값은 서명 키를 생성할 때 사용한 날짜와 동일합니다. 또한 서명한 정책(
x-amz-date)에 제공한 값과도 동일해야 합니다.x-amz-signature(AWS 서명 버전 4) 보안 정책의 HMAC-SHA256 해시입니다.
서명 옵션에 대한 자세한 내용은 AWS 일반 참조의 HTTP 요청에 서명 추가를 참조하세요.
-
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-dateISO8601 형식 문자열에 지정된 날짜 값입니다. 예를 들어 '20130728T000000Z'입니다. 이 날짜는 서명 계산을 위한 서명 키를 생성할 때 사용한 날짜와 동일해야 합니다.
-
서명 계산의 경우 POST 정책은 서명할 문자열입니다.
서명 계산
다음 다이어그램은 서명 계산 프로세스를 보여줍니다.
서명을 계산하려면
-
UTF-8 인코딩을 사용하여 정책을 생성합니다.
-
UTF-8로 인코딩된 정책을 Base64로 변환합니다. 결과는 서명할 문자열입니다.
-
서명할 문자열의 HMAC-SHA256 해시로 서명을 생성합니다. 서명 키를 해시 함수의 키로 제공합니다.
-
16진수 인코딩을 사용하여 서명을 인코딩합니다.
HTML 양식, 보안 정책 및 예제 생성에 대한 자세한 내용은 다음 하위 주제를 참조하세요.