AWS SDK for C++ を使用した AWS での認証
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 =111122223333sso_role_name =SampleRoleregion = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url =https://provided-domain.awsapps.com/startsso_registration_scopes = sso:account:access
AWS SDK for C++ では、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 の名前のさまざまなバリエーションが含まれる場合があります。
詳細認証情報
人間のユーザーは、人的アイデンティティとも呼ばれ、人、管理者、デベロッパー、オペレーター、およびアプリケーションのコンシューマーを指します。人間のユーザーは AWS の環境とアプリケーションにアクセスするための ID を持っている必要があります。組織のメンバーである人間のユーザーは、ワークフォースアイデンティティとも呼ばれ、これはデベロッパーであるあなたを意味します。AWS にアクセスするときは、一時的な認証情報を使用します。一時的な資格情報を提供するロールを引き受けることで、人間のユーザーの ID プロバイダーを使用した AWS アカウントへのフェデレーションアクセスが可能になります。一元的なアクセス管理を行うには、AWS IAM Identity Center (IAM Identity Center) を使用して、ご自分のアカウントへのアクセスと、それらのアカウント内でのアクセス許可を管理することをお勧めします。その他の代替案については、以下を参照してください。
-
ベストプラクティスの詳細については、IAM ユーザーガイドの「IAM でのセキュリティのベストプラクティス」を参照してください。
-
短期 AWS 認証情報を作成するには、IAM ユーザーガイドの「一時的セキュリティ認証情報」を参照してください。
-
その他の AWS SDK for C++ 認証情報プロバイダについては、AWS SDK とツールのリファレンスガイドの「標準化された認証情報プロバイダ」を参照してください。