LoginSignup
6

More than 3 years have passed since last update.

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

Posted at

課題

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6