

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

重要な変更とアプリケーションの移行については、[「移行トピック](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)」を参照してください。

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

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

# 共有 AWS 認証情報ファイルの使用
<a name="creds-file"></a>

([認証情報に関する重要な警告とガイダンス](net-dg-legacy-creds.md#net-dg-config-creds-warnings-and-guidelines)を必ずご確認ください)

アプリケーションに認証情報を提供する方法の 1 つは、*共有 AWS 認証情報ファイル*にプロファイルを作成し、そのプロファイルに認証情報を保存することです。このファイルは、他の AWS SDKsで使用できます。また、、[AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/)、および [Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/)[AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/)、[JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/)、[VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/) の AWS ツールキットでも使用できます。

**警告**  
セキュリティリスクを避けるため、専用ソフトウェアを開発するときや実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、[AWS IAM アイデンティティセンター](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) などの ID プロバイダーとのフェデレーションを使用してください。

**注記**  
このトピックの情報は、短期または長期認証情報を手動で取得および管理する必要がある場合を対象としています。短期認証情報と長期認証情報に関する追加情報については、「*AWS SDK およびツールリファレンスガイド*」の「[その他の認証方法](https://docs.aws.amazon.com/sdkref/latest/guide/access-users.html)」を参照してください。  
セキュリティのベストプラクティスについては、 AWS IAM アイデンティティセンター「」の説明に従って を使用します[による認証 AWS](creds-idc.md)。

## 一般的な情報
<a name="creds-file-general-info"></a>

デフォルトでは、共有 AWS 認証情報ファイルはホーム`.aws`ディレクトリ内の ディレクトリにあり`credentials`、 (Linux または macOS) または `~/.aws/credentials` (`%USERPROFILE%\.aws\credentials`Windows) という名前が付けられます。別の保存場所に関する詳細については、*[AWS SDK とツールのリファレンスガイド](https://docs.aws.amazon.com/sdkref/latest/guide/overview.html)*の「[共有ファイルの場所](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)」を参照してください。また、「[アプリケーションでの認証情報とプロファイルへのアクセス](creds-locate.md)」も参照してください。

共有 AWS 認証情報ファイルはプレーンテキストファイルであり、特定の形式に従います。 AWS 認証情報ファイルの形式については、 SDK およびツールリファレンスガイドの[「認証情報ファイルの形式](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-creds)」を参照してください。 *AWS SDKs *

共有 AWS 認証情報ファイルのプロファイルは、いくつかの方法で管理できます。
+ 任意のテキストエディタを使用して、共有 AWS 認証情報ファイルを作成および更新します。
+ このトピックで後述するように、 AWS SDK for .NET API の [Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html) 名前空間を使用します。
+ および [Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/credentials.html)、[JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/setup-credentials.html)、VS Code の[AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html) AWS ツールキットのコマンドと手順を使用します。 [https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html)
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) コマンドを使用します (例えば `aws configure set aws_access_key_id` および `aws configure set aws_secret_access_key`)。

## プロファイル管理の例
<a name="creds-file-examples"></a>

以下のセクションでは、共有 AWS 認証情報ファイルのプロファイルの例を示します。いくつかの例では、前述の認証情報管理方法のいずれかを使用して取得できる結果が示されています。その他の例では、特定のメソッドの使用方法を示しています。

### デフォルトのプロファイル
<a name="creds-file-default"></a>

共有 AWS 認証情報ファイルには、ほとんどの場合、*default* という名前のプロファイルがあります。これは、他のプロファイルが定義されていない場合に が認証情報 AWS SDK for .NET を検索する場所です。

`[default]` プロファイルは通常、以下のようになっています。

```
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

### プログラムでのプロファイルの作成
<a name="creds-file-create-programmatically"></a>

この例では、プロファイルを作成し、それをプログラムで共有 AWS 認証情報ファイルに保存する方法を示します。[Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html) 名前空間の次のクラスを使用します: [CredentialProfileOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfileOptions.html)、[CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfile.html)、[SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)。

```
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
```

### 既存のプロファイルのプログラムでの更新
<a name="creds-file-update-programmatically"></a>

この例では、前の手順で作成したプロファイルをプログラムで更新する方法を示します。[Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html) 名前空間の次のクラスを使用します: [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfile.html)、[SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)。また、[Amazon](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/N.html) 名前空間の [RegionEndpoint](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TRegionEndpoint.html) クラスも使用します。

```
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 リージョンの設定 AWS SDK for .NETAWS リージョン](net-dg-region-selection.md)」を参照してください。