1. 설정하는 이유

S3 내 컨텐츠를 특정 사이트에서만 서비스하려고 함


2. 방법

해당 S3 버킷의 [권한] -> [버킷 정책]에 정책을 설정한다.

{
    "Version": "2012-10-17",
    "Id": "http referer policy",
    "Statement": [
        {
            "Sid": "Allow get requests originated from mydomain.com and www.mydomain.com",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/*",
            "Condition": {
                "StringLike": {
                    "aws:Referer": [
                        "http://mydomain.com/*",
                        "http://www.mydomain.com/*"
                    ]
                }
            }
        }
    ]
}

3. 주의사항

이 정책을 IAM policy로 만들어 쓰려고 했을 때는 에러가 발생한다.

  • 이 정책에 다음 오류가 포함되어 있습니다: Has prohibited field Id For more information about the IAM policy grammar, see AWS IAM Policies
  • 이 정책에 다음 오류가 포함되어 있습니다: Has prohibited field Principal F* or more information about the IAM policy grammar, see AWS IAM Policies

* Principal: 정책을 적용할 대상이다. 위에서는 인터넷 전체에 공개할 것이므로 *이다.