Meu problema
Tenho um bucket S3 público que serve como solução de armazenamento para arquivos grandes (GBs) que envio para colegas e clientes. Os arquivos são excluídos automaticamente após algumas semanas.
O problema com essa configuração é que posso sofrer cobranças significativas se alguém iniciar um DDOS e fizer download em massa de um dos meus links. Posso acabar pagando enormes taxas de rede de saída e quero evitá-lo.
Uma solução pode ser acionar uma função do Lambda sempre que alguém baixar um objeto e incrementar um contador do DynamoDB para o objeto. Se o contador ultrapassar um limite razoável (digamos, 50 downloads), a função Lambda tornará o arquivo privado para evitar taxas adicionais.
Minha pergunta
Como posso configurar uma função do Lambda para ser acionada quando alguém solicita um arquivo de um bucket específico do S3?