
Quiero evitar la interacción directa con mi depósito S3. Si bien mi depósito de S3 está configurado correctamente, quiero encontrar un método (rendiente) para bloquear el acceso a una única IP mientras sigo sirviendo archivos desde S3.
La arquitectura que imagino es algo:
user request -> proxy web application -> s3 bucket
De modo que el usuario no esté expuesto ni tenga conocimiento del uso de S3. La responsabilidad que estoy tratando de encontrar es que esto implicará pagar por la carga de la CPU por cada solicitud, lo que reducirá muchas de las ventajas de usar S3 en primer lugar. Me imagino que lograr este objetivo implicaría un servicio web muy rápido y mínimo.
¿Existe alguna manera de ocultar S3 a los usuarios sin desperdiciar sus ventajas en un proxy?
NÓTESE BIEN:
No quiero considerar que S3 pueda configurarse de forma segura. En mi caso, existen razones organizativas para considerar medidas de seguridad adicionales. Disfrutaría el ejercicio de pensamiento aquí incluso si realmente es una elección equivocada.
Además, no es una opción utilizar un servicio en lugar de S3. Aquí solo estamos hablando de S3.
Respuesta1
Si desea bloquear el acceso a una IP, puede configurar ese permiso a través de IAM; de esta manera, no tendrá que hacer ninguna tontería con el proxy inverso.
Puede crear una política de lectura global de S3 y luego establecer la condición de que las solicitudes deben provenir de una dirección IP específica.
Un ejemplo de declaración de condición es:
"Condition" : {
"IpAddress" : {
"aws:SourceIp" : ["192.0.2.0/24", "203.0.113.0/24"]
}
}