繁体   English   中英

如何从 docker 容器内的主机工作站获取 aws 凭据

[英]how to get aws credentials from host workstation, inside docker container

我正在尝试将我的 AWS 凭证放入我的 Docker 容器中,以便在我的本地(用于开发)上使用。 我发现这篇文章https://cameroneckelberry.co/words/getting-aws-credentials-into-a-docker-container-without-hardcoding-it ,但我不知道如何“创建 AWS shell 脚本”或-profile是什么。 我在我的系统上没有看到。 是的,我确实安装了 AWS CLI,并且还把我的AWS_ACCESS_KEY_ID和我的AWS_SECRET_ACCESS_KEY放入了我的.env文件中。 我还按要求将我的凭据放入$home/.aws/credentials中,但看不到这对 env 变量有何影响。 来自文章:

运行 $aws help 我们看到有一个 --profile 参数。 利用这一点,我们可以编写一个 shell 脚本来获取我们的凭据到我们的 Docker 容器中。

AWS_ACCESS_KEY_ID=$(aws --profile default configure get aws_access_key_id) AWS_SECRET_ACCESS_KEY=$(aws --profile default configure get aws_secret_access_key)

docker 构建-t my_app。 docker 运行 -it --rm \ -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \ -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY

如果有人可以确切地解释该怎么做,就像对孩子说话一样,我将不胜感激。

我认为最简单的方法是做 AWS 在展示如何将本地容器与 AWS 服务(例如本地 AWS Glue )一起使用时所做的事情。 即他们使用选项与 docker 容器以只读模式共享~/.aws/

-v ~/.aws:/root/.aws:ro

显然,您必须调整上面的路径以匹配您的本地和 docker 设置。 因此,您的 docker 命令可能是:

docker run -it --rm -v ~/.aws:/root/.aws:ro <name-of-image-to-run>

另一种方法是使用您已经在尝试的 docker 环境变量传递 AWS 凭证。

关于--profile 您的~/.aws可以有多个配置文件,例如针对不同的 AWS 账户。 使用--profile您指定要使用的配置文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM