Мотивация использования роли пользователя AWS IAM заключается в том, чтобы AWS автоматически обрабатывала ключи/учетные данные AWS для каждого служебного вызова. Этот подход используется за Apache Camel, который затем использует учетные данные для безопасной передачи данных, т. Е. Не сохраняет учетные данные в исходном коде.API-интерфейсы API AWS S3 с использованием учетных данных пользователя AWS IAM:
Проблема, которую я нашел, - это учетные данные, которые были сделаны в инструменте IAM, только в aws cli.
Например, я запускаю это успешно с автоматически сгенерированным учетными данными из IAM (установив их в пределах моего переменного окружения):
aws s3 cp test.txt s3://x/test.txt
Однако, когда я пытаюсь имитировать ту же операцию (тот же учетные данные) в пределах АНИ вызов, я даюсь это сообщение об ошибке:
The AWS Access Key Id you provided does not exist in our records.
(Service: Amazon S3; Status Code: 403; Error Code: InvalidAccessKeyId;
Request ID: 07A4FCDCA2E82F9E)
Кроме того, используя свои учетные данные безопасности учетной записи AWS (т.е. делает идентификатор ключа безопасности и ключ), я могу получить вышеупомянутый API работает. Таким образом, API не является проблемой (учитывая, что я тестировал 2 набора диатонических учетных данных).
Наконец, моя роль пользователя AWS IAM настроена на полный доступ к ведрам S3, и сам ведро S3 настроено для этого. Здесь я начал теряться на потенциальном пути.
Зная все это, я провел некоторое исследование и нашел людей с аналогичными проблемами (1) (2). Каждый источник представляет разные идеи для решения проблемы, но ни один из них не применим для моего использования с Apache Camel.
Для познания моего использования Apache Camel, мой пример кода выглядит следующим образом:
String awsS3Connection = "aws-s3://x" + "?accessKey=" + accessId +
"&secretKey=" + accessKey;
from(awsS3Connection)
.to(importProcessingEndpoint);
Я иду к тому же выводу, что вы сделали о поддержке Верблюда. Я увижу, есть ли какая-либо реализация или отсутствие правил для передачи пользовательских учетных данных в интерфейсе верблюда. Любая дополнительная информация, которую я обнаруживаю, будет размещена как отдельный ответ и комментарий по вашему ответу! –
Кажется, что последний aws-sdk не совместим с верблюдом, и поэтому поиск учетных данных работает, но клиент не работает с Camel. –