AWS CloudFront에 하위 도메인을 할당하고 https에서 S3의 이미지를 탐색합니다.

개요


img.hitou.nyango.com 라는 이미지 참조용 하위 도메인을 사용하여 S3 버킷에 저장된 이미지를 CloudFront에서 https 한정으로 참조시켰을 때의 순서입니다.
  • S3 버킷을 만들고 게시
  • 인증서를 얻고 ACM(AWS Certificate Manager) 에 등록
  • CloudFront Distribution 생성
  • DNS 설정 (발급 된 CloudFront 도메인을 하위 도메인의 CNAME에 할당)
  • CloudFront에 하위 도메인 설정

  • S3 버킷 생성 및 게시





    참조 이미지를 저장하는 S3 버킷을 만들고 게시합니다. 이렇게 하면 CloudFront에서 자동으로 추천 대상으로 인식하게 됩니다.

    S3 버킷의 퍼블릭 액세스 설정을 편집하는 방법 - Amazon Simple Storage Service

    덧붙여 유사한 기사에 「버킷명을 서브 도메인으로 한다」라고 쓰여져 있는 기사가 있습니다만, 이번의 유스 케이스에서는 이러한 제한은 없습니다. 모든 버킷 이름을 사용할 수 있습니다.
    또한 유사한 기사에 '정적 웹 호스팅 사용'이라고 쓰여진 기사가 있지만 이번 사용 사례에서는 필요하지 않습니다.

    인증서를 취득하고 ACM에 등록



    ★중요/취득시의 유의점★



    다음 작업은 '북부 버지니아(us-east-1)' 지역에서 수행해야 합니다. 다른 리전에서 취득 및 설정된 인증서는 CloudFront에서 인식되지 않는다는 함정이 있습니다.

    CloudFront 배포에 사용자 지정 SSL 인증서를 사용할 수 없는 이유는 무엇입니까?

    절차



    CloudFront에서 자체 하위 도메인을 사용하고 액세스를 https로 제한하려면 CloudFront에 인증서를 할당해야 합니다.

    SSL/TLS 인증서를 사용하도록 CloudFront 배포를 설정하는 방법은 무엇입니까?

    증명서는 외부의 것도 이용할 수 있습니다만 이번은 ACM(AWS Certificate Manager) 그리고 취득했습니다.

    ACM에서는 공개 인증서를 무료로 얻을 수 있습니다. 또한 인증서가 만료되기 전에 자동으로 갱신합니다.

    퍼블릭 인증서 요청(AWS 공식)

    덧붙여 이번 CloudFront에 할당한 서브 도메인은 다른 AWS 계정의 route53로 관리하고 있습니다만, 특별히 문제는 없었습니다.

    CloudFront Distribution 만들기



    배포판 만들기에 따라 CloudFront Distribution을 만듭니다. 이때 Custom SSL Certificate 가 무효화되고 있는 일이 있습니다만, 원인은 2개 생각할 수 있습니다.
  • 북부 버지니아 이외의 인증서를 발급하고 있습니다
  • 작동 중인 IAM 계정의 권한 부족. AdministratorAccess 가 부여되어 있어도 부족합니다. 다음 정책 추가가 필요했습니다.
  • {
        "Version": "2012-10-17",
        "Statement": {
            "Effect": "Allow",
            "Action": [
                "acm:ListCertificates",
                "cloudfront:List*",
                "cloudfront:Get*",
                "cloudfront:Update*",
                "iam:GetServerCertificate",
                "iam:ListServerCertificates",
                "iam:UpdateServerCertificate"
            ],
            "Resource": "*"
        }
    }
    

    DNS 설정(하위 도메인을 CloudFront 도메인에 할당)



    Distribution을 만들면 CloudFront 도메인 (xxxxx.cloudfront.net)이 발급되므로이 값을 하위 도메인의 CNAME으로 설정합니다.





    CloudFront에 하위 도메인 설정



    Distribution의 상세 화면 「General」탭에서 편집(Edit) 상태로 해, Alternate Domain Names 에 서브 도메인을 설정합니다.



    동작 확인



    예를 들어 이미지가 <S3バケット>/images/001.jpg 에 배치되어 있는 경우, https://img.hitou.nyango.com/images/001.jpg 로 참조할 수 있게 됩니다.

    좋은 웹페이지 즐겨찾기