Amazon CloudFront
개발자 안내서 (API 버전 2016-09-29)

서명된 URL 및 서명된 쿠키(신뢰할 수 있는 서명자)를 만들 수 있는 AWS 계정 지정

서명된 URL 또는 서명된 쿠키를 만들려면 활성 CloudFront 키 페어가 있는 AWS 계정이 한 개 이상 필요합니다. 이 계정을 신뢰할 수 있는 서명자라고 합니다. 신뢰할 수 있는 서명자의 용도는 다음 두 가지입니다.

  • 신뢰할 수 있는 서명자를 위한 AWS 계정 ID를 배포에 추가하는 즉시 CloudFront은(는) 파일에 액세스할 때 서명된 URL 또는 서명된 쿠키를 사용할 것을 사용자에게 요구하기 시작합니다.

  • 서명된 URL 또는 서명된 쿠키를 만들 때는 신뢰할 수 있는 서명자의 키 페어에서 프라이빗 키를 사용하여 URL 또는 쿠키의 일부분에 서명합니다. 제한된 파일에 대한 요청이 들어오면 CloudFront은(는) URL 또는 쿠키의 서명된 부분을 서명되지 않은 부분과 비교하여 URL 또는 쿠키가 변조되지 않았음을 확인합니다. CloudFront은(는) URL 또는 쿠키가 유효한지, 의미가 있는지를 확인합니다(예: 만료 날짜 및 시간 이전인지 확인).

신뢰할 수 있는 서명자를 지정할 때 서명된 URL 또는 서명된 쿠키를 사용해야 하는 파일도 간접적으로 지정하게 됩니다.

  • 웹 배포 – 신뢰할 수 있는 서명자를 캐시 동작에 추가합니다. 배포에 캐시 동작이 한 개뿐이라면 사용자는 반드시 서명된 URL 또는 서명된 쿠키를 사용하여 해당 배포와 연결된 파일에 액세스해야 합니다. 여러 가지 캐시 동작을 만들고 일부 캐시 동작에만 신뢰할 수 있는 서명자를 추가하는 경우, 일부 파일에 액세스할 때만 서명된 URL 또는 서명된 쿠키를 사용하도록 사용자에게 요구할 수 있습니다.

  • RTMP 배포(서명된 URL만 해당) – 신뢰할 수 있는 서명자를 배포에 추가합니다. RTMP 배포에 신뢰할 수 있는 서명자를 추가한 뒤에는 사용자가 이 배포와 연결된 파일에 액세스할 때 서명된 URL을 사용해야 합니다.

참고

배포에 대하여 신뢰할 수 있는 서명자를 지정하려면 CloudFront 콘솔 또는 CloudFront API 버전 2009-09-09 이상을 사용해야 합니다.

서명된 URL 또는 서명된 쿠키를 만들고 CloudFront 배포에 계정을 추가할 수 있는 계정을 지정하려면 다음 작업을 수행하십시오.

  1. 신뢰할 수 있는 서명자로 사용할 AWS 계정을 결정합니다. 대부분의 CloudFront 고객은 배포를 만들 때 사용했던 계정을 사용합니다.

  2. 1단계에서 선택한 계정별로 CloudFront 키 페어를 만듭니다. 자세한 내용은 신뢰할 수 있는 서명자에 대해 CloudFront 키 페어 생성 단원을 참조하십시오.

  3. .NET 또는 Java를 사용하여 서명된 URL 또는 서명된 쿠키를 만드는 경우, CloudFront 프라이빗 키를 다시 포맷해야 합니다. 자세한 내용은 CloudFront 프라이빗 키 재포맷(.NET 및 Java만 해당) 단원을 참조하십시오.

  4. 서명된 URL 또는 서명된 쿠키를 만들려는 배포에서 신뢰할 수 있는 서명자의 AWS 계정 ID를 지정합니다. 자세한 내용은 배포에 신뢰할 수 있는 서명자 추가 단원을 참조하십시오.

  5. (선택 사항) 신뢰할 수 있는 서명자에게 활성 CloudFront 키 페어가 있음을 CloudFront가 인식하는지 확인합니다. 자세한 내용은 신뢰할 수 있는 서명자의 활성 상태 확인(선택 사항) 단원을 참조하십시오.

신뢰할 수 있는 서명자에 대해 CloudFront 키 페어 생성

CloudFront 서명된 URL 또는 서명된 쿠키를 만들 때 사용하는 각 AWS 계정(신뢰할 수 있는 서명자)에는 고유한 CloudFront 활성 키 페어가 있어야 합니다. Amazon EC2 키 페어를 CloudFront 키 페어로 대체할 수 없습니다. CloudFront 서명된 URL 또는 서명된 쿠키를 만들 때, 신뢰할 수 있는 서명자의 키 페어에 대한 키 페어 ID를 URL에 포함시킵니다. Amazon EC2에서는 키 페어 ID를 사용하도록 지정할 수 없습니다.

애플리케이션 보안을 위해 CloudFront 키 페어를 90일마다 또는 더 자주 변경하는 것이 좋습니다. 자세한 내용은 CloudFront 키 페어 교체 단원을 참조하십시오.

키 페어를 만드는 방법은 다음과 같습니다.

AWS Management 콘솔에서 CloudFront 키 페어를 만들려면

  1. AWS 계정의 루트 자격 증명을 사용하여 AWS Management 콘솔에 로그인합니다.

    중요

    IAM 사용자는 CloudFront 키 페어를 만들 수 없습니다. 키 페어를 만들려면 루트 자격 증명으로 로그인해야 합니다.

  2. 계정 이름 메뉴에서 보안 자격 증명을 클릭합니다.

  3. CloudFront 키 페어를 확장합니다.

  4. 활성 키 페어가 하나만 있는지 확인합니다. 활성 키 페어가 이미 두 개라면 키 페어를 만들 수 없습니다.

  5. 새 키 페어 생성을 클릭합니다.

  6. 키 페어 만들기 대화 상자에서 프라이빗 키 파일 다운로드를 클릭합니다.

  7. Opening<filename>(열기) 대화 상자에서 Save File(파일 저장)의 기본값을 사용하고, 확인을 클릭하여 CloudFront 키 페어의 프라이빗 키를 다운로드하고 저장합니다.

    중요

    CloudFront 키 페어의 프라이빗 키를 안전한 위치에 저장하고 파일에 대한 권한을 설정하여 원하는 관리자가 읽을 수 있도록 합니다. 다른 사람이 프라이빗 키를 가지게 되면 이들이 유효한 서명된 URL과 서명된 쿠키를 만들어 콘텐츠를 다운로드할 수 있게 됩니다. 프라이빗 키는 다시 가져올 수 없기 때문에 이를 잃어버리거나 삭제한 경우 새 CloudFront 키 페어를 만들어야 합니다.

  8. 키 페어의 키 페어 ID를 기록합니다. (AWS Management 콘솔에서는 액세스 키라고 합니다.) 서명된 URL 또는 서명된 쿠키를 만들 때 이것을 사용합니다.

AWS Management 콘솔에서 RSA 키 페어를 만들고 퍼블릭 키를 업로드하려면

  1. OpenSSL 또는 기타 도구를 사용해서 키 페어를 만듭니다.

    예를 들어 OpenSSL을 사용하는 경우, 다음 명령으로 길이가 4096비트인 키 페어를 만들고 private_key.pem 파일에 저장합니다.

    openssl genrsa -out private_key.pem 4096

    이렇게 만들어진 파일은 퍼블릭 키와 프라이빗 키를 모두 포함합니다. 그 파일에서 퍼블릭 키를 추출하려면 다음 명령을 실행합니다.

    openssl rsa -pubout -in private_key.pem -out public_key.pem

    퍼블릭 키(public_key.pem)는 이 절차의 뒷 부분에서 업로드하는 파일입니다.

    다음은 키에 대한 유의 사항입니다.

    • 키 페어는 SSH-2 RSA 키 페어여야 합니다.

    • 키 페어는 base64로 인코딩된 PEM 형식이어야 합니다.

    • 지원되는 키 길이는 1024, 2048, 4096비트입니다.

  2. AWS 계정의 루트 자격 증명을 사용하여 AWS Management 콘솔에 로그인합니다.

    중요

    IAM 사용자는 CloudFront 키 페어를 만들 수 없습니다. 키 페어를 만들려면 루트 자격 증명으로 로그인해야 합니다.

  3. 계정 이름 메뉴에서 보안 자격 증명을 클릭합니다.

  4. CloudFront 키 페어를 확장합니다.

  5. 활성 키 페어가 하나만 있는지 확인합니다. 활성 키 페어가 이미 두 개라면 자신의 키 페어를 업로드할 수 없습니다.

  6. Upload Your Own Key Pair(자체 키 페어 업로드)를 클릭합니다.

  7. Upload Your Own Key Pair(자체 키 페어 업로드) 대화 상자에서 Choose File(파일 선택)을 클릭하고 1단계에서 만든 퍼블릭 키 파일을 선택합니다.

  8. 업로드를 클릭합니다.

    Upload Key Pair(키 페어 업로드) 대화 상자는 사라지고 새로운 키 페어가 CloudFront 키 페어 목록의 상단에 나타납니다.

  9. 키 페어의 키 페어 ID를 기록합니다. (AWS Management 콘솔에서는 액세스 키라고 합니다.) 서명된 URL 또는 서명된 쿠키를 만들 때 이것을 사용합니다.

CloudFront 프라이빗 키 재포맷(.NET 및 Java만 해당)

.NET 또는 Java를 사용하여 서명된 URL 또는 서명된 쿠키를 만드는 경우, 기본 .pem 형식의 키 페어에서 프라이빗 키를 사용하여 서명을 만들 수 없습니다.

  • .NET 프레임워크 – 프라이빗 키를 .NET 프레임워크에서 사용하는 XML 형식으로 변환합니다. 몇 가지 도구를 사용할 수 있습니다.

  • Java – 프라이빗 키를 DER 형식으로 변환합니다. 이렇게 하려면 OpenSSL을 사용하면 됩니다.

    $ openssl pkcs8 -topk8 -nocrypt -in origin.pem -inform PEM -out new.der -outform DER

    인코더가 정확하게 작동하려면 Bouncy Castle Java 암호화 API에 대한 jar를 프로젝트에 추가한 다음 Bouncy Castle 공급자를 추가합니다.

배포에 신뢰할 수 있는 서명자 추가

신뢰할 수 있는 서명자란 배포에 대해 서명된 URL 및 서명된 쿠키를 만들 수 있는 AWS 계정입니다. 기본적으로, 해당 배포를 만든 계정을 포함하여 어떤 계정도 서명된 URL 또는 서명된 쿠키를 만들 수 없습니다. 신뢰할 수 있는 서명자로 사용할 AWS 계정을 지정하려면 배포에 해당 계정을 추가하십시오.

  • 웹 배포 – 신뢰할 수 있는 서명자에는 캐시 동작이 연결되어 있습니다. 이렇게 하면 같은 배포의 일부 파일에 대해서만 서명된 URL 또는 서명된 쿠키를 요구할 수 있습니다. 신뢰할 수 있는 서명자는 해당 캐시 동작과 연결된 파일에 대해서만 서명된 URL 또는 쿠키를 만들 수 있습니다. 예를 들어, 캐시 동작 하나당 신뢰할 수 있는 서명자가 하나씩 있고 다른 캐시 동작에는 다른 신뢰할 수 있는 서명자가 있다면 양쪽의 신뢰할 수 있는 서명자 모두 상대편의 캐시 동작과 연결된 파일에 대해 서명된 URL 또는 쿠키를 만들 수 없습니다.

  • RTMP 배포(서명된 URL만 해당) – 신뢰할 수 있는 서명자는 배포와 연결되어 있습니다. RTMP 배포에 신뢰할 수 있는 서명자를 추가한 뒤에는 사용자가 이 배포와 연결된 객체에 액세스할 때 서명된 URL 또는 서명된 쿠키를 사용해야 합니다.

중요

경로 패턴 및 시퀀스를 신중하게 정의하여 콘텐츠 액세스 권한을 실수로 사용자에게 부여하거나 일부 공개 콘텐츠에 사용자가 액세스하는 일이 없도록 해야 합니다. 예를 들어, 하나의 요청이 두 캐시 동작의 경로 패턴과 일치한다고 가정합니다. 첫 번째 캐시 동작에는 서명된 URL 또는 서명된 쿠키가 필요하지 않고, 두 번째 캐시 동작에는 필요합니다. CloudFront에서는 첫 번째와 연결된 캐시 동작을 처리하므로 사용자는 서명된 URL 또는 서명된 쿠키 없이도 파일에 액세스할 수 있습니다.

경로 패턴에 대한 자세한 내용은 경로 패턴을 참조하십시오.

중요

콘텐츠 배포를 위해 이미 사용 중인 배포를 업데이트하려는 경우, 파일에 대해 서명된 URL 또는 서명된 쿠키를 만들 준비가 되었을 때만 신뢰할 수 있는 서명자를 추가하십시오. 그렇지 않은 경우 CloudFront은(는) 요청을 거절합니다.

  • 웹 배포 – 웹 배포에 대한 캐시 동작에 신뢰할 수 있는 서명자를 추가한 뒤에는 사용자가 이 캐시 동작과 연결된 파일에 액세스할 때 서명된 URL 또는 서명된 쿠키를 사용해야 합니다.

  • RTMP 배포(서명된 URL만 해당) – RTMP 배포에 신뢰할 수 있는 서명자를 추가한 뒤에는 사용자가 이 배포와 연결된 파일에 액세스할 때 서명된 URL을 사용해야 합니다.

신뢰할 수 있는 서명자의 최대 수는 배포의 유형에 따라 달라집니다.

  • 웹 배포 – 캐시 동작당 최대 5개

  • RTMP 배포 – 배포당 최대 5개

CloudFront 콘솔 또는 CloudFront API를 사용하여 신뢰할 수 있는 서명자를 배포에 추가할 수 있습니다. 다음 주제를 참조하십시오.

CloudFront 콘솔을 사용하여 배포에 신뢰할 수 있는 서명자 추가

CloudFront 콘솔을 사용하여 신뢰할 수 있는 서명자를 배포에 추가하려면

  1. 해당 배포를 만든 AWS 계정만 신뢰할 수 있는 서명자로 사용하려는 경우, 2단계로 건너뜁니다.

    다른 AWS 계정을 사용하려는 경우, 계정별로 AWS 계정 ID를 가져옵니다.

    1. https://console.aws.amazon.com/console/home에서 신뢰할 수 있는 서명자로 사용할 계정으로 AWS Management 콘솔에 로그인합니다.

    2. 콘솔의 오른쪽 상단 모서리에서 계정과 연결된 이름을 클릭하고 내 계정을 클릭합니다.

    3. 계정 설정 아래의 계정 ID를 기록해 둡니다.

    4. AWS Management 콘솔에서 로그아웃합니다.

    5. 신뢰할 수 있는 서명자로 사용하려는 나머지 계정에 대해 a단계부터 d단계까지 반복합니다.

  2. https://console.aws.amazon.com/cloudfront/에서 Amazon CloudFront 콘솔을 열고, 신뢰할 수 있는 서명자를 추가하려는 배포를 만들 때 사용했던 계정으로 로그인합니다.

  3. 배포 ID를 클릭합니다.

  4. 편집 모드로 변경:

    • 웹 배포동작 탭을 클릭하고 편집할 동작을 클릭한 다음 편집을 클릭합니다.

    • RTMP 배포편집을 클릭합니다.

  5. Restrict Viewer Access (Use Signed URLs or Signed Cookies)(최종 사용자 액세스 제한(서명된 URL 또는 서명된 쿠키 사용))에서 를 클릭합니다.

  6. 신뢰할 수 있는 서명자에서 시나리오에 대한 확인란을 선택합니다.

    • 셀프 – 현재 계정(배포를 만들 때 사용한 계정)을 사용하려는 경우 이 확인란을 선택합니다.

    • Specify Accounts(계정 지정) – 다른 AWS 계정을 사용하려는 경우 이 확인란을 선택합니다.

  7. Specify Accounts(계정 지정) 확인란을 선택한 경우 AWS 계정 번호 필드에 AWS 계정 ID를 입력합니다. 이것은 이 절차의 첫 번째 단계에서 얻은 계정 ID입니다. 계정 ID를 한 줄에 하나씩 입력합니다.

  8. 예, 편집합니다를 클릭합니다.

  9. 웹 배포에 신뢰할 수 있는 서명자를 추가할 때 캐시 동작이 둘 이상인 경우 4단계부터 8단계까지 반복합니다.

CloudFront API를 사용하여 배포에 신뢰할 수 있는 서명자 추가

CloudFront API를 사용하여 신뢰할 수 있는 서명자에 대한 AWS 계정 ID를 기존 배포에 추가하거나, 신뢰할 수 있는 서명자가 포함된 배포를 새로 만들 수 있습니다. 두 경우 모두 TrustedSigners 요소에 값을 지정합니다. 웹 배포의 경우, TrustedSigners 요소를 하나 이상의 캐시 동작에 추가합니다. RTMP 배포의 경우, 배포에 TrustedSigners 요소를 추가합니다.

Amazon CloudFront API Reference에서 다음 주제를 참조하십시오.

신뢰할 수 있는 서명자의 활성 상태 확인(선택 사항)

신뢰할 수 있는 서명자를 배포에 추가한 뒤, 서명자가 활성화되었는지 확인할 수 있습니다. 신뢰할 수 있는 서명자가 활성화되려면 다음 조건이 참이어야 합니다.

  • AWS 계정에 활성 키 페어가 하나 이상 있어야 합니다. 키 페어를 돌아가며 사용하는 경우, 계정은 일시적으로 기존 키 페어와 새 키 페어 두 가지를 가지게 됩니다.

  • CloudFront가 활성 키 페어를 인식하고 있어야 합니다. 키 페어를 만든 후 CloudFront가 키 페어의 존재를 인식하기까지 시간이 약간 걸립니다.

참고

현재는 배포에 대해 신뢰할 수 있는 활성 서명자 목록을 보려면 CloudFront API를 사용해야 합니다. CloudFront 콘솔에서는 신뢰할 수 있는 활성 서명자 목록을 볼 수 없습니다.

CloudFront API를 사용하여 신뢰할 수 있는 활성 서명자 확인

신뢰할 수 있는 서명자 중 활성 키 페어가 있는 서명자(신뢰할 수 있는 활성 서명자)를 파악하려면 해당 배포에서 ActiveTrustedSigners 요소의 값을 검토합니다. 이 요소는 해당 배포가 신뢰할 수 있는 서명자로 인식하는 각 계정의 AWS 계정 ID를 나열합니다. 신뢰할 수 있는 서명자에 활성 CloudFront 키 페어가 한 개 이상 있는 경우, ActiveTrustedSigners 요소는 키 페어 ID도 나열합니다. 자세한 내용은 Amazon CloudFront API Reference에서 다음 주제를 참조하십시오.

CloudFront 키 페어 교체

AWS는 활성 CloudFront 키 페어를 90일마다 교체(변경)할 것을 권장합니다. 아직 만료되지 않은 서명된 URL 또는 서명된 쿠키를 무효화하지 않고 URL 또는 쿠키를 만들기 위해 사용 중인 CloudFront 키 페어를 교체하려면 다음 작업을 수행하십시오.

  1. 서명된 URL을 만들 때 사용하는 계정별로 새로운 키 페어를 만듭니다. 자세한 내용은 신뢰할 수 있는 서명자에 대해 CloudFront 키 페어 생성 단원을 참조하십시오.

  2. CloudFront가 새로운 키 페어를 인식하는지 확인합니다. 자세한 내용은 신뢰할 수 있는 서명자의 활성 상태 확인(선택 사항) 단원을 참조하십시오.

  3. 애플리케이션을 업데이트하고 새로운 키 페어의 프라이빗 키를 사용하여 서명을 만듭니다.

  4. 새로운 프라이빗 키로 서명한 URL 또는 쿠키가 작동하는지 확인합니다.

  5. 기존 CloudFront 키 페어로 서명한 URL 또는 쿠키의 만료 날짜가 지날 때까지 기다립니다.

  6. 기존 CloudFront 키 페어를 비활성으로 변경합니다.

    1. 키 페어를 비활성화할 AWS 계정의 루트 자격 증명을 사용하여 AWS Management 콘솔에 로그인합니다.

    2. 계정 이름 메뉴에서 보안 자격 증명을 클릭합니다.

    3. CloudFront 키 페어를 확장합니다.

    4. 특정 키 페어를 선택한 후 Make Inactive(비활성화)를 선택합니다.

    5. 키 페어를 비활성화할 AWS 계정별로 a단계부터 d단계까지 반복합니다.

  7. 새로운 프라이빗 키로 서명한 URL 또는 쿠키가 작동하는지 다시 확인합니다.

  8. 기존 CloudFront 키 페어를 삭제합니다.

    1. 보안 자격 증명 페이지를 참조하십시오.

    2. CloudFront 키 페어를 확장합니다.

    3. 특정 키 페어를 선택한 후 삭제를 선택합니다.

  9. 저장된 기존 프라이빗 키를 삭제합니다.