У нас есть приложение, размещенное локально, а не на EC2. Можно ли получить доступ к AWS S3 с помощью роли IAM вместо профиля или учетных данных из java? Группа безопасности выразила обеспокоенность по поводу локального хранения учетных данных, поскольку они уязвимы.
Насколько я понял, я нашел варианты доступа с использованием учетных данных, хранящихся в Environment или в .aws в качестве профиля. Если нам нужна аутентификация на основе ROLE, тогда приложение должно быть развернуто в EC2. Но у нас есть локальный сервер. Сообщите, есть ли у вас какие-либо предложения.




Я не уверен, что понимаю, что вы хотите сделать, но почему бы не назначить для этой роли специального пользователя?
Еще одна вещь, которая может вам пригодиться, - это использование временных учетных данных. Вообще у Amazon для этого есть два сервиса - Cognito и STS (насколько я понимаю, Cognito использует STS за кулисами). У них разные ограничения, но в целом они позволяют получать учетные данные в течение ограниченного времени. Таким образом, вы получите идентификатор доступа, секрет (а также идентификатор сеанса), но они будут временными.
We have the application hosted locally not on EC2. Is it possible to access the AWS S3 using the IAM Role instead of profile or credentials from java?
Сервисные роли привязаны к сервисам AWS, поэтому, короче говоря, для вашего локального сервера вам необходимо использовать ключи API AWS.
The security team has raised concern about storing the credentials locally as it is vulnerable.
К сожалению, в конце вам нужно где-то сохранить учетные данные. Даже при использовании таких служб, как Cognito или STS, вам нужно будет где-то хранить учетные данные для службы (фактически - для любой внешней или облачной службы, независимо от того, какое облако или службу вы можете использовать).
ИМХО, лучшее, что вы можете сделать, - это использовать выделенные учетные данные AWS (ключи API) с разрешением только на то, что действительно необходимо.