

 AWS SDK for .NET V3가 유지 관리 모드로 전환되었습니다.

[AWS SDK for .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html)로 마이그레이션하는 것이 좋습니다. 마이그레이션 방법에 대한 자세한 내용과 정보는 [유지 관리 모드 공지](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/)를 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# SDK 스토어 사용(Windows만 해당)
<a name="sdk-store"></a>

([중요 경고 및 지침](net-dg-legacy-creds.md#net-dg-config-creds-warnings-and-guidelines)을 반드시 검토하세요.)

Windows에서 *SDK 스토어*는 프로필을 생성하고 AWS SDK for .NET 애플리케이션의 암호화된 자격 증명을 저장하는 또 다른 곳입니다. `%USERPROFILE%\AppData\Local\AWSToolkit\RegisteredAccounts.json`에 있습니다. 개발 중에 [공유 AWS 보안 인증 파일](creds-file.md) 대신 SDK 스토어를 사용할 수 있습니다.

**주의**  
보안 위험을 방지하려면 목적별 소프트웨어를 개발하거나 실제 데이터로 작업할 때 IAM 사용자를 인증에 사용하지 마세요. 대신 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)과 같은 보안 인증 공급자를 통한 페더레이션을 사용하십시오.

**참고**  
이 주제의 정보는 단기 또는 장기 보안 인증 정보를 수동으로 획득하고 관리해야 하는 상황을 위한 것입니다. 단기 및 장기 보안 인증 정보에 대한 자세한 내용은 **AWS 및 도구 참조 가이드의 [다른 인증 방법](https://docs.aws.amazon.com/sdkref/latest/guide/access-users.html)을 참조하세요.  
보안 모범 사례를 보려면에 설명된 AWS IAM Identity Center대로를 사용합니다[SDK 인증 구성](creds-idc.md).

## 일반 정보
<a name="sdk-store-general-info"></a>

SDK 스토어에는 다음과 같은 이점이 있습니다.
+ SDK 스토어의 보안 인증은 암호화되며 SDK 스토어는 사용자의 홈 디렉터리에 상주합니다. 이렇게 하면 예기치 않게 자격 증명이 노출될 위험을 줄일 수 있습니다.
+ SDK 스토어도 [AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/) 및 [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/)에 보안 인증을 제공합니다.

SDK 스토어 프로필은 특정 호스트에 있는 특정 사용자에게 고유하며, 다른 호스트나 다른 사용자에게 복사할 수 없습니다. 즉, 다른 호스트 또는 개발자 머신의 개발 머신에 있는 SDK 스토어 프로필을 재사용할 수 없습니다. 또한 프로덕션 애플리케이션에서는 SDK 스토어 프로필을 사용할 수 없습니다.

다음과 같은 방식으로 SDK 스토어에서 프로필을 관리할 수 있습니다.
+ [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/credentials.html)에서 그래픽 사용자 인터페이스(GUI)를 사용합니다.
+ 이 주제의 뒷부분에서 볼 수 있듯이 AWS SDK for .NET API의 [Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/NRuntimeCredentialManagement.html) 네임스페이스를 사용합니다.
+ [AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html)의 명령을 사용합니다(예: `Set-AWSCredential` 및 `Remove-AWSCredentialProfile`).

## 프로필 관리의 예
<a name="sdk-store-examples"></a>

다음 예제에서는 SDK 스토어에서 프로그래밍 방식으로 프로필을 생성하고 업데이트하는 방법을 보여줍니다.

### 프로그래밍 방식으로 프로필 생성
<a name="sdk-store-create-programmatically"></a>

이 예제에서는 프로그래밍 방식으로 프로필을 만들고 SDK 스토어에 저장하는 방법을 보여줍니다. [CredentialProfileOptions](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfileOptions.html), [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfile.html) 및 [NetSDKCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TNetSDKCredentialsFile.html)과 같은 [Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/NRuntimeCredentialManagement.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 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",
}
```

### 프로그래밍 방식으로 기존 프로필 업데이트
<a name="sdk-store-update-programmatically"></a>

이 예제에서는 이전에 만든 프로필을 프로그래밍 방식으로 업데이트하는 방법을 보여줍니다. [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfile.html) 및 [NetSDKCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TNetSDKCredentialsFile.html)과 같은 [Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/NRuntimeCredentialManagement.html) 네임스페이스의 클래스를 사용합니다. 또한 [Amazon](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/N.html) 네임스페이스의 [RegionEndpoint](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TRegionEndpoint.html) 클래스를 사용합니다.

```
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 리전 구성](net-dg-region-selection.md) 단원을 참조하십시오.