애플리케이션에서 자격 증명 및 프로필에 액세스 - AWS SDK for .NET

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

애플리케이션에서 자격 증명 및 프로필에 액세스

보안 인증 정보 및 프로파일 확인에 설명된 대로 자격 증명을 사용할 때는 사용자를 위해 AWS SDK for .NET가 자격 증명을 찾고 검색할 수 있도록 하는 것이 좋습니다.

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

프로필과 자격 증명을 미리 검색하려면 Amazon.Runtime.CredentialManagement 네임스페이스의 클래스를 사용하세요.

  • AWS 보안 인증 파일 형식(기본 위치의 공유 AWS 보안 인증 파일 또는 사용자 지정 자격 증명 파일)을 사용하는 파일에서 프로필을 찾으려면 SharedCredentialsFile 클래스를 사용하세요. 이 텍스트에서는 간결하게 설명하기 위해 이 형식의 파일을 간단히 보안 인증 파일이라고 부르기도 합니다.

  • SDK 스토어에서 프로필을 찾으려면 NetSDKCredentialsFile 클래스를 사용하세요.

  • 클래스 속성의 구성에 따라 보안 인증 파일과 SDK 스토어에서 모두 검색하려면 CredentialProfileStoreChain 클래스를 사용하세요.

    이 클래스를 사용하여 프로필을 찾을 수 있습니다. AWSCredentialsFactory 클래스를 사용하는 대신 이 클래스를 사용하여 AWS 보안 인증을 직접 요청할 수도 있습니다(다음 설명 참조).

  • 프로필에서 다양한 유형의 보안 인증을 검색하거나 생성하려면 AWSCredentialsFactory 클래스를 사용하세요.

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

클래스 CredentialProfileStoreChain의 예

TryGetAWSCredentials 또는 TryGetProfile 메서드를 사용하여 CredentialProfileStoreChain 클래스에서 보안 인증 및 프로필을 가져올 수 있습니다. 다음과 같이 클래스의 ProfilesLocation 속성은 메서드의 동작을 결정합니다.

  • ProfilesLocation이 null이거나 비어 있으면 플랫폼에서 지원하는 경우 SDK 스토어를 검색한 다음 기본 위치에서 공유 AWS 보안 인증 파일을 검색하세요.

  • ProfilesLocation 속성에 값이 포함된 경우 속성에 지정된 보안 인증 파일을 검색하세요.

SDK 스토어 또는 공유 AWS 보안 인증 파일에서 보안 인증 정보 가져오기

이 예제는 CredentialProfileStoreChain 클래스를 사용하여 보안 인증을 가져온 다음 보안 인증을 사용하여 AmazonS3Client 객체를 생성하는 방법을 보여줍니다. 보안 인증 정보는 SDK 스토어에서 가져오거나 기본 위치의 공유 AWS 보안 인증 파일에서 가져올 수 있습니다.

이 예제에서는 Amazon.Runtime.AWSCredentials 클래스도 사용합니다.

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 보안 인증 파일에서 프로필 가져오기

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

이 예제에서는 CredentialProfile 클래스도 사용합니다.

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

사용자 지정 보안 인증 파일에서 보안 인증 정보 가져오기

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

이 예제에서는 Amazon.Runtime.AWSCredentials 클래스도 사용합니다.

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의 예

SharedCredentialsFile 클래스를 사용하여 AmazonS3Client 생성

이 예제에서는 공유 AWS 보안 인증 파일에서 프로필을 찾고, 프로필에서 AWS 보안 인증을 생성한 다음, 보안 인증을 사용하여 AmazonS3Client 객체를 생성하는 방법을 보여줍니다. 이 예제에서는 SharedCredentialsFile 클래스를 사용합니다.

이 예제에서는 CredentialProfile 클래스 및 Amazon.Runtime.AWSCredentials 클래스도 사용합니다.

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 클래스를 동일한 방식으로 사용할 수 있습니다. 단, SharedCredentialsFile 객체 대신 새 NetSDKCredentialsFile 객체를 인스턴스화한다는 점이 다릅니다.