아마존 웹 서비스를 다루는 기술 12장 - 4.3. Canned Policy를 사용한 Signed URL 생성하기
저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
전 세계에 콘텐츠를 배포하는 CDN 서비스인 CloudFront
이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30
Canned Policy를 사용한 Signed URL 생성하기
이제 Signed URL을 직접 생성해보겠습니다. Signed URL은 보통 애플리케이션에서 자체적으로 생성하여 사용합니다. 따라서 Java, PHP, C# 등의 프로그래밍 언어로 생성하는 것이 편리합니다. 하지만 프로그래밍 언어로 하나하나 설명하기에는 내용이 너무 길어지므로 Linux에서 커맨드라인 명령으로 간단하게 생성하는 방법을 알아보겠습니다.
먼저 Canned Policy를 사용한 Signed URL 생성 방법을 알아보겠습니다. Canned Policy에서 Canned는 미리 준비 되어 있는 상태를 뜻합니다. 따라서 CloudFront 배포 서버에서 정책을 이미 알고 있기 때문에 URL에 정책 내용이 포함되지 않습니다.
EC2 인스턴스 혹은 Linux가 설치된 컴퓨터에 SSH로 접속합니다. 그리고 텍스트 편집기를 열고 아래와 같이 작성한 뒤 canned_policy.js로 저장합니다.
- Resource: 제가 생성한 CloudFront 배포의 도메인은 d38443sd7c5866.cloudfront.net 입니다. 여기서 도메인은 여러분들이 생성한 CloudFront 배포의 도메인을 입력합니다. http://d38443sd7c5866.cloudfront.net/index.html과 같이 http://를 포함한 CloudFront 배포 도메인과 파일의 경로를 포함한 파일명을 입력합니다.
- DateLessThan → AWS:EpochTime: Signed URL에서는 이 만료날짜 값이 필수입니다. 그리고 UTC 형식을 사용해야 합니다. 위의 정책 파일에서 1399206886 값은 이미 지나가버린 시간 값이므로 그대로 사용하면 Signed URL이 동작하지 않습니다. 꼭 미래의 시간 값을 사용하기 바랍니다.
canned_policy.json
{
"Statement": [{
"Resource": "http://d38443sd7c5866.cloudfront.net/index.html",
"Condition": {
"DateLessThan": {
"AWS:EpochTime": 1399206886
}
}
}]
}