As transferências do Amazon S3 podem usar uma distribuição do Amazon CloudFront como um caminho de saída.
As transferências de dados pelo CloudFront podem se beneficiar de custos de saída da AWS mais baixos em comparação com a transferência direta do S3. Consulte os detalhes em Preços do CloudFront e Custos de saída do S3.
O uso do CloudFront como caminho de saída não expõe seus objetos do S3 ao público. Consulte O uso do CloudFront expõe meus objetos ao público?
Visão geral
Para transferir dados do S3 pelo CloudFront, siga estas etapas:
- Configurar as permissões de IAM
- Configurar o acesso ao bucket do S3
- Criar uma distribuição do CloudFront para seu bucket do S3
- Criar um job de transferência
Configurar as permissões de IAM
Siga as instruções na página Permissões de transferência sem agente para conceder as permissões necessárias do Google Cloud.
Configurar o acesso ao bucket do S3
Siga as instruções na página Configurar o acesso a uma fonte: Amazon S3 para configurar o acesso aos dados no Amazon S3.
Criar uma distribuição do CloudFront para seu bucket do S3
- Na sua conta da AWS, acesse o CloudFront.
- Clique em Create a CloudFront distribution.
- Em Origin domain, selecione o bucket do S3.
- O campo Origin path precisa ser deixado em branco.
- Aceite o Origin name preenchido automaticamente ou especifique seu próprio valor.
- Na seção Origin access, selecione Public. Isso não torna seu bucket público. Em vez disso, ele indica ao CloudFront que nenhum mecanismo de acesso deve ser configurado.
- Na seção Cache key and origin requests:
- Em Cache policy, selecione CacheDisabled. Isso impede que o CloudFront armazene as solicitações em cache e as exiba para visualizadores não autenticados.
- Em Origin request policy, selecione AllViewerExceptHostHeader. Com isso, o CloudFront pode encaminhar cabeçalhos de autenticação ao S3 para que o Serviço de transferência do Cloud Storage possa acessar seu bucket com suas credenciais seguras.
- Na seção Web Application Firewall (WAF), selecione Não ativar.
- Se quiser, escolha uma Classe de preço. O Serviço de transferência do Cloud Storage seleciona pools de workers com base na região do bucket de origem. Dessa forma, os preços do CloudFront são cobrados nessa região. Para conseguir o menor preço, verifique se o bucket de origem está nos EUA ou na Europa ou selecione Use only North America and Europe como a Price class no CloudFront.
Clique em Create CloudFront distribution.
Após a criação da página de detalhes de distribuição do CloudFront, ela será exibida.
Anote o Nome de domínio de distribuição. Por exemplo,
https://dy1h2n3l4ob56.cloudfront.net
. Se a página de detalhes não incluir o protocolohttps://
na frente do nome de domínio de distribuição, será necessário adicioná-lo por conta própria ao criar o job de transferência.
Criar um job de transferência
A transferência usando uma distribuição do CloudFront é compatível com o console do Google Cloud e a API REST.
Não inclua informações sensíveis, como informações de identificação pessoal (PII, na sigla em inglês) ou dados de segurança no nome do job de transferência. Os nomes dos recursos podem ser propagados para os nomes de outros recursos do Google Cloud e podem ser expostos aos sistemas internos do Google fora do seu projeto.Console do Google Cloud
Para criar uma transferência usando o console do Google Cloud, siga as instruções para criar uma transferência.
Quando você receber uma solicitação para inserir o domínio do CloudFront, digite o nome do domínio de distribuição que você anotou na seção anterior. Você também pode encontrar esse valor
listado na seção CloudFront do console do Amazon Web Services. O formato é o seguinte:
https://dy1h2n3l4ob56.cloudfront.net
.
API REST
Para criar uma transferência usando a API REST, siga o exemplo na página Criar transferências.
Especifique o nome de domínio de distribuição como o valor do campo transferSpec.awsS3DataSource.cloudfrontDomain
:
"transferSpec": {
"awsS3DataSource": {
"bucketName": "AWS_SOURCE_NAME",
"cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net",
"awsAccessKey": {
"accessKeyId": "AWS_ACCESS_KEY_ID",
"secretAccessKey": "AWS_SECRET_ACCESS_KEY"
}
},
...
}
Perguntas frequentes
O uso do CloudFront expõe meus objetos ao público?
Não. Se você seguiu as etapas de configuração desta página, seus objetos não estão expostos ao público.
- O CloudFront não tem acesso direto aos seus objetos do S3.
- Os usuários receberão um erro
permission denied
se tentarem acessar seus objetos diretamente ou pelo CloudFront (se o bucket for privado). - O Serviço de transferência do Cloud Storage assina solicitações para o CloudFront usando as credenciais que você
forneceu no job de transferência. Isso nos permite fazer o download dos seus objetos
com segurança, como se estivéssemos fazendo o download diretamente do S3. Isso funciona devido à
configuração de encaminhamento de cabeçalho
AllViewerExceptHostHeader
.