> 작성일 : 2025-05-16
업로드한 이미지 주소를 다른 사이트 또는 앱에 무분별하게 사용할 경우 과도한 트레픽 비용이 발생함
* 특정 국가로 차단
* AWS WAF 활성화
- IP 주소, 리퍼러 기반 차단
* S3 버킷 정책 추가
* CloudFront Functions, Lambda@Edge
- 사용자 지정코드로 유연하게 접근제어
CloudFront Functions 기반으로 특정 요청 제한 적용
function handler(event) {
const request = event.request;
const headers = request.headers;
const referer = headers.referer ? headers.referer.value : null;
const urlList = [
'https://www.allowed.com/',
'https://allowed.com/'
];
if (!referer || !urlList.includes(referer)) {
const response = {
statusCode: 403,
statusDescription: 'Forbidden',
headers: {
'content-type': { value: 'text/plain' },
'cache-control': { value: 'max-age=0, no-cache, no-store, must-revalidate' },
},
body: { value: 'Access Denied.' },
};
return response;
}
return request;
}
function handler(event) {
const request = event.request;
const headers = request.headers;
const referer = headers.referer ? headers.referer.value : null;
const urlList = [
'https://not.allowed.com/'
];
if (referer && urlList.includes(referer)) {
const response = {
statusCode: 403,
statusDescription: 'Forbidden',
headers: {
'content-type': { value: 'text/plain' },
'cache-control': { value: 'max-age=0, no-cache, no-store, must-revalidate' },
},
body: { value: 'Access Denied.' },
};
return response;
}
return request;
}
배포 목록에서 생성된 ID를 선택하고 일반 탭 : 설정 우측상단의 편집 클릭
서비스를 고려하여 3가지 요금 계층 (Price Class) 중 선택할 필요가 있다.
성능이 최우선 고려가 아니고 적은 비용을 원한다면 세번째 옵션을 선택한다.
* Use North America, Europe, Asia, Middle East, and Africa
Origin Shield를 사용하게 되면 오리진 서버의 부하를 분산 시킬 수 있다.
* 추가적인 데이터 전송 비용 발생을 고려해야 한다.
* 오리진 서버 부하 감소를 성능향상 기대할 수 있다.
배포 목록에서 생성된 ID를 선택하고 원본 탭에서 버킷명을 선택 후 편집 클릭
Enable Origin Shield에서 예를 클릭하고 리전을 선택
Tags : S3 이미지 서버, S3 CloudFront, AWS 이미지 서비스, 이미지 서비스 관리