CloudFront Signed URL / Signed Cookies
- 클라우드 프론트 분산을 비공개로 만들기 위해서는 세계 각지의 사람들에게 프리미엄 유료 콘텐츠에 대한 액세스를 주어야 함
- 이 때 누가 어떤 클라우드 프론트 분산에 액세스하는지 알기 위해서 클라우드 프론트 서명된 URL이나 쿠키를 사용
- URL과 쿠키를 생성할 때는 정책을 연결해
해당 URL이나 쿠키가 언제 만료되는지 이 데이터에 액세스할 수 있는 IP 범위는 어디인지를 지정해야 함
그 후 만약 클라이언트의 대상 IP를 알 경우 사용이 가능 - 또한 어떤 AWS 계정이 서명된 URL을 생성할 수 있는지를 의미하는 신뢰할 수 있는 서명자도 지정해야 함
- 영화나 음악과 같은 콘텐츠를 공유할 대는 몇 분 정도는 짧아도 되지만
해당 사용자가 장기간 액세스할 수 있어야 하는 비공개 콘텐츠의 경우에는
URL이나 서명된 쿠키가 수년간 지속되어 유효해야할 수 있음 - 서명된 URL은 개별 파일에 대한 액세스를 주며, 파일별로 하나의 URL이 존재
- 서명된 쿠키는 다수의 파일에 액세스를 주며, 다수의 파일에 서명된 쿠키는 하나로 해당 쿠키는 재사용이 가능
CloudFront Signed URL Diagram
- 클라우드 프론트 분산이 있고 여러 개의 엣지 로케이션이 있을 때 보안을 위해 OAI를 이용해 S3 버킷에 액세스하려고 할 때
이 때 클라우드 프론트를 통해 사람들에게 객체에 대한 액세스를 제공하려고 한다면
클라이언트는 애플리케이션으로 허가 및 승인을 보낼 것이고
애플리케이션은 AWS SDK를 사용해 서명된 URL을 클라이언트에게 반환하고
클라이언트는 서명된 URL을 이용해 데이터와 파일과 객체 등 클라우드 프론트에서 원하는 것을 직접 얻을 수 있음
서명된 URL 뿐만 아니라 쿠키도 방식이 동일
CloudFront Signed URL vs S3 Pre-Signed URL
- 클라우드 프론트 서명된 URL은 오리진에 상관 없이 경로에 대한 액세스를 허용하기 때문에
S3 오리진 뿐만 아니라 원하는 모든 HTTP 백엔드 오리진에 작동
또한 이는 계정 내 키 페어이기 때문에 루트만 관리할 수 있고 IP, 경로, 날짜, 만료 등으로 필터링할 수 있으며
클라우드 프론트에 있는 모든 캐싱 기능을 활용할 수 있음
클라우드 프론트 분산에 서명된 URL을 사용하는 클라이언트가 있고
클라우드 프론트 분산은 오리진인 EC2 인스턴스로 통신을 보내게 되며 동작 - S3 미리 서명된 URL은 URL에 미리 서명한 사람으로서 요청을 발생하므로 IAM 원칙으로 URL에 서명하고
서명을 위해 IAM 키를 사용하게 되면 해당 URL을 가진 사람을 같은 권한을 같게 되며 수명이 제한적
이 미리 서명된 URL을 사용해 클라이언트가 직접 S3 버킷에 액세스할 수 있음
- 만약 클라우드 프론트 분산에 액세스하길 원하고 S3 앞에 있는 경우라면 OAI로 제한하는 버킷 정책 때문에
S3 버킷에 액세스할 수 없으므로 서명된 URL(CloudFront Signed URL)을 사용해야만 함
반면, 클라우드 프론트를 사용하지 않고 사용자들이 직접 S3 버킷으로 액세스해 파일을 사용하길 원한다면
미리 서명된 URL(S3 Pre-Signed RUL)이 적합
'Cloud > AWS' 카테고리의 다른 글
[SAA] AWS Global Accelerator (0) | 2022.03.29 |
---|---|
[SAA] CloudFront 고급 개념 (0) | 2022.03.29 |
[SAA] CloudFront 개요 (0) | 2022.03.29 |
[SAA] S3 잠금 정책 및 Glacier 볼트 잠금 (0) | 2022.03.28 |
[SAA] Athena 개요 (0) | 2022.03.28 |