Help us understand the problem. What is going on with this article?

DockerコンテナにホストのAWSアクセスキーを渡す方法

More than 1 year has passed since last update.

課題

DockerコンテナからAWSのAPIにアクセスしたい場合、ホストがEC2ならIAMロールが使える。
しかしホストがローカルのMacの場合は、アクセスキーとシークレットアクセスキーを、どうにかしてコンテナに渡す必要がある。

結論

aws cliのconfigure getサブコマンドを使う。
具体的には下記のようにする。

#!/usr/bin/env sh
AWS_ACCESS_KEY_ID=$(aws configure get aws_access_key_id)
AWS_SECRET_ACCESS_KEY=$(aws configure get aws_secret_access_key)

docker run --rm \
 -e AWS_REGION=ap-northeast-1 \
 -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
 -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
 ()

このようにすればコンテナ内のAWC CLI指定の環境変数にアクセスキー等が格納されるので、そのままaws cliコマンドなどが使える。
プロファイルが複数ある場合は下記のようにして切り替えることもできる。

AWS_ACCESS_KEY_ID=$(aws --profile (プロファイル名) configure get aws_access_key_id)
AWS_SECRET_ACCESS_KEY=$(aws --profile (プロファイル名) configure get aws_secret_access_key)

参考
get — AWS CLI 1.16.174 Command Reference

AWS CLI の設定 - AWS Command Line Interface

kter
creema
全国のつくり手とつかい手が Web 上で直接作品を売買できる、日本最大級のハンドメイドマーケットプレイス「Creema」の企画、開発、運営するスタートアップです。「本当にいいものが埋もれてしまうことのない、フェアで大規模な新しい経済圏をつくろう」を合言葉に、メンバー一丸となって、たのしくストイックに活動を行っています。
https://www.creema.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away