POST를 사용한 브라우저 기반 업로드(AWS 서명 버전 4)
이 섹션에서는 HTTP POST 요청을 사용하여 브라우저를 통해 Amazon S3에 직접 파일을 업로드하는 방법을 설명합니다. 또한 Amazon S3에 대한 브라우저 기반 파일 업로드에 AWS Amplify JavaScript 라이브러리를 사용하는 방법에 대한 정보도 포함되어 있습니다.
주제
HTTP POST를 사용한 브라우저 기반 업로드
Amazon S3는 사용자가 Amazon S3에 직접 콘텐츠를 업로드할 수 있도록 HTTP POST 요청을 지원합니다. POST를 사용하면 최종 사용자가 자격 증명을 보호하는 보안 중개 노드를 통해 데이터를 전달하지 않고도 요청을 인증할 수 있습니다. 따라서 HTTP POST는 지연 시간을 줄일 가능성이 있습니다.
다음 그림은 POST 요청을 사용한 Amazon S3 업로드를 보여 줍니다.
-
사용자가 웹 브라우저에서 페이지에 액세스합니다.
-
웹페이지는 사용자가 Amazon S3에 콘텐츠를 업로드하는 데 필요한 모든 정보가 들어 있는 HTML 양식을 포함합니다.
-
사용자가 웹 브라우저를 통해 Amazon S3에 콘텐츠를 업로드합니다.
브라우저 기반 POST 요청을 전송하는 프로세스는 다음과 같습니다.
-
객체를 업로드할 수 있는 버킷 이름, 생성 중인 객체에 대해 허용할 키 이름 접두사 등 요청에서 허용할 조건을 지정하는 보안 정책을 생성합니다.
-
정책을 기반으로 서명을 생성합니다. 인증된 요청의 경우 양식에 유효한 서명과 정책이 포함되어야 합니다.
-
사용자가 Amazon S3 버킷에 객체를 업로드하기 위해 액세스할 수 있는 HTML 양식을 생성합니다.
다음 섹션에서는 요청을 인증하기 위한 서명을 생성하는 방법을 설명합니다. 양식 및 보안 정책 생성에 대한 자세한 내용은 HTML 양식 생성(AWS 서명 버전 4 사용) 섹션을 참조하세요.
서명 계산
인증된 요청의 경우 HTML 양식에 보안 정책 및 서명에 대한 필드가 포함되어야 합니다.
서명을 계산하려면
-
UTF-8 인코딩을 사용하여 정책을 생성합니다.
-
UTF-8로 인코딩된 정책 바이트를 Base64로 변환합니다. 결과는
StringToSign입니다. -
서명 키를 생성합니다.
-
서명 키를 사용하여 HMAC-SHA256 서명 알고리즘으로
StringToSign에 서명합니다.
HTML 양식, 보안 정책 및 예제 생성에 대한 자세한 내용은 다음을 참조하세요.