開発環境、EC2環境で共通のコードで別の権限で S3 にアクセスしたい
ruby で aws-sdk gem を使って S3 にアクセスするプログラムがあるのですが
EC2 で動かす分には EC2 Role を割り当てて
Aws::S3::Client.new
と引数なしで動くのですが EC2 ではない開発環境でこのプログラムを動かしたとき
引数なしの s3 クライアントの credentials は何を参照するのでしょうか
ローカルのPC上の開発環境で共通のコードを動くようにするには
if ENV['AWS_ACCESS_KEY_ID'] && ENV['AWS_SECRET_ACCESS_KEY']
s3 = Aws::S3::Client.new(
access_key_id: ENV['AWS_ACCESS_KEY_ID'],
secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
)
else
s3 = Aws::S3::Client.new
end
のように分岐をかいて毎回キーペアをセットするしかないですか?
aws cli は
export AWS_DEFAULT_PROFILE=default
aws s3 ls
export AWS_DEFAULT_PROFILE=staging
aws s3 ls
のように環境変数にプロファイル名をいれるだけで見る先をかえてくれるのですが
ruby プログラムをこのような形で動かすことはできないでしょうか
よろしくお願いいたします