SDK ストアの使用 (Windows のみ) - AWS SDK for .NET (バージョン 3)

のバージョン 4 (V4) AWS SDK for .NET はプレビュー中です。プレビューでこの新しいバージョンに関する情報を確認するには、 AWS SDK for .NET (バージョン 4 プレビュー) デベロッパーガイドを参照してください。

SDK の V4 はプレビュー中であるため、コンテンツは変更される可能性があることに注意してください。

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

SDK ストアの使用 (Windows のみ)

(重要な警告とガイドラインを必ずご確認ください)

Windows では、SDK ストアは AWS SDK for .NET 、アプリケーションのプロファイルを作成し、暗号化された認証情報を保存するもう 1 つの場所です。%USERPROFILE%\AppData\Local\AWSToolkit\RegisteredAccounts.json にあります。開発時に、共有 AWS 認証情報ファイルの代わりとして SDK ストアを使用できます。

警告

セキュリティリスクを避けるため、専用ソフトウェアの開発や実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、AWS IAM Identity Center などの ID プロバイダーとのフェデレーションを使用してください。

注記

このトピックの情報は、短期または長期認証情報を手動で取得および管理する必要がある場合を対象としています。短期認証情報と長期認証情報に関する追加情報については、「AWS SDK およびツールリファレンスガイド」の「その他の認証方法」を参照してください。

セキュリティのベストプラクティスについては、「」で説明されているように AWS IAM Identity Centerを使用しますSDK 認証の設定

一般情報

SDK ストアには次の利点があります。

  • SDK ストア内の認証情報が暗号化された状態で、ユーザーのホームディレクトリに SDK ストアが配置されます。これにより、認証情報が誤って公開されるリスクが制限されます。

  • SDK ストアは、AWS Tools for Windows PowerShell および AWS Toolkit for Visual Studio にも認証情報を提供します。

SDK ストアのプロファイルは、特定のホスト上の特定ユーザーに固有です。これらは他のホストや他のユーザーにコピーすることはできません。そのため、開発用マシンの SDK ストアにあるプロファイルを、他のホストや他のデベロッパーのマシンで再利用することはできません。また、本番稼働用のアプリケーションで SDK ストアのプロファイルを使用できないということでもあります。

SDK ストアのプロファイルは、以下に示すいくつかの方法で管理できます。

プロファイル管理の例

以下の例では、プログラムで SDK ストア内にプロファイルを作成して更新する方法を示します。

プログラムでのプロファイルの作成

この例では、プログラムを使用してプロファイルを作成し、SDK ストアに保存する方法を説明します。Amazon.Runtime.CredentialManagement 名前空間の次のクラスを使用します: CredentialProfileOptionsCredentialProfileNetSDKCredentialsFile

using Amazon.Runtime.CredentialManagement; ... // Do not include credentials in your code. WriteProfile("my_new_profile", SecurelyStoredKeyID, SecurelyStoredSecretAccessKey); ... void WriteProfile(string profileName, string keyId, string secret) { Console.WriteLine($"Create the [{profileName}] profile..."); var options = new CredentialProfileOptions { AccessKey = keyId, SecretKey = secret }; var profile = new CredentialProfile(profileName, options); var netSdkStore = new NetSDKCredentialsFile(); netSdkStore.RegisterProfile(profile); }
警告

このようなコードは、通常、アプリケーションに含めるべきではありません。アプリケーションに含まれる場合は、プレーンテキストキーがコード内、ネットワーク経由、またはコンピュータのメモリ内で見えないように適切な予防措置を講じてください。

この例で作成されたプロファイルを以下に示します。

"[generated GUID]" : { "AWSAccessKey" : "01000000D08...[etc., encrypted access key ID]", "AWSSecretKey" : "01000000D08...[etc., encrypted secret access key]", "ProfileType" : "AWS", "DisplayName" : "my_new_profile", }

既存のプロファイルのプログラムでの更新

この例では、前の手順で作成したプロファイルをプログラムで更新する方法を示します。Amazon.Runtime.CredentialManagement 名前空間の次のクラスを使用します: CredentialProfileNetSDKCredentialsFile。また、Amazon 名前空間の RegionEndpoint クラスも使用します。

using Amazon.Runtime.CredentialManagement; ... AddRegion("my_new_profile", RegionEndpoint.USWest2); ... void AddRegion(string profileName, RegionEndpoint region) { var netSdkStore = new NetSDKCredentialsFile(); CredentialProfile profile; if (netSdkStore.TryGetProfile(profileName, out profile)) { profile.Region = region; netSdkStore.RegisterProfile(profile); } }

更新されたプロファイルを以下に示します。

"[generated GUID]" : { "AWSAccessKey" : "01000000D08...[etc., encrypted access key ID]", "AWSSecretKey" : "01000000D08...[etc., encrypted secret access key]", "ProfileType" : "AWS", "DisplayName" : "my_new_profile", "Region" : "us-west-2" }
注記

AWS リージョンは、他の場所や他の方法を使用して設定することもできます。詳細については、「AWS リージョンを設定する」を参照してください。