AWS Elemental MediaPackage v2 오리진에 대한 액세스 제한 - Amazon CloudFront

AWS Elemental MediaPackage v2 오리진에 대한 액세스 제한

CloudFront는 MediaPackage v2 오리진에 대한 액세스를 제한하기 위한 오리진 액세스 제어(OAC)를 제공합니다.

참고

CloudFront OAC는 MediaPackage v2만 지원합니다. MediaPackage v1은 지원되지 않습니다.

새 OAC 생성

다음 주제에 설명된 단계를 완료하여 CloudFront에서 새 OAC를 설정합니다.

필수 조건

OAC를 생성하고 설정하기 전에 MediaPackage v2 오리진과 함께 CloudFront 배포가 있어야 합니다. 자세한 내용은 MediaStore 컨테이너 또는 MediaPackage 채널 사용 단원을 참조하십시오.

MediaPackage v2 오리진에 액세스할 수 있는 OAC 권한 부여

OAC를 생성하거나 CloudFront 배포에서 설정하기 전에 OAC에 MediaPackage v2 오리진에 액세스할 수 있는 권한이 있는지 확인합니다. 이 작업은 CloudFront 배포를 생성한 후, 배포 구성에서 MediaPackage v2 오리진에 OAC를 추가하기 전에 수행합니다.

OAC에 MediaPackage v2 오리진에 액세스할 수 있는 권한을 부여하려면 IAM 정책을 사용하여 CloudFront 서비스 보안 주체(cloudfront.amazonaws.com)가 오리진에 액세스하도록 허용합니다. 이 정책의 Condition 요소는 요청이 MediaPackage v2 오리진을 포함하는 CloudFront 배포를 대신하는 경우에만 CloudFront가 MediaPackage v2 오리진에 액세스할 수 있도록 허용합니다.

예 : CloudFront 배포에 대한 읽기 전용 액세스를 허용하는 IAM 정책

다음 정책은 MediaPackage v2 오리진에 대한 CloudFront 배포(E1PDK09ESKHJWT) 액세스를 허용합니다. 오리진은 Resource 요소에 지정된 ARN입니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipal", "Effect": "Allow", "Principal": {"Service": "cloudfront.amazonaws.com"}, "Action": "mediapackagev2:GetObject", "Resource": "arn:aws:mediapackagev2:us-east-1:123456789012:channelGroup/channel-group-name/channel/channel-name/originEndpoint/origin_endpoint_name", "Condition": { "StringEquals": {"AWS:SourceArn": "arn:aws:cloudfront::123456789012:distribution/E1PDK09ESKHJWT"} } } ] }
참고

MediaPackage v2 오리진에 대한 권한이 없는 배포를 생성하는 경우 CloudFront 콘솔에서 정책 복사를 선택한 다음 엔드포인트 권한 업데이트를 선택할 수 있습니다. 그런 다음 복사한 권한을 엔드포인트에 연결할 수 있습니다. 자세한 내용은 AWS Elemental MediaPackage 사용자 설명서의 엔드포인트 정책 필드를 참조하세요.

OAC 생성

OAC를 생성하려면 AWS Management Console, AWS CloudFormation, AWS CLI 또는 CloudFront API를 사용할 수 있습니다.

Console
OAC를 만들려는 경우
  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 엽니다.

  2. 탐색 창에서 Origin access(원본 액세스)를 선택합니다.

  3. Create control setting(제어 설정 생성)을 선택합니다.

  4. 새로운 OAC 생성 양식에서 다음을 수행합니다.

    1. OAC의 이름을 입력하고 선택적으로 설명을 입력합니다.

    2. 서명 동작의 경우 기본 설정(요청 서명(권장))을 그대로 두는 것이 좋습니다. 자세한 내용은 오리진 액세스 제어를 위한 고급 설정 단원을 참조하십시오.

  5. 오리진 유형으로는 MediaPackage V2를 선택합니다.

  6. 생성을 선택합니다.

    작은 정보

    OAC를 만든 후에는 이름을 기록해 두세요. 다음 절차에서 필요합니다.

배포의 MediaPackage v2 오리진에 OAC를 추가하려는 경우
  1. 에서 CloudFront 콘솔을 엽니다https://console.aws.amazon.com/cloudfront/v4/home

  2. OAC를 추가하려는 MediaPackage V2 오리진이 있는 배포를 선택한 다음 오리진 탭을 선택합니다.

  3. OAC를 추가할 MediaPackage V2 오리진을 선택한 다음 편집을 선택합니다.

  4. 오리진의 Protocol(프로토콜)에 HTTPS only(HTTPS만 해당)를 선택합니다.

  5. 원본 액세스 제어 드롭다운에서 사용할 OAC 이름을 선택합니다.

  6. 변경 사항 저장을 선택합니다.

모든 CloudFront 엣지 로케이션에 배포가 시작됩니다. 엣지 로케이션은 새 구성을 수신하면 MediaPackage V2 오리진으로 보내는 모든 요청에 서명합니다.

CloudFormation

AWS CloudFormation에 OAC를 생성하려면 AWS::CloudFront::OriginAccessControl 리소스 유형을 사용합니다. 다음 예는 OAC를 생성하기 위한 YAML 형식의 AWS CloudFormation 템플릿 구문을 보여줍니다.

Type: AWS::CloudFront::OriginAccessControl Properties: OriginAccessControlConfig: Description: An optional description for the origin access control Name: ExampleOAC OriginAccessControlOriginType: mediapackagev2 SigningBehavior: always SigningProtocol: sigv4

자세한 내용은 AWS CloudFormation 사용 설명서의 AWS::CloudFront::OriginAccessControl을 참조하세요.

CLI

AWS Command Line Interface(AWS CLI)를 사용하여 오리진 액세스 제어를 생성하려면 aws cloudfront create-origin-access-control 명령을 사용합니다. 각 개별 파라미터를 명령줄 입력으로 지정하는 대신 입력 파일을 사용하여 명령의 입력 파라미터를 제공할 수 있습니다.

오리진 액세스 제어를 생성하려면(입력 파일과 CLI)
  1. 다음 명령을 사용하여 이름이 origin-access-control.yaml인 파일을 생성합니다. 이 파일에는 create-origin-access-control 명령에 대한 모든 입력 파라미터가 들어 있습니다.

    aws cloudfront create-origin-access-control --generate-cli-skeleton yaml-input > origin-access-control.yaml
  2. 방금 생성한 origin-access-control.yaml 파일을 엽니다. 파일을 편집하여 OAC의 이름, 설명(선택 사항)을 추가하고 SigningBehavioralways로 변경합니다. 그런 다음 파일을 저장합니다.

    다른 OAC 설정에 대한 자세한 내용은 오리진 액세스 제어를 위한 고급 설정 섹션을 참조하세요.

  3. 다음 명령으로 origin-access-control.yaml 파일의 입력 파라미터를 사용하여 오리진 액세스 제어를 만듭니다.

    aws cloudfront create-origin-access-control --cli-input-yaml file://origin-access-control.yaml

    명령 출력에 있는 Id 값을 기록해 둡니다. CloudFront 배포의 MediaPackage v2 오리진에 OAC를 추가하려면 필요합니다.

OAC를 기존 배포의 MediaPackage v2 오리진에 연결하는 방법(입력 파일과 CLI)
  1. 다음 명령을 사용하여 OAC를 추가할 CloudFront 배포에 대한 배포 구성을 저장합니다. 배포에 MediaPackage v2 오리진이 있어야 합니다.

    aws cloudfront get-distribution-config --id <CloudFront distribution ID> --output yaml > dist-config.yaml
  2. 방금 생성한 dist-config.yaml이라는 파일을 엽니다. 파일을 편집하여 다음과 같이 변경합니다.

    • Origins 객체에서 OriginAccessControlId라는 필드에 OAC의 ID를 추가합니다.

    • OriginAccessIdentity라는 필드에서 값을 제거합니다(있는 경우).

    • ETag 필드의 이름을 IfMatch로 바꾸지만 필드 값은 변경하지 마세요.

    완료되면 파일을 저장합니다.

  3. 오리진 액세스 제어를 사용하도록 배포를 업데이트하려면 다음 명령을 사용합니다.

    aws cloudfront update-distribution --id <CloudFront distribution ID> --cli-input-yaml file://dist-config.yaml

모든 CloudFront 엣지 로케이션에 배포가 시작됩니다. 엣지 로케이션은 새 구성을 수신하면 MediaPackage v2 오리진으로 보내는 모든 요청에 서명합니다.

API

CloudFront API를 사용하여 OAC를 생성하려면 CreateOriginAccessControl을 사용합니다. 이 API 호출에서 지정하는 필드에 대한 자세한 내용은 AWS SDK 또는 기타 API 클라이언트에 대한 API 참조 설명서를 참조하세요.

OAC를 생성한 후 다음 API 호출 중 하나를 사용하여 배포의 MediaPackage v2 오리진에 연결할 수 있습니다.

이 두 API 호출에 대해 오리진 내부의 OriginAccessControlId 필드에 OAC ID를 제공합니다. 이러한 API 호출에서 지정하는 다른 필드에 대한 자세한 내용은 배포 설정 참조와 AWS SDK 또는 기타 API 클라이언트에 대한 API 참조 설명서를 참조하세요.

오리진 액세스 제어를 위한 고급 설정

CloudFront OAC 기능에는 특정 사용 사례만을 위한 고급 설정이 포함되어 있습니다. 고급 설정이 특별히 필요한 경우가 아니면 권장 설정을 사용하세요.

OAC에는 서명 동작(콘솔) 또는 SigningBehavior(API, CLI 및 AWS CloudFormation)라는 설정이 포함되어 있습니다. 이 설정은 다음 옵션을 제공합니다.

항상 오리진 요청에 서명(권장 설정)

이 설정의 이름은 콘솔에서 서명 요청(권장)이고 API, CLI, AWS CloudFormation에서 always이며, 이 설정을 사용하는 것이 좋습니다. 이 설정을 사용하면 CloudFront가 항상 MediaPackage v2 오리진으로 보내는 모든 요청에 서명합니다.

오리진 요청 서명 안 함

이 설정의 이름은 콘솔에서 Do not sign requests(요청 서명 안 함)이고 API, CLI, AWS CloudFormation에서 never입니다. 이 OAC를 사용하는 모든 배포의 모든 오리진에 대한 OAC를 끄려면 이 설정을 사용합니다. 오리진 액세스 제어를 사용하는 모든 오리진 및 배포에서 OAC를 하나씩 제거하는 것과 비교하여 시간과 노력을 절약할 수 있습니다. 이 설정을 사용하면 CloudFront가 MediaPackage v2 오리진으로 보내는 모든 요청에 서명하지 않습니다.

주의

이 설정을 사용하려면 MediaPackage v2 오리진에 공개적으로 액세스할 수 있어야 합니다. 공개적으로 액세스할 수 없는 MediaPackage v2 오리진에 이 설정을 사용하는 경우 CloudFront가 오리진에 액세스할 수 없습니다. MediaPackage v2 오리진은 CloudFront에 오류를 반환하고 CloudFront 해당 오류를 뷰어에 전달합니다. 자세한 내용은 AWS Elemental MediaPackage 사용 설명서의 MediaPackage의 정책 및 권한에 대한 MediaPackage v2 정책 예제를 참조하세요.

뷰어(클라이언트) Authorization 헤더 재정의 안 함

이 설정의 이름은 콘솔에서 Do not override authorization header(승인 헤더 재정의 안 함)이고 API, CLI, AWS CloudFormation에서 no-override입니다. 해당 뷰어 요청에 Authorization 헤더가 포함되지 않은 경우에만 CloudFront에서 오리진 요청에 서명하도록 하려면 이 설정을 사용합니다. 이 설정을 사용하면 CloudFront에서는 뷰어 요청에 Authorization 헤더가 있는 경우 이를 전달하지만 뷰어 요청에 Authorization 헤더가 포함되어 있지 않으면 오리진 요청에 서명합니다(자체 Authorization 헤더 추가).

주의

뷰어 요청에서 Authorization 헤더를 전달하려면 이 오리진 액세스 제어와 연결된 MediaPackage v2 오리진을 사용하는 모든 캐시 동작에 대한 Authorization 헤더를 캐시 정책에 반드시 추가해야 합니다.