Transferência do S3 através do CloudFront

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 através do CloudFront podem beneficiar de custos de saída da AWS mais baixos em comparação com a transferência diretamente do S3. Consulte os preços do CloudFront e os custos de saída do S3 para ver detalhes.

A utilização do CloudFront como caminho de saída não expõe os seus objetos S3 ao público. Consulte o artigo A utilização do CloudFront expõe os meus objetos ao público?

Vista geral

Para transferir dados do S3 através do CloudFront, tem de seguir estes passos:

Configure as autorizações de IAM

Siga as instruções em Autorizações de transferência sem agente para conceder as autorizações necessárias Google Cloud .

Configure o acesso ao seu contentor do S3

Siga as instruções em Configure o acesso a uma origem: Amazon S3 para configurar o acesso aos seus dados no Amazon S3.

Crie uma distribuição do CloudFront para o seu contentor do S3

  1. Na sua conta da AWS, aceda ao CloudFront.
  2. Clique em Crie uma distribuição do CloudFront.
  3. Em Domínio de origem, selecione o seu contentor do S3.
  4. O caminho de origem tem de ficar vazio.
  5. Aceite o Nome de origem preenchido automaticamente ou especifique o seu próprio valor.
  6. Na secção Acesso de origem, selecione Público. Isto não torna o seu contentor público. Em vez disso, indica ao CloudFront que não deve ser configurado nenhum mecanismo de acesso.
  7. Na secção Chave da cache e pedidos de origem:
    1. Para Política de cache, selecione CachingDisabled. Isto impede que o CloudFront armazene pedidos em cache e os publique para visitantes não autenticados.
    2. Para a política de solicitação de origem, selecione AllViewerExceptHostHeader. Isto permite que o CloudFront encaminhe cabeçalhos de autenticação para o S3, para que o Storage Transfer Service possa aceder ao seu contentor com as suas credenciais seguras.
  8. Na secção Firewall de app Web (WAF), selecione Não ativar.
  9. Opcionalmente, escolha uma Classe de preço. O Storage Transfer Service seleciona conjuntos de trabalhadores com base na região do contentor de origem, pelo que a faturação do CloudFront é feita nessa região. Para obter os preços mais baixos, certifique-se de que o seu contentor de origem está nos EUA ou na Europa, ou selecione Usar apenas a América do Norte e a Europa como a classe de preços no CloudFront.
  10. Clique em Criar distribuição do CloudFront.

    Depois de criada com êxito, é apresentada a página de detalhes da distribuição do CloudFront.

  11. Tome nota do nome do domínio de distribuição. Por exemplo: https://dy1h2n3l4ob56.cloudfront.net. Se a página de detalhes não incluir o protocolo https:// antes do nome do domínio de distribuição, tem de o adicionar manualmente quando criar a tarefa de transferência.

Crie uma tarefa de transferência

A transferência através de uma distribuição do CloudFront é suportada na Google Cloud consola e na API REST.

Não inclua informações confidenciais, como informações de identificação pessoal (IIP) ou dados de segurança, no nome da tarefa de transferência. Os nomes dos recursos podem ser propagados para os nomes de outros Google Cloud recursos e podem ser expostos a sistemas internos da Google fora do seu projeto.

Google Cloud consola

Para criar uma transferência através da Google Cloud consola, siga as instruções para criar uma transferência.

Quando lhe for pedido que introduza o domínio do CloudFront, introduza o nome do domínio de distribuição que anotou na secção anterior. Também pode encontrar este valor indicado na secção do CloudFront da consola dos Amazon Web Services. Tem o formato https://dy1h2n3l4ob56.cloudfront.net.

API REST

Para criar uma transferência através da API REST, siga o exemplo na página Criar transferências.

Especifique o nome do 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

A utilização do CloudFront expõe os meus objetos ao público?

Não. Se tiver seguido os passos de configuração nesta página, os seus objetos não são expostos ao público.

  • O CloudFront não tem acesso direto aos seus objetos S3.
  • Os utilizadores recebem um erro permission denied se tentarem aceder aos seus objetos diretamente ou através do CloudFront (se o seu contentor for privado).
  • O Storage Transfer Service assina pedidos para o CloudFront com as credenciais que indicou na tarefa de transferência, o que nos permite transferir os seus objetos em segurança como se estivéssemos a transferir diretamente do S3. Isto funciona devido à definição de encaminhamento de cabeçalhos AllViewerExceptHostHeader.