

버전 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)을 반드시 검토하세요.)

애플리케이션에 보안 인증을 제공하는 한 가지 방법은 *공유 AWS 보안 인증 파일*에 프로필을 만든 다음 해당 프로필에 보안 인증을 저장하는 것입니다. 이 파일은 다른 AWS SDKs. 또한 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/) [AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/)및 [VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/)용 , 및 AWS 툴킷에서도 사용할 수 있습니다.

**주의**  
보안 위험을 방지하려면 목적별 소프트웨어를 개발하거나 실제 데이터로 작업할 때 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대로를 사용합니다[를 사용하여 인증 AWS](creds-idc.md).

## 일반 정보
<a name="creds-file-general-info"></a>

기본적으로 공유 AWS 자격 증명 파일은 홈 `.aws` 디렉터리 내의 디렉터리에 위치하며 이름이 , `credentials`즉 `~/.aws/credentials` (Linux 또는 macOS) 또는 `%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) 네임스페이스를 사용합니다.
+ [AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.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 툴킷에 명령과 절차를 사용합니다. [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 자격 증명 파일에 저장하는 방법을 보여줍니다. [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)과 같은 [Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/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 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>

이 예제에서는 이전에 만든 프로필을 프로그래밍 방식으로 업데이트하는 방법을 보여줍니다. [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfile.html) 및 [NetSDKCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)과 같은 [Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.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) 단원을 참조하십시오.