Proxy reverso de desempenho para S3

Proxy reverso de desempenho para S3

Quero evitar a interação direta com meu bucket S3. Embora meu bucket S3 esteja configurado corretamente, quero encontrar um método (de desempenho) para bloquear o acesso a um único IP enquanto ainda atende arquivos do S3.

A arquitetura que imagino é algo:

user request -> proxy web application -> s3 bucket

De forma que o usuário não seja exposto ou informado sobre o uso do S3. A responsabilidade que estou tentando encontrar é que isso envolverá o pagamento da carga da CPU para cada solicitação, reduzindo muitas das vantagens de usar o S3 em primeiro lugar. Imagino que atingir esse objetivo envolveria um serviço web muito rápido e mínimo.

Existe uma maneira de ocultar o S3 dos usuários sem desperdiçar suas vantagens em um proxy?

Observação:

Não quero considerar que o S3 possa ser configurado com segurança. No meu caso, existem razões organizacionais para considerar procedimentos de segurança adicionais. Eu gostaria do exercício de reflexão aqui, mesmo que seja realmente a escolha errada.

Além disso, não é uma opção usar um serviço em vez do S3. Estamos falando apenas do S3 aqui.

Responder1

Se quiser bloquear o acesso a um IP, você pode definir essa permissão via IAM - dessa forma, você não precisa fazer nenhuma bobagem de proxy reverso.

Você pode criar uma política S3 de leitura global e, em seguida, definir uma condição de que as solicitações devem ser de um endereço IP específico.

Um exemplo de declaração de condição é:

"Condition" :  {
       "IpAddress" : {
          "aws:SourceIp" : ["192.0.2.0/24", "203.0.113.0/24"]
      }
}

informação relacionada