

 AWS SDK for .NET V3 がメンテナンスモードになりました。

[AWS SDK for .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html) に移行することをお勧めします。移行方法の詳細と情報については、[メンテナンスモードのお知らせ](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/)を参照してください。

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

# を使用して SDK 認証を設定する AWS
<a name="creds-idc"></a>

開発 AWS 時にコードが で認証される方法を確立する必要があります AWS のサービス。環境と利用可能なアクセスに応じて、 AWS リソースへのプログラムによる AWS アクセスを設定する方法はさまざまです。

SDK のさまざまな認証方法を確認するには、「*AWS SDK およびツール リファレンス ガイド*」の「[認証とアクセス](https://docs.aws.amazon.com/sdkref/latest/guide/access.html)」を参照してください。

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

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

1. [コンソール認証情報を使用してログインする](#login-con-creds)

1. [IAM Identity Center の有効化と設定](#idc-config-sso)

1. [IAM Identity Center を使用するように SDK を構成します。](#idc-config-sdk)

1. [AWS アクセスポータルセッションを開始する](#idc-start-portal)

## コンソール認証情報を使用してログインする
<a name="login-con-creds"></a>

既存の AWS マネジメントコンソールのサインイン認証情報を使用して、 AWS サービスにプログラムでアクセスできます。ブラウザベースの認証フローの後、 は CLI AWS Tools for PowerShell や AWS SDK for AWS .NET v3 などのローカル開発ツールで動作する一時的な認証情報 AWS を生成します。

このプロセスでは、最初のアカウント設定時に作成されたルート認証情報、IAM ユーザー、または ID プロバイダーからのフェデレーティッド ID を使用して認証でき、CLI AWS または AWS Tools for PowerShell が自動的に一時的な認証情報を管理します。このアプローチにより、長期的な認証情報をローカルに保存する必要がなくなるため、セキュリティが強化されます。

 AWS CLI から `aws login` コマンドを実行すると、アクティブなコンソールセッションから選択することも、ブラウザベースの認証フローを通じてサインインすることもできます。これにより、一時的な認証情報が自動的に生成されます。一時的な認証情報トークンは 15 分で期限切れになりますが、 AWS SDK for .NET v3 はリクエスト中に必要に応じてトークンを自動的に更新します。

**警告**  
この機能は .NET Framework ターゲットではサポートされていません。

**重要**  
認証にコンソール認証情報を使用している場合、 AWS サインイン解決が機能するように、アプリケーションは次の NuGet パッケージを参照する必要があります。  
**AWSSDK.Signin**
これらのパッケージを参照しないと、ランタイム 例外が発生します。
+ [CLI AWS を使用してコンソール認証情報を使用してログインします。](https://docs.aws.amazon.com/sdkref/latest/guide/access-login.html)

 AWS CLI の上記の手順に従ってログインすると、`config`ファイルは次のようになります。

```
[default]
login_session = arn:aws:iam::0123456789012:user/username
region = us-east-1

[my-dev-profile]
login_session = arn:aws:iam::0123456789012:user/username
region = us-east-1
```

## IAM Identity Center の有効化と設定
<a name="idc-config-sso"></a>

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

## IAM Identity Center を使用するように SDK を構成します。
<a name="idc-config-sdk"></a>

IAM Identity Center を使用するように SDK を設定する方法に関する情報は、「*AWS SDK およびツールリファレンスガイド*」の [IAM Identity Center 認証](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html)に関するトピックのステップ **2** に記載されています。この設定を完了すると、システムには以下の要素が含まれるようになります。
+ アプリケーションを実行する前に AWS アクセスポータルセッションを開始 AWS CLIするために使用する 。
+ SDK から参照できる設定値のセットを持つ[`[default]`プロファイル](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile)を含む共有 AWS `config`ファイル。このファイルの場所を確認するには、「*AWS SDK とツールのリファレンスガイド*」の「[共有ファイルの場所](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)」を参照してください。 AWS SDK for .NET は、リクエストを送信する前に、プロファイルの SSO トークンプロバイダーを使用して認証情報を取得します AWS。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 アイデンティティセンター に を使用している場合、アプリケーションは SSO 解決が機能するように、次の NuGet パッケージを参照する必要があります。  
`AWSSDK.SSO`
`AWSSDK.SSOOIDC`
これらのパッケージを参照しないと、*ランタイム* 例外が発生します。

## AWS アクセスポータルセッションを開始する
<a name="idc-start-portal"></a>

アクセスするアプリケーションを実行する前に 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`名前のバリエーションが含まれている可能性があります。

## 追加情報
<a name="idc-additional-info"></a>
+ 開発環境での IAM Identity Center と SSO の使用に関する追加情報については、[高度な認証](advanced-auth.md)セクションの[シングルサインオン](sso.md)を参照してください。この情報には、代替方法やより高度な方法、そしてこれらの方法の使い方を紹介するチュートリアルが含まれています。
+ プロファイルや環境変数の使用など、SDK の認証に関するその他のオプションについては、「*AWS SDK およびツールリファレンスガイド*」の[設定](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html)に関する章を参照してください。
+ ベストプラクティスの詳細については、*IAM ユーザーガイド*の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。
+ 短期 AWS 認証情報を作成するには、*IAM ユーザーガイド*の[「一時的なセキュリティ認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)」を参照してください。
+ その他の認証情報プロバイダーについては、「*AWS SDK とツールのリファレンスガイド*」の「[標準化された認証情報プロバイダー](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)」を参照してください。