Nathan
Nathan

Reputation: 3920

Weird Powershell `Set-AWSCredentials` error with INI file

I'm working on an unattended PowerShell script and want to store AWS credentials the Right Way.

According to the documentation, I should be able to store credentials in a .ini file like this

.\myAWSCredentials.ini

[default]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

[namedProfile]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

and load it into my environment with

Set-AWSCredentials -ProfilesLocation .\myAWSCredentials.ini

or

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

But I get an error that doesn't make sense— what does PowerShell have to do with an App.config file?

Set-AWSCredentials : Error loading stored credentials, (profile location = '.\myAWSCredentials.ini'). Error: App.config does not contain credentials information. Either add the AWSAccessKey and AWSSecretKey or AWSProfileName. At line:1 char:1 + Set-AWSCredentials -ProfilesLocation .\myAWSCredentials.ini + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Set-AWSCredentials], ArgumentException + FullyQualifiedErrorId : System.ArgumentException,Amazon.PowerShell.Common.SetCredentialsCmdlet

Upvotes: 4

Views: 1707

Answers (3)

user8971654
user8971654

Reputation: 1

easily u can store the credentials by following powershell user guide

Set-AWSCredentials -AccessKey xxxxxxx44Hxxxxxxx -SecretKey WVBUyB5ylBWtpxxxxxxxxxxxxxxxxxxxxxxxxxxx -StoreAs awskeys

Upvotes: 0

CountScary
CountScary

Reputation: 11

I think if you fully qualify the path it should work....relative paths are evil.

For example use: Set-AWSCredentials -ProfilesLocation c:\Path\to\file\myAWSCredentials.ini

Upvotes: 1

Steve Roberts
Steve Roberts

Reputation: 734

Turns out in investigating this, we have a bug in handling the .ini format file in the latest releases (3.1.31.0 onwards) that I'm fixing now.

If you're not using one of these releases (and I don't think you are based on the message, which was fixed in those releases) then try supplying the full path to the credential file to -ProfilesLocation - it could be that the 'current path' as far as PowerShell is concerned isn't what you think it is when the cmdlet runs (I've run into this with other files I've tried to access for example from my profile).

I'll update further when I've fixed the issue.

Upvotes: 6

Related Questions