Я изо всех сил пытался реализовать менеджер секретов на .NET Core. Он всегда возвращал меня с Socket Exception и HTTPRequestException при вызове метода GetSecretValueAsync, пока работал на компьютере моих коллег.
SocketException: была предпринята попытка операции с сокетом в недоступной сети HttpRequestException: была предпринята попытка операции с сокетом в недоступной сети
Я уже настроил файл учетных данных, необходимый в профиле AWS по умолчанию, расположенном в папке C:\Users\USERNAME.aws\credentials в Windows, а также в каждой папке Iaw пула приложений IIS. Все учетные данные хранятся в формате UTF-8 ранее ANSI.
Вот пример учетных данных, которые я получил с аутентификацией MFA: Вот моя конфигурация учетных данных aws и расположение папки: В основном мои настройки с моим коллегой совпадают. Теперь я почти в тупике. Если у кого-либо есть опыт или команда веб-служб AWS, желающая помочь мне с решением этой проблемы, сообщите мне об этом. Спасибо. Приветствия.
var data = secretManager.GetSecretValueAsync(
new GetSecretValueRequest
{
SecretId = configName
}
).Result;
ОБНОВЛЕНИЕ: я обнаружил реальную проблему здесь, но все еще не нашел решения. Потому что я не могу понять, откуда менеджер по секретам получает учетные данные. И к вашему сведению, этот метод работает на .NET Framework на моем ПК.
Нужна дополнительная информация, чтобы помочь. 1. путь для учетных данных aws обычно C:\Users\USERNAME.aws\not C:\Users\USERNAME.aws\
2. в этой папке должен быть файл с именем config
котором определяется регион. Укажите регион, в котором настроен AWS Secrets Manager. Вот пример
[default]
region = us-east-1
Если это не помогает, опишите конфигурацию, пожалуйста
Я наконец выяснил реальную проблему здесь. Это на самом деле потому, что мне нужно разрешить пользователю группы IIS_IUSRS доступ к папке системного профиля IIS. Всем спасибо!