
Ich möchte die direkte Interaktion mit meinem S3-Bucket verhindern. Während mein S3-Bucket richtig konfiguriert ist, möchte ich eine (leistungsfähige) Methode finden, um den Zugriff auf eine einzelne IP zu sperren und gleichzeitig weiterhin Dateien von S3 bereitzustellen.
Die Architektur, die ich mir vorstelle, ist ungefähr:
user request -> proxy web application -> s3 bucket
So dass der Benutzer weder mit der Verwendung von S3 konfrontiert wird noch darauf aufmerksam gemacht wird. Die Belastung, die ich zu umgehen versuche, besteht darin, dass ich dadurch für die CPU-Auslastung jeder Anfrage zahlen muss, was viele der Vorteile der Verwendung von S3 von vornherein einschränkt. Ich stelle mir vor, dass das Erreichen dieses Ziels einen sehr schnellen und sehr minimalen Webdienst erfordern würde.
Gibt es eine Möglichkeit, S3 vor Benutzern zu verbergen, ohne seine Vorteile in einem Proxy zu verschwenden?
Hinweis:
Ich möchte nicht in Betracht ziehen, dass S3 sicher konfiguriert sein könnte. In meinem Fall gibt es organisatorische Gründe, weitere Sicherheitsmaßnahmen in Betracht zu ziehen. Ich würde mich über die Gedankenübung hier freuen, auch wenn es wirklich die falsche Wahl ist.
Darüber hinaus ist es keine Option, einen Dienst anstelle von S3 zu verwenden. Wir sprechen hier nur über S3.
Antwort1
Wenn Sie den Zugriff auf eine IP sperren möchten, können Sie diese Berechtigung über IAM festlegen. Auf diese Weise müssen Sie keinen Reverse-Proxy-Unsinn machen.
Sie könnten eine globale S3-Leserichtlinie erstellen und dann die Bedingung festlegen, dass die Anfragen von einer bestimmten IP-Adresse stammen müssen.
Ein Beispiel für eine Bedingungsanweisung ist:
"Condition" : {
"IpAddress" : {
"aws:SourceIp" : ["192.0.2.0/24", "203.0.113.0/24"]
}
}