コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

RubyのAWS SDKの認証情報は読み込み順番があるので気をつける

そういやどういう順番だっけか…みたいになるので

環境

aws-sdk-core (2.9.20)

説明

AWS SDK for Ruby は、次の手順で認証情報を検索します。

クライアントオブジェクト内で認証情報を設定する

Aws.config を使用して認証情報を設定する

環境変数を使用して認証情報を設定する

共有認証情報の設定

IAM を使用して認証情報を設定する

言い換えると

  1. Aws::S3::Client.new(params) のparamsに指定した認証情報
  2. Aws.config.update(params)のparamsに指定した認証情報
  3. AWS_ACCESS_KEY_ID 等シェル内で指定した認証情報用の環境変数
  4. ~/.aws/credentials で記述した認証情報
  5. インスタンスの場合のみ)IAMロールに指定された認証情報

という感じで決まるらしい。(らしいと書いたのは裏付け検証がしっかりできいないため)

大体他の言語のSDKCLIの読み込み条件見ていると

環境変数 > プロファイル情報 > コンテナにセットされた情報

ってのがベースラインにあって、それぞれの要素が間間に挟まるみたい。

参考リンク