Странная ошибка Powershell `Set-AWSCredentials` с файлом INI

Я работаю над автоматическим сценарием PowerShell и хочу правильно хранить учетные данные AWS.

Согласно документации, я должен иметь возможность хранить учетные данные в файле .ini, подобном этому

. \ myAWSCredentials.ini

[default]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

[namedProfile]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

и загрузить его в свою среду с помощью

Set-AWSCredentials -ProfilesLocation .\myAWSCredentials.ini

or

Set-AWSCredentials -ProfileName namedProfile -ProfilesLocation .\myAWSCredentials.ini

Но я получаю ошибку, которая не имеет смысла - какое отношение PowerShell имеет к файлу App.config?

Set-AWSCredentials: ошибка при загрузке сохраненных учетных данных (расположение профиля = '. \ MyAWSCredentials.ini'). Ошибка: App.config не содержит учетных данных. Добавьте либо AWSAccessKey и AWSSecretKey, либо AWSProfileName. В строке: 1 символ: 1 + Set-AWSCredentials -ProfilesLocation. \ MyAWSCredentials.ini + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [Set-AWSCredentials], ArgumentException + FullyQualifiedErrorId: System.ArgumentException, Amazon.PowerShell.Common.SetCredentialsCmdlet


person Nathan    schedule 08.12.2015    source источник


Ответы (3)


В ходе расследования выяснилось, что у нас есть ошибка в обработке файла формата .ini в последних выпусках (начиная с версии 3.1.31.0), которую я сейчас исправляю.

Если вы не используете один из этих выпусков (и я не думаю, что вы основывались на сообщении, которое было исправлено в этих выпусках), попробуйте указать полный путь к файлу учетных данных в -ProfilesLocation - возможно, «Текущий путь» с точки зрения PowerShell - это не то, что вы думаете, когда запускается командлет (я сталкивался с этим с другими файлами, к которым я пытался получить доступ, например, из моего профиля).

Я обновлю дальше, когда исправлю проблему.

person Steve Roberts    schedule 08.12.2015
comment
Теперь была выпущена версия v3.1.33.0, которая исправляет отмеченную мной ошибку (инструменты выдают ошибку с ошибкой «профиль не найден» при использовании файлов учетных данных текстового формата. При условии, что. \ является правильным для местоположения файла, или вы передаете полный путь к файлу учетных данных, вы должны иметь возможность загружать учетные данные и не сталкиваться со странным сообщением app.config. - person Steve Roberts; 09.12.2015
comment
Большое спасибо, Стив Робертс - я обновил и получил правильное поведение и улучшенные сообщения об ошибках. Я также испортил ключи в файле INI. Я отредактирую свой пример выше, чтобы никого не вести по тому же пути. - person Nathan; 09.12.2015
comment
По-прежнему требуется полный путь к файлу INI. Не знаю, почему и когда, но вы можете указать в документации. - person Nathan; 09.12.2015
comment
Спасибо, я передам это нашей команде разработчиков документации. Я думаю, что в любом случае безопаснее всегда использовать полный путь. - person Steve Roberts; 10.12.2015

Я думаю, что если вы полностью определите путь, он должен сработать ... относительные пути - зло.

Например, используйте: Set-AWSCredentials -ProfilesLocation c: \ Path \ to \ file \ myAWSCredentials.ini.

person CountScary    schedule 08.12.2015

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

Set-AWSCredentials -AccessKey xxxxxxx44Hxxxxxxx -SecretKey WVBUyB5ylBWtpxxxxxxxxxxxxxxxxxxxxxxxxxxx -StoreAs awskeys
person user8971654    schedule 20.11.2017