アプリケーションでの認証情報とプロファイルへのアクセス - 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 オブジェクトをインスタンス化する点を除けば、まったく同じ方法で使用できます。