Проблемы с авторизацией при использовании AWS Java SDK S3 Client через Nginx Прокси - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь реализовать прокси NGINX перед Amazon S3. Аналогично реализации здесь:

https://blog.sentry.io/2017/03/01/dodging-s3-downtime-with-nginx-and-haproxy

Работает для клиента Python, но не для клиента AWS Java SDK:

https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk

Я сузил вопрос до заголовка авторизации. В версии 1.11.x aws - java -sdk заголовок Host включен при вычислении подписи для заголовка Authorization. Из-за этого клиент получает 403 ошибки через прокси, если я не обманул клиента, установив s3.amazon aws .com на NGINX IP прокси.

Это не проблема с 1.10. х, но наше приложение не будет работать с этой версией.

Кроме того, заголовок Host не упоминается ни в одной документации для aws - java -sdk, и из того, что я прочитайте его должен использовать только заголовки amz-, так что это должно работать, но мой клиент добавляет не amz- заголовки в список SignedHeaders.

Так что вопрос ...

Могу ли я решить эту проблему на уровне Nginx? Существуют ли какие-либо опции клиента aws - java -sdk, которые помогут или позволят мне настроить используемые им заголовки?

1.11 Пример заголовка аутентификации:

Authorization: AWS4-HMAC-SHA256 Credential=AKIAXXXXXXXXXXXX/20200203/us-east-1/s3/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-retry;content-length;content-md5;content-type;host;user-agent;x-amz-content-sha256;x-amz-date;x-amz-decoded-content-length;x-amz-server-side-encryption, Signature=XXXXXXXXXXXXXX

1.10 Пример заголовка аутентификации:

Authorization: AWS AKIAXXXXXXXXXXXX

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...