のバージョン 4 (V4) SDK for .NET はプレビュー中です。プレビューでこの新しいバージョンに関する情報を確認するには、 AWS SDK for .NET (バージョン 4 プレビュー) デベロッパーガイドを参照してください。
SDK の V4 はプレビュー中であるため、コンテンツは変更される可能性があることに注意してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
(認証情報に関する重要な警告とガイダンスを必ずご確認ください)
アプリケーションに認証情報を提供する方法の 1 つは、共有 AWS 認証情報ファイルにプロファイルを作成し、そのプロファイルに認証情報を保存することです。このファイルは、他の AWS SDKsで使用できます。また、、AWS Tools for Windows PowerShell、および Visual StudioAWS CLI、JetBrains、VS Code の AWS ツールキットでも使用できます。
警告
セキュリティリスクを避けるため、専用ソフトウェアの開発や実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、AWS IAM Identity Center などの ID プロバイダーとのフェデレーションを使用してください。
注記
一般情報
デフォルトでは、共有 AWS 認証情報ファイルはホーム.aws
ディレクトリ内の ディレクトリにありcredentials
、 (Linux または macOS) または ~/.aws/credentials
(%USERPROFILE%\.aws\credentials
Windows) という名前が付けられます。別の保存場所に関する詳細については、AWS SDK とツールのリファレンスガイドの「共有ファイルの場所」を参照してください。また、「アプリケーションでの認証情報とプロファイルへのアクセス」も参照してください。
共有 AWS 認証情報ファイルはプレーンテキストファイルであり、特定の形式に従います。 AWS 認証情報ファイルの形式については、 SDK およびツールリファレンスガイドの「認証情報ファイルの形式」を参照してください。 AWS SDKs
共有 AWS 認証情報ファイルのプロファイルは、いくつかの方法で管理できます。
-
任意のテキストエディタを使用して、共有 AWS 認証情報ファイルを作成および更新します。
-
このトピックで後述するように、 SDK for .NET API の Amazon.Runtime.CredentialManagement 名前空間を使用します。
-
および Visual Studio、JetBrains、および VS Code のAWS Tools for PowerShell AWS ツールキットのコマンドと手順を使用します。 https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html
-
AWS CLI コマンドを使用します (例えば
aws configure set aws_access_key_id
およびaws configure set aws_secret_access_key
)。
プロファイル管理の例
以下のセクションでは、共有 AWS 認証情報ファイルのプロファイルの例を示します。いくつかの例では、前述の認証情報管理方法のいずれかを使用して取得できる結果が示されています。その他の例では、特定のメソッドの使用方法を示しています。
デフォルトのプロファイル
共有 AWS 認証情報ファイルには、ほとんどの場合、default という名前のプロファイルがあります。他のプロファイルが定義されていない場合、 はここで認証情報 SDK for .NET を検索します。
[default]
プロファイルは通常、以下のようになっています。
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
プログラムでのプロファイルの作成
この例では、プロファイルを作成し、それをプログラムで共有 AWS 認証情報ファイルに保存する方法を示します。Amazon.Runtime.CredentialManagement 名前空間の次のクラスを使用します: CredentialProfileOptions、CredentialProfile、SharedCredentialsFile。
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 sharedFile = new SharedCredentialsFile();
sharedFile.RegisterProfile(profile);
}
警告
このようなコードは、通常、アプリケーションに含めるべきではありません。アプリケーションに組み込む場合は、プレーンテキストキーがコード内、ネットワーク経由、またはコンピュータのメモリ内で見えないように適切な予防措置を講じてください。
この例で作成されたプロファイルを以下に示します。
[my_new_profile]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
既存のプロファイルのプログラムでの更新
この例では、前の手順で作成したプロファイルをプログラムで更新する方法を示します。Amazon.Runtime.CredentialManagement 名前空間の次のクラスを使用します: CredentialProfile、SharedCredentialsFile。また、Amazon 名前空間の RegionEndpoint クラスも使用します。
using Amazon.Runtime.CredentialManagement;
...
AddRegion("my_new_profile", RegionEndpoint.USWest2);
...
void AddRegion(string profileName, RegionEndpoint region)
{
var sharedFile = new SharedCredentialsFile();
CredentialProfile profile;
if (sharedFile.TryGetProfile(profileName, out profile))
{
profile.Region = region;
sharedFile.RegisterProfile(profile);
}
}
更新されたプロファイルを以下に示します。
[my_new_profile]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
region=us-west-2
注記
AWS リージョンは、他の場所や他の方法を使用して設定することもできます。詳細については、「AWS リージョンを設定する」を参照してください。