내용으로 건너뛰기

액세스 제어 및 인증을 사용하여 CloudFront 배포판의 콘텐츠 전송을 제한하려면 어떻게 해야 합니까?

4분 분량
0

Amazon CloudFront 배포판의 콘텐츠에 대한 액세스를 제한하고 싶습니다.

간략한 설명

CloudFront 배포판의 프라이빗 콘텐츠에 대한 액세스를 제한하려면 서명된 URL 또는 서명된 쿠키를 사용하십시오.

사용자 이름과 암호를 사용한 기본 인증만 필요한 경우 Lambda@Edge 또는 CloudFront Functions를 사용하여 기본 인증을 설정하십시오.

IP 주소 또는 지리적 위치를 기반으로 액세스를 제한하려면 요청을 허용하거나 차단하도록 CloudFront를 구성하십시오.

ID 공급자를 사용하여 보안 사용자 인증을 설정하려면 Lambda@Edge를 사용하여 CloudFront를 OpenID Connect(OIDC)와 통합하십시오.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

서명된 URL 또는 서명된 쿠키 사용

서명된 URL은 URL에 암호화된 서명을 포함하여 개별 파일에 대한 임시 액세스를 제공합니다. 서명된 URL을 사용하여 특정 리소스에 대한 액세스를 보호하십시오.

CloudFront는 클라이언트에 서명된 쿠키를 발급하여 특정 경로에 있는 여러 파일에 액세스할 수 있도록 합니다. 액세스를 더 광범위하게 제어하려면 서명된 쿠키를 사용하십시오.

참고: 서명된 URL과 서명된 쿠키는 사용자가 만들어 배포판과 연결하는 암호화 키 페어를 사용합니다.

서명된 URL 또는 서명된 쿠키를 사용하려면 다음 단계를 완료하십시오.

키 페어 만들기

키 페어를 만들고 CloudFront에 키 페어를 업로드합니다.

신뢰할 수 있는 키 그룹 만들기

  1. CloudFront 콘솔을 엽니다.
  2. 탐색 창의 키 관리에서 키 그룹을 선택합니다.
  3. 키 그룹 만들기를 선택합니다.
  4. 이름에 키 그룹의 이름을 입력합니다.
  5. 퍼블릭 키에서 키를 선택합니다.
  6. 키 그룹 만들기를 선택합니다.

배포 구성

서명된 URL 또는 서명된 쿠키에 신뢰할 수 있는 키 그룹을 사용하도록 배포를 업데이트합니다. 배포를 구성하는 방법에 대한 자세한 내용은 캐시 동작 설정을 참조하십시오.

서명된 URL 또는 서명된 쿠키 생성

서명된 URL을 생성하려면 다음 sign AWS CLI 명령을 실행합니다.

aws cloudfront sign \
    --url "https://your-distribution-domain.cloudfront.net/path/to/file.pdf" \
    --key-pair-id "YOUR_KEY_PAIR_ID" \
    --private-key file://path/to/your/private-key.pem \
    --date-less-than "2024-12-31T23:59:59"

IP 제한과 같은 추가 옵션은 AWS CLI 명령 참조의 옵션을 참조하십시오.

참고: 타사 도구에 사용할 서명된 URL을 만들 수도 있습니다.

서명된 쿠키를 생성하려면 해당 언어의 AWS SDK를 사용하십시오. 코드 예제는 PHP를 사용하여 서명된 쿠키 만들기AWS SDK를 사용하여 서명된 URL 및 쿠키 만들기를 참조하십시오.

서명된 URL 또는 서명된 쿠키 사용

CloudFront에 대한 요청에 서명된 URL 또는 서명된 쿠키를 포함합니다.

Lambda@Edge를 사용하여 기본 인증 설정

참고: Lambda@Edge를 사용하여 인증 로직을 구현하려면 사용자 지정 코드를 만들어야 합니다.

다음 단계를 완료하십시오.

  1. AWS Lambda 함수를 만들어 열람자 요청에 대한 인증을 처리합니다.
  2. 함수 코드에서 요청 헤더를 검사하고, 자격 증명을 확인하고, 요청을 허용하거나 거부합니다. 예제 함수는 예제: 인증되지 않은 사용자를 로그인 페이지로 리디렉션을 참조하십시오.
  3. 트리거를 사용하여 함수를 배포의 동작과 연결합니다.

CloudFront Functions를 사용하여 기본 인증 설정

참고: CloudFront Functions를 사용하여 인증 로직을 구현하려면 사용자 지정 코드를 만들어야 합니다.

다음 단계를 완료하십시오.

  1. CloudFront Functions를 만들어 열람자 요청을 인증합니다.
  2. 함수 코드에서 헤더를 검사하고, 자격 증명을 확인하고, 요청을 허용하거나 거부합니다. 예제 함수는 CloudFront Functions 열람자 요청의 단순 토큰 확인을 참조하십시오.
  3. 배포의 동작과 함수를 연결합니다.

클라이언트 IP 주소 또는 지리적 위치를 기반으로 요청을 허용하거나 차단하도록 CloudFront 구성

다음 작업 중 하나를 수행하십시오.

  • IP 액세스 제어를 기반으로 제한을 만들려면 AWS WAF를 사용하여 배포의 IP 주소 허용 목록 및 거부 목록을 정의합니다.
  • 지리적 위치를 기반으로 제한을 만들려면 요청이 전송된 국가를 기반으로 콘텐츠에 대한 액세스를 제한하십시오.

참고: AWS WAF 및 지리적 제한은 배포 수준에만 적용되며 캐시 동작에는 적용되지 않습니다.

Lambda@Edge를 사용하여 CloudFront를 OIDC와 통합

참고: 통합을 위해서는 애플리케이션에 OIDC 인증 흐름을 구현하고 CloudFront에 대한 요청에 포함할 ID 토큰을 얻어야 합니다.

다음 단계를 완료하십시오.

  1. Lambda 함수를 만들어 열람자 요청의 OIDC ID 토큰을 확인합니다.
  2. 함수 코드에서 인증 헤더를 검사하고, ID 토큰을 확인하고, 요청을 허용하거나 거부합니다.
  3. 배포의 동작과 함수를 연결합니다.

관련 정보

Authorization@Edge – Lambda@Edge 및 JSON 웹 토큰을 사용하여 웹 애플리케이션 보안을 강화하는 방법

Lambda@Edge를 사용한 외부 서버 권한 부여

OpenID Connect와 AWS Secrets Manager를 사용하여 CloudFront 배포판 보호

AWS 공식업데이트됨 3달 전