Como uso minha distribuição do CloudFront para restringir o acesso a um bucket do Amazon S3?

4 minuto de leitura
0

Quero restringir o acesso ao meu bucket do Amazon Simple Storage Service (Amazon S3) para que os usuários acessem objetos somente por meio da minha distribuição Amazon CloudFront.

Resolução

Importante: antes de começar, certifique-se de que a origem do Amazon S3 da sua distribuição do CloudFront esteja configurada como um endpoint da API REST, por exemplo, AWSDOC-EXAMPLE-BUCKET.s3.amazonaws.com. Essa resolução não se aplica às origens do S3 configuradas como um endpoint de site, por exemplo, AWSDOC-EXAMPLE-BUCKET.s3-website-us-east-1.amazonaws.com. Para mais informações, consulte Como uso o CloudFront para servir um site estático que é hospedado no Amazon S3?

Opção 1 (melhores práticas): Criar um OAC do CloudFront

Para criar um controle de acesso de origem (OAC) do CloudFront, conclua as seguintes etapas:

  1. Abra o console do CloudFront.
  2. Na lista de distribuições, escolha a distribuição que serve conteúdo do bucket do S3 ao qual você deseja restringir o acesso.
  3. Escolha a guia Origens.
  4. Selecione a origem do S3 e, em seguida, escolha Editar.
  5. Para o Acesso de origem, selecione as Configurações de controle de acesso de origem (recomendado).
  6. Para o Controle de acesso de origem, selecione um OAC existente ou escolha a configuração Criar controle.
  7. Na caixa de diálogo, nomeie sua configuração de controle. É uma prática recomendada manter a configuração padrão como Solicitações de assinatura (recomendado).
  8. Escolha Criar.
  9. Para Acesso do bucket do S3, escolha Copiar política e, em seguida, selecione Salvar para aplicar a política do bucket no bucket do S3.
  10. Escolha Ir para as permissões do bucket do S3 para levá-lo ao console do bucket do S3.
  11. Escolha Salvar alterações.
  12. No Console do Amazon S3, na sua lista de buckets, selecione o bucket que é a origem da distribuição do CloudFront.
  13. Escolha a guia Permissões.
  14. Em Política de bucket, confirme se você vê uma declaração semelhante à seguinte:
{
    "Version": "2012-10-17",
    "Statement": {
        "Sid": "AllowCloudFrontServicePrincipalReadOnly",
        "Effect": "Allow",
        "Principal": {
            "Service": "cloudfront.amazonaws.com"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
        "Condition": {
            "StringEquals": {
                "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE"
            }
        }
    }
}

Permitir que o CloudFront OAC leia objetos do seu bucket, você deve adicionar a declaração anterior.

Observação: depois de restringir o acesso ao seu bucket, você pode integrar o AWS WAF para outra camada de segurança.

Opção 2: Criar um OAI legado do CloudFront

Para criar uma identidade do acesso de origem (OAI) legada do CloudFront, conclua as seguintes etapas:

  1. Abra o console do CloudFront.
  2. Na lista de distribuições, escolha a distribuição que serve conteúdo do bucket do S3 ao qual você deseja restringir o acesso.
  3. Escolha a guia Origens.
  4. Selecione a origem do S3 e, em seguida, escolha Editar.
  5. Para o Acesso de origem, escolha Identidades de acesso legadas.
  6. Na lista suspensa Identidade de acesso de origem, selecione o nome da identidade de acesso de origem. Ou escolha Criar novo OAI.
  7. Na caixa de diálogo, nomeie sua nova identidade de acesso de origem e, então, escolha Criar.
  8. Em Política de bucket, selecione Sim, atualize a política de bucket.
  9. Escolha Salvar alterações.
  10. No Console do Amazon S3, na sua lista de buckets, escolha o bucket que é a origem da distribuição do CloudFront.
  11. Escolha a guia Permissões.
  12. Em Política de bucket, confirme se você vê uma declaração semelhante à seguinte:
{{

"Sid": "1",

"Effect": "Allow",

"Principal": {

"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EAF5XXXXXXXXX"

},

"Action": "s3:GetObject",

"Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*"

}

Observação: Revise sua política de bucket para ver todas as declarações com “Efeito”: “Negar” que impede o acesso ao bucket a partir do CloudFront OAI. Modifique essas instruções para que o OAI do CloudFront possa acessar objetos no bucket.

Além disso, revise sua política de bucket para ver se há declarações com “Efeito”: “Permitir” que permite o acesso ao bucket de qualquer fonte que não seja o CloudFront OAI. Modifique essas declarações para seu caso de uso.

Informações relacionadas

Criando uma distribuição

Gerenciamento de identidade e acesso no Amazon S3

AWS OFICIAL
AWS OFICIALAtualizada há um ano