我有 .NET Framework 应用程序,我尝试AmazonSimpleSystemsManagementClient
在本地环境中使用 AWS 参数存储读取数据。此外,我还有 AWS CLI 生成的凭证,位于
用户/MyUser/.aws
文件夹。当我尝试使用凭据从 CMD 连接到参数存储时,它工作正常。尽管应用程序中的 AmazonSimpleSystemsManagementClient 具有默认构造函数,但它会引发异常“无法从 EC2 实例元数据服务获取 IAM 安全凭证。 ”当我尝试使用硬编码的工作密钥将 BasicAWSParameters 传递给客户端时,我遇到了另一个异常“安全令牌包含在请求无效”。
我还尝试安装 EC2Config,从 Visual Studio AWS Toolkit 初始化 AWS SDK Store。虽然这并没有改变比赛。我想避免使用环境变量或对密钥进行硬编码,因为密钥是生成的并且仅在 1 小时内有效。然后我应该重新生成,所以每次都在某个地方复制它们对我来说不方便。请建议如何解决该问题。
一些代码
_client = new AmazonSimpleSystemsManagementClient()
public string GetValue(string key)
{
if (_client == null)
return null;
var request = new GetParameterRequest
{
Name = $"{_baseParameterPath}/{key}",
WithDecryption = true,
};
try
{
var response = _client.GetParameterAsync(request).Result;
return response.Parameter.Value;
}
catch (Exception exc)
{
return null;
}
}
凭据文件如下所示(我删除了不公开的键值):
[default]
aws_access_key_id= KEY VALUE
aws_secret_access_key= KEY VALUE
aws_session_token= KEY VALUE
[MyProfile]
aws_access_key_id= KEY VALUE
aws_secret_access_key= KEY VALUE
aws_session_token= KEY VALUE