AWSで SDK 認証を設定します - AWS SDK for .NET

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWSで SDK 認証を設定します

AWS のサービス を使用して開発する際には、AWS によりコードがどのように認証するかを設定する必要があります。環境と利用可能な AWS のアクセスに応じて、AWS リソースへのプログラムによるアクセスを設定する方法は異なります。

SDK のさまざまな認証方法を確認するには、「AWS SDK およびツール リファレンス ガイド」の「認証とアクセス」を参照してください。

このトピックでは、新しいユーザーがローカルで開発しており、雇用主から認証方法を与えられておらず、AWS IAM Identity Center を使って一時的な認証情報を取得する予定であることを前提としています。ご使用の環境がこれらの前提条件に当てはまらない場合、このトピックの情報の一部はお客様に該当しない場合や、既に提供されている可能性があります。

この環境を構成するにはいくつかのステップが必要で、その概要は以下のとおりです。

IAM Identity Center の有効化と設定

IAM Identity Center を使用するには、まず IAM Identity Center を有効にして構成する必要があります。SDK でこれを行う方法の詳細については、「AWS SDK およびツール リファレンス ガイド」の IAM Identity Center 認証に関するトピックのステップ 1を参照してください。具体的には、「IAM Identity Center 経由のアクセスを確立していません」にある必要な指示に従ってください。

IAM Identity Center を使用するように SDK を構成します。

IAM Identity Center を使用するように SDK を設定する方法に関する情報は、「AWS SDK およびツールリファレンスガイド」の IAM Identity Center 認証に関するトピックのステップ 2 に記載されています。この設定を完了すると、システムには以下の要素が含まれるようになります。

  • アプリケーションを実行する前に AWS アクセスポータルセッションを開始するために使用する AWS CLI。

  • SDK から参照できる構成値のセットを含む[default] プロファイル を含む AWS config 共有ファイル。このファイルの場所を確認するには、AWS SDK とツールのリファレンスガイドの「共有ファイルの場所」を参照してください。AWS SDK for .NET は、リクエストを 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
重要

認証にAWS IAM Identity Centerを使用している場合は、SSO ソリューションが機能するように、アプリケーションで次の NuGet パッケージを参照する必要があります。

  • AWSSDK.SSO

  • AWSSDK.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 の名前のさまざまなバリエーションが含まれる場合があります。

追加情報

  • 開発環境での IAM Identity Center と SSO の使用に関する追加情報については、高度な認証セクションのシングルサインオンを参照してください。この情報には、代替方法やより高度な方法、そしてこれらの方法の使い方を紹介するチュートリアルが含まれています。

  • プロファイルや環境変数の使用など、SDK の認証に関するその他のオプションについては、「AWS SDK およびツールリファレンスガイド」の設定に関する章を参照してください。

  • ベストプラクティスの詳細については、IAM ユーザーガイドの「IAM でのセキュリティのベストプラクティス」を参照してください。

  • 短期 AWS 認証情報を作成するには、IAM ユーザーガイドの「一時的セキュリティ認証情報」を参照してください。

  • その他の認証情報プロバイダーについては、AWS SDK とツールのリファレンスガイドの「標準化された認証情報プロバイダー」を参照してください。