Доступ к сервисам AWS через роль IAM из длительно работающей службы ASP.NET Core - PullRequest
1 голос
/ 09 мая 2019

Мы разрабатываем веб-приложение ASP.NET Core, которое будет работать локально в среде клиента, и этому приложению необходим доступ к определенным ресурсам в нашей учетной записи AWS. Поскольку это пересекает организационную границу, мы создаем роль IAM в нашей учетной записи AWS и предоставляем клиенту доступ для принятия этой роли из своей учетной записи.

Я считаю, что способ, которым это должно работать, заключается в том, что приложение ASP.NET Core имеет «постоянные» учетные данные для учетной записи AWS клиента, а затем получает временные учетные данные для роли IAM в нашей учетной записи для выполнения работы. Тем не менее, приложение должно выполнять большую часть своей работы в IHostedService / BackgroundService, который является одноэлементным и работает в течение всего времени жизни приложения, поэтому, если мы используем стандартное внедрение зависимостей, у нас будет один длинный экземпляр данного клиента службы AWS. Кто-нибудь знает, имеет ли AWS SDK возможность постоянно повторно получать временные учетные данные для роли IAM? Если нет, то я предполагаю, что нам придется прекратить получать сервисные клиенты через DI и периодически создавать их заново для обновления учетных данных.

Ответы [ 2 ]

1 голос
/ 09 мая 2019

Я считаю, что способ, которым это должно работать, заключается в том, что приложение ASP.NET Core имеет «постоянные» учетные данные для учетной записи AWS клиента, а затем получает временные учетные данные для роли IAM в нашей учетной записи для выполнения работы.Однако приложению необходимо выполнить большую часть своей работы в

. Из документа об использовании функция AssumeRole SDK просто делает запрос на получение временных учетных данных в виде простых строк.Вы должны самостоятельно ввести эти учетные данные в любой объектный / сервисный клиент, для которого вы хотите использовать эти конкретные учетные данные, возвращаемые из AssumeRoleRequest

Это означает, что нет встроенного автоматического обновления, соответствующего вашим потребностям

0 голосов
/ 10 мая 2019

Возможно, вы захотите посмотреть awsume и плагин AutoAwsume для него.

Это то, что можно использовать для автоматического обновления временных учетных данных роли IAM на компьютере.

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

...