簡體   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