보안 인증 정보 및 프로파일 확인 - AWS SDK for .NET

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

보안 인증 정보 및 프로파일 확인

AWS SDK for .NET는 특정 순서로 보안 인증을 검색하고 현재 애플리케이션에서 가장 먼저 사용 가능한 세트를 사용합니다.

보안 인증 검색 순서
  1. 애플리케이션에서 자격 증명 및 프로필에 액세스에 설명된 대로 AWS 서비스 클라이언트에 명시적으로 설정된 보안 인증입니다.

    참고

    이 주제는 보안 인증을 지정하는 데 선호되는 방법이 아니므로 특별 고려 사항 섹션에 있습니다.

  2. AWSConfigs.AWSProfileName의 값으로 이름이 지정된 보안 인증 프로필입니다.

  3. AWS_PROFILE 환경 변수로 이름이 지정된 보안 인증 프로필입니다.

  4. [default] 자격 증명 프로필

  5. AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN 환경 변수(모두 비어 있지 않은 경우)에서 생성된 SessionAWSCredentials입니다.

  6. AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 환경 변수(둘 다 비어 있지 않은 경우)에서 생성된 BasicAWSCredentials입니다.

  7. Amazon ECS 태스크의 작업에 대한 IAM 역할

  8. Amazon EC2 인스턴스 메타데이터입니다.

애플리케이션이 Amazon EC2 인스턴스(예: 프로덕션 환경)에서 실행되는 경우 IAM 역할을 사용하여 액세스 권한 부여에 설명된 대로 IAM 역할을 사용하세요. 그렇지 않은 경우(예: 프리 릴리스 테스트) 웹 애플리케이션이 서버에서 액세스하는 AWS 보안 인증 파일 형식을 사용하는 파일에 보안 인증을 저장합니다.

프로필 해결 방법

서로 다른 두 개의 보안 인증 스토리지 메커니즘이 있는 경우 두 파일 형식을 사용할 수 있도록 AWS SDK for .NET를 구성하는 방법을 이해하는 것이 중요합니다. AWSConfigs.AWSProfilesLocation 속성은 AWS SDK for .NET가 보안 인증 프로필을 찾는 방법을 제어합니다.

AWSProfilesLocation 프로파일 해결 동작

null 값(설정되지 않음) 또는 비어 있음

플랫폼에서 지원하는 경우 SDK 스토어를 검색한 다음 기본 위치에서 공유 AWS 보안 인증 파일을 검색하세요. 프로필이 해당 위치 중 하나에 없으면 ~/.aws/config(Linux 또는 macOS) 또는 %USERPROFILE%\.aws\config(Windows)를 검색하세요.

AWS 자격 증명 파일 형식으로 된 파일의 경로

특정 이름이 있는 프로필에 대해 지정된 파일 검색합니다.

연동 사용자 계정 자격 증명 사용

AWS SDK for .NET(AWSSDK.Core 버전 3.1.6.0 이상)를 사용하는 애플리케이션에서는 SAML(Security Assertion Markup Language)을 사용해 AWS 서비스에 액세스하기 위해 AD FS(Active Directory Federation Services)를 통해 연합된 사용자 계정을 사용할 수 있습니다.

연동 액세스 지원이란 사용자가 Active Directory를 사용하여 인증할 수 있음을 뜻합니다. 임시 자격 증명은 사용자에게 자동으로 부여됩니다. 이 임시 자격 증명은 한 시간 동안 유효하며 애플리케이션에서 AWS 서비스를 호출할 때 사용됩니다. SDK는 임시 자격 증명 관리 작업을 처리합니다. 도메인 병합 사용자 계정의 경우 애플리케이션에서 호출을 하지만 자격 증명이 만료되었다면 사용자는 자동으로 재인증되어 새로운 자격 증명이 부여됩니다. (도메인 병합 계정이 아닌 경우 사용자는 재인증 전에 자격 증명을 입력하라는 메시지를 받습니다.)

.NET 애플리케이션에서 이 지원 기능을 사용하려면 먼저 PowerShell cmdlet을 사용하여 역할 프로필을 설정해야 합니다. 자세한 내용은 AWS Tools for Windows PowerShell 설명서를 참조하세요.

역할 프로파일을 설정한 후에는 애플리케이션에서 해당 프로필을 참조하세요. 여러 가지 방법으로 이 작업을 수행할 수 있는데, 그 중 하나는 다른 보안 인증 프로파일과 동일한 방식으로 AWSConfigs.AWSProfileName 속성을 사용하는 것입니다.

AWS Security Token Service 어셈블리(AWSSDK.SecurityToken)는 AWS 보안 인증을 얻기 위한 SAML 지원을 제공합니다. 페더레이션 사용자 계정 보안 인증을 사용하려면 애플리케이션에서 이 어셈블리를 사용할 수 있어야 합니다.

역할 또는 임시 자격 증명 지정

Amazon EC2 인스턴스에서 실행되는 애플리케이션의 경우 IAM 역할을 사용하여 액세스 권한 부여의 설명과 같이 자격 증명을 관리하는 가장 안전한 방법은 IAM 역할을 사용하는 것입니다.

조직 외부의 사용자가 소프트웨어 실행 파일을 사용할 수 있는 애플리케이션 시나리오의 경우 임시 보안 자격 증명을 사용할 수 있도록 소프트웨어를 설계하는 것이 좋습니다. 이 자격 증명은 AWS 리소스에 대한 제한된 액세스를 제공할 뿐 아니라 지정된 기간이 지나면 만료된다는 이점이 있습니다. 임시 보안 자격 증명에 관한 자세한 내용은 다음 내용을 확인하십시오.

프록시 자격 증명 사용

소프트웨어가 프록시를 통해 AWS와 통신하는 경우 서비스 Config 클래스의 ProxyCredentials 속성을 사용하여 프록시에 대한 자격 증명을 지정할 수 있습니다. 서비스의 Config 클래스는 일반적으로 서비스의 기본 네임스페이스의 일부입니다. Amazon.CloudDirectory 네임스페이스의 AmazonCloudDirectoryConfigAmazon.GameLift 네임스페이스의 AmazonGameLiftConfig를 예로 들 수 있습니다.

예를 들어 Amazon S3의 경우 다음과 유사한 코드를 사용할 수 있습니다. 여기에서 SecurelyStoredUserNameSecurelyStoredPasswordNetworkCredential 객체에서 지정된 프록시 사용자 이름과 암호입니다.

AmazonS3Config config = new AmazonS3Config(); config.ProxyCredentials = new NetworkCredential(SecurelyStoredUserName, SecurelyStoredPassword);
참고

이전 버전의 SDK에서는 ProxyUsernameProxyPassword를 사용하였으나 이 속성들은 사용이 중단되었습니다.