AWS Elemental MediaStore オリジンへのアクセスを制限する
CloudFront には、AWS Elemental MediaStore オリジンへのアクセスを制限するためのオリジンアクセスコントロール (OAC) が用意されています。
新しいオリジンアクセスコントロールを作成する
次のトピックで説明されているステップを実行して、CloudFront で新しいオリジンアクセスコントロールを設定します。
前提条件
オリジンアクセスコントロール (OAC) を作成して設定する前に、MediaStore オリジンを持つ CloudFront ディストリビューションが必要です。
MediaStore へのアクセス許可をオリジンアクセスコントロールに付与する
CloudFront ディストリビューションでオリジンアクセスコントロール (OAC) を作成または設定する前に、OAC に MediaStore オリジンへのアクセス許可があることを確認してください。これは CloudFront ディストリビューションを作成した後、ディストリビューション設定で MediaStore オリジンに OAC を追加する前に行います。
MediaStore オリジンへのアクセス許可を OAC に付与するには、MediaStore コンテナポリシーを使用して、CloudFront サービスプリンシパル (cloudfront.amazonaws.com
) に、オリジンへのアクセスを許可します。ポリシーの Condition
要素を使用して、MediaStore オリジンを含む CloudFront ディストリビューションに代わってリクエストが行われた場合にのみ MediaStore コンテナへのアクセスを CloudFront に許可します。
以下の例は、MediaStore オリジンへのアクセスを CloudFront OAC に許可する MediaStore コンテナポリシーを示しています。
例 CloudFront OAC への読み取り専用アクセスを許可する MediaStore コンテナポリシー
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "mediastore:GetObject" ], "Resource": "arn:aws:mediastore:
<region>
:111122223333
:container/<container name>
/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333
:distribution/<CloudFront distribution ID>
" }, "Bool": { "aws:SecureTransport": "true" } } } ] }
例 CloudFront OAC への読み取りおよび書き込みアクセスを許可する MediaStore コンテナポリシー
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadWrite", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "mediastore:GetObject", "mediastore:PutObject" ], "Resource": "arn:aws:mediastore:
<region>
:111122223333
:container/<container name>
/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333
:distribution/<CloudFront distribution ID>
" }, "Bool": { "aws:SecureTransport": "true" } } } ] }
注記
書き込みアクセスを許可するには、許可されている HTTP メソッドの設定により、CloudFront ディストリビューションの動作設定に PUT
を含める必要があります。
オリジンアクセスコントロールを作成する
OAC を作成するには、AWS Management Console、AWS CloudFormation、AWS CLI、または CloudFront API を使用できます。
オリジンアクセスコントロールの詳細設定
CloudFront オリジンアクセスコントロール機能には、特定のユースケースのみを対象とした詳細設定が含まれています。詳細設定が特に必要でない限り、推奨設定を使用してください。
オリジンアクセスコントロールには、[署名動作] (コンソール)、または SigningBehavior
(API、CLI、および AWS CloudFormation) という設定が含まれています この設定では、次のオプションを使用できます。
- オリジンリクエストに常に署名する (推奨設定)
-
コンソールの [Sign requests (recommended)] (署名リクエスト (推奨))、または API、CLI、および AWS CloudFormation の
always
という設定を使用することをお勧めします。この設定の場合、CloudFront は MediaStore オリジンに送信するすべてのリクエストに常に署名します。 - オリジンリクエストに署名しない
-
この設定は、コンソールでは [リクエストに署名しない]、または API、CLI、およびAWS CloudFormation では
never
です。この設定を使用して、このオリジンアクセスコントロールを使用するすべてのディストリビューションのすべてのオリジンに対して、オリジンアクセスコントロールをオフにします。これにより、オリジンアクセスコントロールを使用するすべてのオリジンとディストリビューションからコントロールを 1 つずつ削除する場合に比べて、時間と労力を節約できます。この設定の場合、CloudFront は MediaStore オリジンに送信するいずれのリクエストにも署名しません。警告
この設定を使用するには、MediaStore オリジンがパブリックにアクセス可能である必要があります。パブリックにアクセスできない MediaStore オリジンでこの設定を使用すると、CloudFront はオリジンにアクセスできません。MediaStore オリジンは CloudFront にエラーを返し、CloudFront はこれらのエラーをビューワーに渡します。詳細については、コンテナポリシーの例: HTTPS 経由のパブリック読み取りアクセスを参照してください。
- ビューワー (クライアント) の
Authorization
ヘッダーを上書きしない -
この設定は、コンソールでは [認証ヘッダーを上書きしない] で、API、CLI、および AWS CloudFormation では
no-override
です。この設定は、対応するビューワーリクエストにAuthorization
ヘッダーに含まれていない場合にのみ、CloudFront がオリジンリクエストに署名するよう指定する場合に使用します。この設定では、ビューワーリクエストが存在するが、ビューワーリクエストにAuthorization
ヘッダーが含まれていないときにオリジンリクエストに署名する (独自のAuthorization
ヘッダーを追加) ときに、CloudFront はビューワーリクエストからAuthorization
ヘッダーを渡します。警告
ビューワーリクエストから
Authorization
ヘッダーを渡すには、このオリジンアクセスコントロールに関連付けられた MediaStore オリジンを使用するすべてのキャッシュ動作で、Authorization
ヘッダーをキャッシュポリシーに追加する必要があります。