アプリケーションでの認証情報とプロファイルへのアクセス - AWS SDK for .NET (V4)

のバージョン 4 (V4) AWS SDK for .NET がリリースされました。

重要な変更とアプリケーションの移行については、「移行トピック」を参照してください。

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

アプリケーションでの認証情報とプロファイルへのアクセス

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

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

プロファイルと認証情報を能動的に取得するには、Amazon.Runtime.CredentialManagement 名前空間からクラスを使用します。

  • AWS 認証情報ファイル形式 (デフォルトの場所にある共有 AWS 認証情報ファイルまたはカスタム認証情報ファイル) を使用するファイル内のプロファイルを検索するには、SharedCredentialsFile クラスを使用します。簡潔にするために、本テキストではこの形式のファイルを単に認証情報ファイルと呼ぶ場合があります。

  • SDK ストアでプロファイルを検索するには、NetSDKCredentialsFile クラスを使用します。

  • 認証情報ファイルと SDK ストアの両方で検索するには、クラスプロパティの設定に応じて CredentialProfileStoreChain クラスを使用します。

    このクラスを使用して、プロファイルを検索できます。また、このクラスを使用して、 AWSCredentialsFactory クラス (次に説明) を使用する代わりに AWS 、認証情報を直接リクエストすることもできます。

  • プロファイルからさまざまなタイプの認証情報を取得または作成するには、AWSCredentialsFactory クラスを使用します。

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

クラス CredentialProfileStoreChain の例

TryGetAWSCredentials または TryGetProfile メソッドを使用して、CredentialProfileStoreChain クラスから認証情報またはプロファイルを取得できます。クラスの ProfilesLocation プロパティにより、次のようにメソッドの動作が決まります。

  • ProfilesLocation が null または空の場合、プラットフォームがサポートしている場合は SDK ストアを検索し、デフォルトの場所で共有 AWS 認証情報ファイルを検索します。

  • ProfilesLocation プロパティに値が含まれている場合は、プロパティで指定された認証情報ファイルを検索します。

SDK ストアまたは共有認証情報ファイルから AWS 認証情報を取得する

この例では、CredentialProfileStoreChain クラスを使用して認証情報を取得した後、その認証情報を使用して AmazonS3Client オブジェクトを作成する方法を示しています。認証情報は、SDK ストアまたはデフォルトの場所にある共有 AWS 認証情報ファイルから取得できます。

この例では、Amazon.Runtime.AWSCredentials クラスも使用します。

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 認証情報ファイルからプロファイルを取得する

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

この例では、CredentialProfile クラスも使用します。

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

カスタム認証情報ファイルからの認証情報の取得

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

この例では、Amazon.Runtime.AWSCredentials クラスも使用します。

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 の例

SharedCredentialsFile クラスを使用した AmazonS3Client の作成

この例では、共有 AWS 認証情報ファイルでプロファイルを検索し、プロファイルから認証情報を作成し AWS 、その認証情報を使用して AmazonS3Client オブジェクトを作成する方法を示します。この例では、SharedCredentialsFile クラスを使用します。

この例では、CredentialProfile クラスと Amazon.Runtime.AWSCredentials クラスも使用します。

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 クラスは、SharedCredentialsFile オブジェクトの代わりに新しい NetSDKCredentialsFile オブジェクトをインスタンス化する点を除けば、まったく同じ方法で使用できます。