gpt4 book ai didi

amazon-web-services - 使用 Visual Studio 2017 运行 Docker 容器时如何管理 AWS 凭证

转载 作者:行者123 更新时间:2023-12-01 14:36:09 26 4
gpt4 key购买 nike

我有一个使用 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 容器的文件中。
我设想的一个解决方案可能涉及在 Docker 容器(或至少目录 %USERPROFILE%\.aws\ ) 然后在 Docker 容器中设置一个环境变量 ( AWS_SHARED_CREDENTIALS_FILE ?),以便 AWS 自动找到凭证文件。
我不知道如何做到这一点,因为我对 Docker 很陌生。

最佳答案

我寻求的解决方案是编辑 docker-compose.override.yml Docker 的 Visual Studio 工具添加的文件,并添加以下行:

version: '3'

services:
mydockerapp:
volumes:
- ${USERPROFILE}/.aws:/root/.aws
environment:
- AWS_REGION=(your region)
- AWS_PROFILE=default
这会将包含 AWS 凭证的 .aws 目录挂载到 Docker 容器中的适当位置( /root 是默认主目录),并设置环境变量以选择配置文件和区域。 launchSettings.json在 Docker 中运行时不使用 .NET Core 项目中的文件。

关于amazon-web-services - 使用 Visual Studio 2017 运行 Docker 容器时如何管理 AWS 凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49915011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com