【发布时间】:2020-12-03 17:04:06
【问题描述】:
我编写了一些代码来从 AWS Secrets Manager 中检索我的密钥,以用于进一步处理其他组件。在我的开发环境中,我使用 AWS CLI 配置了我的凭证。编译代码后,我可以从 VS 以及生成的 exe 运行它。
这是连接到秘密管理器并检索秘密的代码
public static string Get(string secretName)
{
var config = new AmazonSecretsManagerConfig { RegionEndpoint = RegionEndpoint.USWest2 };
IAmazonSecretsManager client = new AmazonSecretsManagerClient(config);
var request = new GetSecretValueRequest
{
SecretId = secretName
};
GetSecretValueResponse response = null;
try
{
response = Task.Run(async () => await client.GetSecretValueAsync(request)).Result;
}
catch (ResourceNotFoundException)
{
Console.WriteLine("The requested secret " + secretName + " was not found");
}
catch (InvalidRequestException e)
{
Console.WriteLine("The request was invalid due to: " + e.Message);
}
catch (InvalidParameterException e)
{
Console.WriteLine("The request had invalid params: " + e.Message);
}
return response?.SecretString;
}
此代码从 AWS CLI 提取凭证,但是当我尝试在另一台 PC 上运行此代码时,它会按预期给出 IAM 安全错误,因为它无法确定连接到密钥管理器的凭证。
在生产中部署此类配置的最佳方法是什么?我是否需要在每个部署中安装和配置 AWS CLI?
【问题讨论】:
标签: amazon-web-services aws-cli aws-secrets-manager