【发布时间】:2018-09-29 14:22:44
【问题描述】:
我有一个使用 Visual Studio 2017 开发的 .NET Core 2.0 控制台应用程序。launchSettings.json 文件设置了一个环境变量,允许它使用开发人员的默认 AWS 凭据
"environmentVariables": {
"AWS_PROFILE": "default"
...
}
我现在已经为 VS 解决方案添加了 Docker 支持,并尝试在 Linux Docker 容器中运行该应用程序。当然它会失败并出现以下异常,因为它无法找到配置文件:
Amazon.Runtime.AmazonClientException: Unable to find the 'default' profile in CredentialProfileStoreChain.
在开发环境中将 AWS 凭证传递给 Docker 容器的最佳方式是什么?我显然不想将我的凭据作为环境变量放在 launchSettings.json 中,因为该文件已提交到源代码管理。
编辑
为了清楚起见,我正在寻找一种解决方案,允许我的 Docker 容器在开发人员机器上的 Visual Studio 2017 中进行调试时访问开发人员的凭据。发布版本将部署到 AWS,并且 IAM 角色将排除对凭证的需求。凭据在文件 %USERPROFILE%\.aws\credentials 中,我正在寻找一种解决方案,使我能够在 Docker 容器中使用它们而不将它们暴露在其他地方:因此我不想将它们放在 launchSettings.json 或任何其他启动 Docker 容器的文件。
我设想的解决方案可能涉及将 Windows 驱动器安装在 Docker 容器中(或者至少是目录
%USERPROFILE%\.aws\) 然后在 Docker 容器中设置一个环境变量 (AWS_SHARED_CREDENTIALS_FILE ?),以便 AWS 自动找到凭证文件。
我不知道怎么做,因为我对 Docker 很陌生。
【问题讨论】:
-
你检查this了吗?
-
@Venkatesh,是的,我确实检查过,它提供了在 AWS 上部署时管理 AWS 凭证的解决方案(使用 IAM 角色)。但我的问题是关于在我的开发机器上运行容器。
标签: amazon-web-services docker visual-studio-2017