WAF를 사용하여 hot-linking 지원
개요
영상과 이미지 등을 보내는 링크 등이 있다고 생각하지만, 외부 서비스에 링크가 붙는 등 이용되기 싫은 경우가 있다고 생각한다.서버 쪽에서는 nginx 등을 통해 제어할 수 있지만, 급격한 스파이크나 트래픽 등을 의식하고 싶지 않아 CDN(CloudFront)이 가능하다면 AWS WAF를 통해 제어할 수 있다는 걸 최근에 알았다(땀)
AWF WAF
https://console.aws.amazon.com/waf/home
상세한 IP 제한, 파라미터 제한, 지역 제한 등을 할 수 있다
대상 자원은 클라우드 프론트뿐만 아니라 ALB와 API Gateway도 합작 대상이 될 수 있다.
이번에는 직접 링크 (Hot-linking) 에 접근할 수 없도록 s3 도메인 이름만 허용합니다.
설정 방법
웹 ACLs에서 제작하면 이해하기 어려워서 String and regexmatching에서 제작했습니다.
String and regexmatching: 조건 설정
여기에 객체의 기준을 설정합니다.
URL, 매개변수, 헤더 등의 세부 조건을 지정할 수 있습니다.
domain-check이라는 이름으로 제작되어 이번에 헤더의 기계를 검사합니다.
Rule
규칙을 작성합니다.여러 조건을 링크할 수 있습니다.
domain-rule라는 이름으로 새로 만들고 방금 만든 조건의domain-check을 연결합니다.
웹 ACLs 설정
domain-rule를 연결하여 이번에 사전 제작된 CloudFront를 지정합니다.
Edit ACLs
Edit ACLs에서 조건을 지정합니다.
조건에 맞는 것만 허용!를 설정합니다.
즉 s3를 거치지 않으면 접근할 수 없다는 것이다.
직접 연결
기대대로 방문할 수 없습니다.
s3에서 "" 액세스
다음 버전을 만들고 CloudFront의 비디오를 참조합니다.
test.html
<video width="640" height="360" controls>
<source src="http://xxxxx.cloudfront.net/tmp/test.mp4" type="video/mp4">
</video>
비디오에 액세스할 수 있습니다.결론
WAF를 사용하는 경우 UI에 간단히 등록하고 제한할 수 있습니다.
더 세밀한 규칙과 조건을 만들면 더 견고한 것을 제공할 수 있다.
청구수에 따라 요금을 받기 때문에 필요한 자원만 제한하는 것이 좋다.
Reference
이 문제에 관하여(WAF를 사용하여 hot-linking 지원), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ytanaka3/items/92ee256277e7bdbd8c0f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)