Restringir o acesso a uma origem da AWS Elemental MediaStore
O CloudFront fornece controle de acesso à origem (OAC) para restringir o acesso a uma origem do AWS Elemental MediaStore.
Criar um controle de acesso à origem
Conclua as etapas descritas nos tópicos a seguir para configurar um novo controle de acesso à origem no CloudFront.
Tópicos
Pré-requisitos
Antes de criar e configurar o controle de acesso à origem, você deve ter uma distribuição do CloudFront com uma origem do MediaStore.
Conceder permissão de controle de acesso à origem para acessar a origem do MediaStore
Antes de criar um controle de acesso à origem ou configurá-lo em uma distribuição do CloudFront, o OAC deve ter permissão para acessar a origem do MediaStore. Faça isso depois de criar uma distribuição do CloudFront, mas antes de adicionar o OAC à origem do MediaStore na configuração de distribuição.
Para conceder permissão ao OAC para acessar a origem do MediaStore, use uma política de contêiner do MediaStore para possibilitar que a entidade principal de serviço do CloudFront (cloudfront.amazonaws.com
) acesse a origem. Use um elemento Condition
na política para permitir que o CloudFront acesse o contêiner do MediaStore somente quando a solicitação for em nome da distribuição do CloudFront que contém a origem do MediaStore.
Veja a seguir exemplos de políticas de contêiner do MediaStore que permitem que um OAC do CloudFront acesse uma origem do MediaStore.
exemplo Política de contêiner do MediaStore que permite acesso somente leitura a um OAC do CloudFront
{ "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" } } } ] }
exemplo Política de contêiner do MediaStore que permite acesso de leitura e gravação a um OAC do CloudFront
{ "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" } } } ] }
nota
Para permitir o acesso de gravação, você deve configurar Allowed HTTP methods (Métodos HTTP permitidos) para incluirPUT
nas configurações de comportamento de sua distribuição do CloudFront.
Criar o controle de acesso à origem
Para criar um OAC, você pode usar o AWS Management Console, o AWS CloudFormation, a AWS CLI ou a API do CloudFront.
Configurações avançadas para controle de acesso à origem
O recurso de controle de acesso à origem do CloudFront inclui configurações avançadas destinadas somente a casos de uso específicos. Use as configurações recomendadas, a menos que você precise usar as configurações avançadas para uma necessidade específica.
O controle de acesso à origem contém uma configuração chamada Signing behavior (Comportamento de assinatura) (no console) ou SigningBehavior
(na API, na CLI e no AWS CloudFormation). Essa configuração fornece as seguintes opções:
- Always sign origin requests (recommended setting) [Sempre assinar solicitações de origem (configuração recomendada)]
-
Recomendamos usar essa configuração, chamada Sign requests (recommended) [Assinar solicitações (recomendado)] no console, ou
always
na API, na CLI e no AWS CloudFormation. Com essa configuração, o CloudFront sempre assina todas as solicitações enviadas à origem do MediaStore. - Never sign origin requests (Nunca assinar solicitações de origem)
-
Essa configuração é chamada Do not sign requests (Não assinar solicitações) no console ou
never
na API, na CLI e no AWS CloudFormation. Use essa configuração para desativar o controle de acesso à origem para todas as origens em todas as distribuições que usam esse controle. Isso pode economizar tempo e esforço em comparação com a remoção individual de um controle de acesso à origem de todas as origens e distribuições que o usam. Com essa configuração, o CloudFront não assina nenhuma solicitação enviada à origem do MediaStore.Atenção
Para usar essa configuração, a origem do MediaStore deve estar acessível ao público. Se você usar essa configuração com uma origem do MediaStore que não esteja acessível ao público, o CloudFront não poderá acessar a origem. A origem do MediaStore retorna erros ao CloudFront e o CloudFront transmite esses erros aos visualizadores. Para ter mais informações, consulte o exemplo de política de contêiner do MediaStore para acesso público de leitura por HTTPS.
- Não substituir o cabeçalho
Authorization
do visualizador (cliente) -
Essa configuração é chamada Do not override authorization header (Não substituir o cabeçalho de autorização) no console ou
no-override
na API, na CLI e no AWS CloudFormation. Use essa configuração quando quiser que o CloudFront assine solicitações de origem somente quando a solicitação do visualizador correspondente não incluir um cabeçalhoAuthorization
. Com essa configuração, o CloudFront transmite o cabeçalhoAuthorization
da solicitação do visualizador quando houver, mas assina a solicitação de origem (adicionando seu próprio cabeçalhoAuthorization
) quando a solicitação do visualizador não inclui um cabeçalhoAuthorization
.Atenção
Para transmitir o cabeçalho
Authorization
da solicitação do visualizador, você deve adicionar o cabeçalhoAuthorization
a uma política de cache para todos os comportamentos de cache que usam origens do MediaStore associadas a esse controle de acesso à origem.