Node.js での認証情報の設定 - AWS SDK for JavaScript

AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表されています。AWS SDK for JavaScript v3 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

Node.js での認証情報の設定

Node.js では、SDK に認証情報を提供する方法がいくつかあります。これらの中には、より安全なものもあれば、アプリケーションの開発中により便利に使えるものもあります。Node.js で認証情報を取得する場合は、環境変数やロードした JSON ファイルなど、複数のソースに依存するように注意してください。変更が行われたことに気付かずに、コードの実行に使用されるアクセス許可を変更してしまう可能性があります。

推奨の順序で認証情報を提供する方法は次のとおりです。

  1. Amazon EC2 の AWS Identity and Access Management (IAM) ロールからロード

  2. 共有認証情報ファイル (~/.aws/credentials) から読み込む

  3. 環境変数から読み込む

  4. ディスク上の JSON ファイルから読み込む

  5. JavaScript SDK によって提供されるその他の認証情報プロバイダークラス

SDK で利用できる認証情報ソースが複数ある場合、デフォルトの選択優先順位は次のとおりです。

  1. サービスクライアントコンストラクタで明示的に設定されている認証情報

  2. 環境変数

  3. 共有認証情報ファイル

  4. ECS 認証情報プロバイダーからロードされた認証情報 (該当する場合)

  5. 共有 AWS 設定ファイルまたは共有認証情報ファイルで指定された認証情報プロセスを使用して取得された認証情報です。詳細については、「設定された認証情報プロセスを使用して Node.js で認証情報をロードする」を参照してください。

  6. Amazon EC2 インスタンスの認証情報プロバイダーを使用して AWS IAM からロードされた認証情報 (インスタンスメタデータで設定されている場合)

詳細については、API リファレンスの Class: AWS.Credentials および Class: AWS.CredentialProviderChain を参照してください。

警告

アプリケーションで AWS 認証情報をハードコードすることは可能ですが、そうしないことをお勧めします。認証情報をハードコーディングすると、アクセスキー ID とシークレットアクセスキーが公開される危険があります。

このセクションのトピックでは、認証情報を Node.js にロードする方法について説明します。