Как установить учетные данные в AWS SDK на NET Core?
Я новичок в AWS SDK, и я стараюсь следовать документации AWS но практически не дает мне то, что мне нужно для настройки.
Официальные документы говорят мне добавить это в appsettings.json:
{
"AWS": {
"Profile": "local-test-profile",
"Region": "us-west-2"
}
}
И затем создайте клиента:
var options = Configuration.GetAWSOptions();
IAmazonS3 client = options.CreateServiceClient<IAmazonS3>();
Это вызывает исключение, говорящее, что оно не может найти учетные данные. Где я могу поместить идентификатор Api и ключ? Что это за профиль?
Пожалуйста, имейте в виду, что у меня нет никаких предпочтений в отношении того, как это установить. Я просто пытаюсь следовать официальной документации для .NET Core, и их единственный пример не работает. Документы, похоже, подразумевают, что я должен иметь предварительное знание многих своих условий и настроек или что я переношу существующее приложение и уже настроил все настройки.
Может ли кто-нибудь указать мне, чего не хватает в этом примере, только чтобы API правильно подключился к AWS?
Ответы
Ответ 1
Файл json - это $"appsettings. {env.EnvironmentName}.json", поэтому вы должны вызвать его appsettings.Development.json и установить переменную окружения.
Вы указали свой профиль "local-test-profile" в файле учетных данных AWS.
Должно быть в C:\Users\{USERNAME} \. aws\credentials
[local-test-profile]
aws_access_key_id = your_access_key_id
aws_secret_access_key = your_secret_access_key
Если вы не хотите, чтобы он находился в папке по умолчанию, вы можете установить конфигурационный файл javascript "ProfilesLocation".
Ответ 2
Возможно, это слишком поздно для вас, но если вы используете докер или имеете какую-то другую среду/настройку, где невозможно/легко использовать профили AWS, вы все равно можете использовать окружения vars. Например:
var awsOptions = Configuration.GetAWSOptions();
awsOptions.Credentials = new EnvironmentVariablesAWSCredentials();
services.AddDefaultAWSOptions(awsOptions);
services.AddAWSService<IAmazonS3>();
Затем установите в вашей среде AWS_ACCESSS_KEY_ID и AWS_SECRET_ACCESS_KEY и AWS_REGION.
Кажется, что Amazon сделал это труднее найти в документах, чем это должно быть.
Запуск в AWS для реалов - это нормально, потому что вы должны использовать роль, но если вы используете докер для dev, тогда настройка профиля в контейнере - это PITA.
Ответ 3
В той же документации также содержится раздел для настройки учетных данных.
Посмотрите здесь http://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html
В нем нет примера настройки учетных данных с помощью файла appSettings.json, поскольку они не считают это правильным (безопасным) способом его выполнения.
Вот из вводной части раздела о настройке учетных данных:
Не помещайте лимитированные ключи доступа в приложение, включая проект App.config или файл Web.config. Если вы это сделаете, вы создадите риск случайно выставлять свои учетные данные, если, например, вы загружаете проект в общедоступный репозиторий.