

 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/)を参照してください。

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

# アプリケーションでの認証情報とプロファイルへのアクセス
<a name="creds-locate"></a>

認証情報を使用するための推奨方法は、「」で説明されているように、 AWS SDK for .NET が認証情報を検索して取得できるようにすることです[認証情報とプロファイルの解決](creds-assign.md)。

ただし、プロファイルと認証情報をアクティブに取得し、 AWS サービスクライアントの作成時にそれらの認証情報を明示的に使用するようにアプリケーションを設定することもできます。

プロファイルと認証情報を能動的に取得するには、[Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/NRuntimeCredentialManagement.html) 名前空間からクラスを使用します。
+  AWS 認証情報ファイル形式 ([デフォルトの場所にある共有 AWS 認証情報ファイル](creds-file.md)またはカスタム認証情報ファイル) を使用するファイル内のプロファイルを検索するには、[SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TSharedCredentialsFile.html) クラスを使用します。簡潔にするために、本テキストではこの形式のファイルを単に*認証情報ファイル*と呼ぶ場合があります。
+ SDK ストアでプロファイルを検索するには、[NetSDKCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TNetSDKCredentialsFile.html) クラスを使用します。
+ 認証情報ファイルと SDK ストアの両方で検索するには、クラスプロパティの設定に応じて [CredentialProfileStoreChain](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfileStoreChain.html) クラスを使用します。

  このクラスを使用して、プロファイルを検索できます。また、このクラスを使用して、 `AWSCredentialsFactory` クラス (次に説明) を使用する代わりに AWS 、認証情報を直接リクエストすることもできます。
+ プロファイルからさまざまなタイプの認証情報を取得または作成するには、[AWSCredentialsFactory](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentialsFactory.html) クラスを使用します。

以下のセクションでは、これらのクラスの例を示します。

## クラス CredentialProfileStoreChain の例
<a name="creds-locate-chain"></a>

[TryGetAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/MCredentialProfileStoreChainTryGetAWSCredentialsStringAWSCredentials.html) または [TryGetProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/MCredentialProfileStoreChainTryGetProfileStringCredentialProfile.html) メソッドを使用して、[CredentialProfileStoreChain](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfileStoreChain.html) クラスから認証情報またはプロファイルを取得できます。クラスの `ProfilesLocation` プロパティにより、次のようにメソッドの動作が決まります。
+ `ProfilesLocation` が null または空の場合、プラットフォームがサポートしている場合は SDK ストアを検索し、デフォルトの場所で共有 AWS 認証情報ファイルを検索します。
+ `ProfilesLocation` プロパティに値が含まれている場合は、プロパティで指定された認証情報ファイルを検索します。

### SDK ストアまたは共有認証情報ファイルから AWS 認証情報を取得する
<a name="creds-locate-chain-get-credentials-default-location"></a>

この例では、`CredentialProfileStoreChain` クラスを使用して認証情報を取得した後、その認証情報を使用して [AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Client.html) オブジェクトを作成する方法を示しています。認証情報は、SDK ストアまたはデフォルトの場所にある共有 AWS 認証情報ファイルから取得できます。

この例では、[Amazon.Runtime.AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html) クラスも使用します。

```
var chain = new CredentialProfileStoreChain();
AWSCredentials awsCredentials;
if (chain.TryGetAWSCredentials("some_profile", out awsCredentials))
{
    // Use awsCredentials to create an Amazon S3 service client
    using (var client = new AmazonS3Client(awsCredentials))
    {
        var response = await client.ListBucketsAsync();
        Console.WriteLine($"Number of buckets: {response.Buckets.Count}");
    }
}
```

### SDK ストアまたは共有 AWS 認証情報ファイルからプロファイルを取得する
<a name="creds-locate-chain-get-profile-default-location"></a>

この例では、CredentialProfileStoreChain クラスを使用してプロファイルを取得する方法を示しています。認証情報は SDK ストアから取得することも、デフォルトの場所にある共有 AWS 認証情報ファイルから取得することもできます。

この例では、[CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfile.html) クラスも使用します。

```
var chain = new CredentialProfileStoreChain();
CredentialProfile basicProfile;
if (chain.TryGetProfile("basic_profile", out basicProfile))
{
    // Use basicProfile
}
```

### カスタム認証情報ファイルからの認証情報の取得
<a name="creds-locate-chain-get-credentials-alternate-location"></a>

この例では、CredentialProfileStoreChain クラスを使用して認証情報を取得する方法を示しています。認証情報は、 AWS 認証情報ファイル形式を使用するが、別の場所にあるファイルから取得されます。

この例では、[Amazon.Runtime.AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html) クラスも使用します。

```
var chain = new
    CredentialProfileStoreChain("c:\\Users\\sdkuser\\customCredentialsFile.ini");
AWSCredentials awsCredentials;
if (chain.TryGetAWSCredentials("basic_profile", out awsCredentials))
{
    // Use awsCredentials to create an AWS service client
}
```

## クラス SharedCredentialsFile と AWSCredentialsFactory の例
<a name="creds-locate-cred-shared-file"></a>

### SharedCredentialsFile クラスを使用した AmazonS3Client の作成
<a name="creds-locate-cred-shared-file-create-s3-client"></a>

この例では、共有 AWS 認証情報ファイルでプロファイルを検索し、プロファイルから認証情報を作成し AWS 、その認証情報を使用して [AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Client.html) オブジェクトを作成する方法を示します。この例では、[SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TSharedCredentialsFile.html) クラスを使用します。

この例では、[CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfile.html) クラスと [Amazon.Runtime.AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html) クラスも使用します。

```
CredentialProfile basicProfile;
AWSCredentials awsCredentials;
var sharedFile = new SharedCredentialsFile();
if (sharedFile.TryGetProfile("basic_profile", out basicProfile) &&
    AWSCredentialsFactory.TryGetAWSCredentials(basicProfile, sharedFile, out awsCredentials))
{
    // use awsCredentials to create an Amazon S3 service client
    using (var client = new AmazonS3Client(awsCredentials, basicProfile.Region))
    {
        var response = await client.ListBucketsAsync();
        Console.WriteLine($"Number of buckets: {response.Buckets.Count}");
    }
}
```

**注記**  
[NetSDKCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TNetSDKCredentialsFile.html) クラスは、SharedCredentialsFile オブジェクトの代わりに新しい NetSDKCredentialsFile オブジェクトをインスタンス化する点を除けば、まったく同じ方法で使用できます。