AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表
AWS による SDK 認証
AWS のサービス を使用して開発する際には、AWS によりコードがどのように認証するかを設定する必要があります。環境と利用可能な AWS のアクセスに応じて、AWS リソースへのプログラムによるアクセスはさまざまな方法で設定できます。
認証方法を選択して SDK 用に設定するには、AWS SDK とツールのリファレンスガイドの「認証とアクセス」を参照してください。
ローカルで開発していて、雇用主から認証方法が与えられていない新規ユーザーには、AWS IAM Identity Center を設定することをお勧めします。この方法には、設定を簡単に行ったり、AWS アクセスポータルに定期的にサインインしたりするための AWS CLI をインストールすることも含まれます。この方法を選択した場合、AWS SDK とツールのリファレンスガイドの IAM Identity Center 認証の手順を完了したあと、環境には次の要素が含まれるはずです。
-
アプリケーションを実行する前に AWS アクセスポータルセッションを開始するために使用する AWS CLI。
-
SDK から参照できる設定値のセットを含む
[default]
プロファイルがある共有 AWSconfig
ファイル。このファイルの場所を確認するには、AWS SDK とツールのリファレンスガイドの「共有ファイルの場所」を参照してください。 -
共有
config
ファイルはregion
設定を設定します。これにより、SDK が AWS リクエストに使用するデフォルト AWS リージョン が設定されます。このリージョンは、使用するリージョンが指定されていない SDK サービスリクエストに使用されます。 -
SDK は、リクエストを AWS に送信する前に、プロファイルの SSO トークンプロバイダー設定を使用して認証情報を取得します。IAM Identity Center 許可セットに接続された IAM ロールである
sso_role_name
値により、アプリケーションで使用されている AWS のサービス にアクセスできます。次のサンプル
config
ファイルは、SSO トークンプロバイダー設定で設定されたデフォルトプロファイルを示しています。プロファイルのsso_session
設定は、指定されたsso-session
セクションを参照します。sso-session
セクションには、AWS アクセスポータルセッションを開始するための設定が含まれています。[default] sso_session = my-sso sso_account_id =
111122223333
sso_role_name =SampleRole
region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url =https://provided-domain.awsapps.com/start
sso_registration_scopes = sso:account:access
JavaScript 用 SDK では、IAM Identity Center 認証を使用するために追加のパッケージ (SSO
や SSOOIDC
など) をアプリケーションに追加する必要はありません。
AWS アクセスポータルセッションを開始する
AWS のサービス にアクセスするアプリケーションを実行する前に、SDK が IAM Identity Center 認証を使用して認証情報を解決するためのアクティブな AWS アクセスポータルセッションが必要です。設定したセッションの長さによっては、アクセスが最終的に期限切れになり、SDK で認証エラーが発生します。AWS アクセスポータルにサインインするには、AWS CLI で次のコマンドを実行します。
aws sso login
ガイダンスに従い、デフォルトのプロファイルを設定している場合は、--profile
オプションを指定してコマンドを呼び出す必要はありません。SSO トークンプロバイダー設定で名前付きプロファイルを使用している場合、コマンドは aws sso login --profile named-profile
です。
既にアクティブなセッションがあるかどうかをオプションでテストするには、次の AWS CLI コマンドを実行します。
aws sts get-caller-identity
セッションがアクティブな場合、このコマンドへの応答により、共有 config
ファイルに設定されている IAM Identity Center アカウントとアクセス許可のセットが報告されます。
注記
既にアクティブな AWS アクセスポータルセッションがあって aws sso
login
を実行している場合は、認証情報を入力するように要求されません。
サインインプロセス中に、データへの AWS CLI アクセスを許可するように求められる場合があります。AWS CLI は SDK for Python 上に構築されているため、アクセス許可メッセージには botocore
の名前のさまざまなバリエーションが含まれる場合があります。
詳細認証情報
人間のユーザーとは、別名人間 ID と呼ばれ、人、管理者、デベロッパー、オペレーター、およびアプリケーションのコンシューマーを指します。人間のユーザーは AWS の環境とアプリケーションにアクセスするための ID を持っている必要があります。組織のメンバーである人間のユーザー、つまり、ユーザーや開発者は、ワークフォースアイデンティティと呼ばれます。
AWS にアクセスするときは、一時的な認証情報を使用します。一時的な資格情報を提供するロールを引き受けることで、人間のユーザーの ID プロバイダーを使用した AWS アカウントへのフェデレーションアクセスが可能になります。一元的なアクセス管理を行うには、AWS IAM Identity Center (IAM Identity Center) を使用して、ご自分のアカウントへのアクセスと、それらのアカウント内でのアクセス許可を管理することをお勧めします。その他の代替案については、以下を参照してください。
-
ベストプラクティスの詳細については、IAM ユーザーガイドの「IAM でのセキュリティのベストプラクティス」を参照してください。
-
短期 AWS 認証情報を作成するには、IAM ユーザーガイドの「一時的セキュリティ認証情報」を参照してください。
-
その他の SDK for JavaScript 認証情報プロバイダーについては、AWS SDK とツールのリファレンスガイドの「Standardized credential providers」(標準化された認証情報プロバイダー) を参照してください。