我正在处理无人参与的PowerShell脚本,并希望以正确的方式存储AWS凭据。
根据the documentation,我应该可以将凭证存储在像这样的.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
或
Set-AWSCredentials -ProfileName namedProfile -ProfilesLocation .\myAWSCredentials.ini
但是我收到一个没有意义的错误 - PowerShell与 App.config 文件有什么关系?
Set-AWSCredentials:加载存储的凭据时出错,(个人资料 location ='。\ 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
答案 0 :(得分:5)
原因是在研究这个问题时,我们在最新版本(3.1.31.0以后)处理.ini格式文件时遇到了一个错误,我现在正在修复它。
如果您没有使用其中一个版本(我认为您不是基于这些版本中已修复的消息),那么请尝试将凭据文件的完整路径提供给-ProfilesLocation - 它可以就PowerShell所关注的“当前路径”而言,当cmdlet运行时,我认为它不是你想象的那样(我已经尝试过访问其他文件,例如我的个人资料)。
我在修复问题后会进一步更新。
答案 1 :(得分:1)
我认为如果你完全符合道路应该有效......相对路径是邪恶的。
例如使用: Set-AWSCredentials -ProfilesLocation c:\ Path \ to \ file \ myAWSCredentials.ini
答案 2 :(得分:0)
您可以通过以下PowerShell用户指南轻松存储凭据
Set-AWSCredentials -AccessKey xxxxxxx44Hxxxxxxx -SecretKey WVBUyB5ylBWtpxxxxxxxxxxxxxxxxxxxxxxxxxxx -StoreAs awskeys