

 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/)를 참조하세요.

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

# 애플리케이션에서 자격 증명 및 프로필에 액세스
<a name="creds-locate"></a>

자격 증명을 사용하는 데 선호되는 방법은에서에 설명된 대로 자동으로 자격 증명을 AWS SDK for .NET 찾고 검색할 수 있도록 허용하는 것입니다[보안 인증 정보 및 프로파일 확인](creds-assign.md).

그러나 프로필과 자격 증명을 적극적으로 검색한 다음 AWS 서비스 클라이언트를 생성할 때 해당 자격 증명을 명시적으로 사용하도록 애플리케이션을 구성할 수도 있습니다.

프로필과 자격 증명을 미리 검색하려면 [Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/NRuntimeCredentialManagement.html) 네임스페이스의 클래스를 사용하세요.
+ 자격 AWS 증명 파일 형식([기본 위치에 있는 공유 자격 증명 파일 또는 사용자 지정 AWS 자격 증명](creds-file.md) 파일)을 사용하는 파일에서 프로파일을 찾으려면 [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TSharedCredentialsFile.html) 클래스를 사용합니다. 이 텍스트에서는 간결하게 설명하기 위해 이 형식의 파일을 간단히 *보안 인증 파일*이라고 부르기도 합니다.
+ SDK 스토어에서 프로필을 찾으려면 [NetSDKCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TNetSDKCredentialsFile.html) 클래스를 사용하세요.
+ 클래스 속성의 구성에 따라 보안 인증 파일과 SDK 스토어에서 모두 검색하려면 [CredentialProfileStoreChain](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfileStoreChain.html) 클래스를 사용하세요.

  이 클래스를 사용하여 프로필을 찾을 수 있습니다. 클래스를 사용하는 대신이 `AWSCredentialsFactory` 클래스를 사용하여 자격 AWS 증명을 직접 요청할 수도 있습니다(다음 설명 참조).
+ 프로필에서 다양한 유형의 보안 인증을 검색하거나 생성하려면 [AWSCredentialsFactory](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentialsFactory.html) 클래스를 사용하세요.

다음 섹션에는 이러한 클래스의 예가 나와 있습니다.

## 클래스 CredentialProfileStoreChain의 예
<a name="creds-locate-chain"></a>

[TryGetAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/MCredentialProfileStoreChainTryGetAWSCredentialsStringAWSCredentials.html) 또는 [TryGetProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/MCredentialProfileStoreChainTryGetProfileStringCredentialProfile.html) 메서드를 사용하여 [CredentialProfileStoreChain](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfileStoreChain.html) 클래스에서 보안 인증 및 프로필을 가져올 수 있습니다. 다음과 같이 클래스의 `ProfilesLocation` 속성은 메서드의 동작을 결정합니다.
+ `ProfilesLocation`가 null이거나 비어 있는 경우 플랫폼이 지원하는 경우 SDK 스토어를 검색한 다음 기본 위치에서 공유 AWS 자격 증명 파일을 검색합니다.
+ `ProfilesLocation` 속성에 값이 포함된 경우 속성에 지정된 보안 인증 파일을 검색하세요.

### SDK 스토어 또는 공유 자격 증명 파일에서 AWS 자격 증명 가져오기
<a name="creds-locate-chain-get-credentials-default-location"></a>

이 예제는 `CredentialProfileStoreChain` 클래스를 사용하여 보안 인증을 가져온 다음 보안 인증을 사용하여 [AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Client.html) 객체를 생성하는 방법을 보여줍니다. 보안 인증 정보는 SDK 스토어에서 가져오거나 기본 위치의 공유 AWS 보안 인증 파일에서 가져올 수 있습니다.

이 예제에서는 [Amazon.Runtime.AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html) 클래스도 사용합니다.

```
var chain = new CredentialProfileStoreChain();
AWSCredentials awsCredentials;
if (chain.TryGetAWSCredentials("some_profile", out awsCredentials))
{
    // Use awsCredentials to create an Amazon S3 service client
    using (var client = new AmazonS3Client(awsCredentials))
    {
        var response = await client.ListBucketsAsync();
        Console.WriteLine($"Number of buckets: {response.Buckets.Count}");
    }
}
```

### SDK 스토어 또는 공유 AWS 자격 증명 파일에서 프로필 가져오기
<a name="creds-locate-chain-get-profile-default-location"></a>

이 예제에서는 CredentialProfileStoreChain 클래스를 사용하여 프로필을 가져오는 방법을 보여 줍니다. 자격 증명은 SDK 스토어 또는 기본 위치의 공유 AWS 자격 증명 파일에서 가져올 수 있습니다.

이 예제에서는 [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfile.html) 클래스도 사용합니다.

```
var chain = new CredentialProfileStoreChain();
CredentialProfile basicProfile;
if (chain.TryGetProfile("basic_profile", out basicProfile))
{
    // Use basicProfile
}
```

### 사용자 지정 보안 인증 파일에서 보안 인증 정보 가져오기
<a name="creds-locate-chain-get-credentials-alternate-location"></a>

이 예제에서는 CredentialProfileStoreChain 클래스를 사용하여 보안 인증을 가져오는 방법을 보여 줍니다. 자격 증명은 AWS 자격 증명 파일 형식을 사용하지만 대체 위치에 있는 파일에서 가져옵니다.

이 예제에서는 [Amazon.Runtime.AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html) 클래스도 사용합니다.

```
var chain = new
    CredentialProfileStoreChain("c:\\Users\\sdkuser\\customCredentialsFile.ini");
AWSCredentials awsCredentials;
if (chain.TryGetAWSCredentials("basic_profile", out awsCredentials))
{
    // Use awsCredentials to create an AWS service client
}
```

## 클래스 SharedCredentialsFile 및 AWSCredentialsFactory의 예
<a name="creds-locate-cred-shared-file"></a>

### SharedCredentialsFile 클래스를 사용하여 AmazonS3Client 생성
<a name="creds-locate-cred-shared-file-create-s3-client"></a>

이 예제에서는 공유 AWS 자격 증명 파일에서 프로필을 찾고, 프로필에서 자격 증명을 생성한 AWS 다음, 자격 증명을 사용하여 [AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Client.html) 객체를 생성하는 방법을 보여줍니다. 이 예제에서는 [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TSharedCredentialsFile.html) 클래스를 사용합니다.

이 예제에서는 [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfile.html) 클래스 및 [Amazon.Runtime.AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html) 클래스도 사용합니다.

```
CredentialProfile basicProfile;
AWSCredentials awsCredentials;
var sharedFile = new SharedCredentialsFile();
if (sharedFile.TryGetProfile("basic_profile", out basicProfile) &&
    AWSCredentialsFactory.TryGetAWSCredentials(basicProfile, sharedFile, out awsCredentials))
{
    // use awsCredentials to create an Amazon S3 service client
    using (var client = new AmazonS3Client(awsCredentials, basicProfile.Region))
    {
        var response = await client.ListBucketsAsync();
        Console.WriteLine($"Number of buckets: {response.Buckets.Count}");
    }
}
```

**참고**  
[NetSDKCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TNetSDKCredentialsFile.html) 클래스를 동일한 방식으로 사용할 수 있습니다. 단, SharedCredentialsFile 객체 대신 새 NetSDKCredentialsFile 객체를 인스턴스화한다는 점이 다릅니다.