SDK 스토어 사용(Windows만 해당) - AWS SDK for .NET

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

SDK 스토어 사용(Windows만 해당)

(중요 경고 및 지침을 반드시 검토하세요.)

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

주의

보안 위험을 방지하려면 목적별 소프트웨어를 개발하거나 실제 데이터로 작업할 때 IAM 사용자를 인증에 사용하지 마세요. 대신 AWS IAM Identity Center과 같은 보안 인증 공급자를 통한 페더레이션을 사용하세요.

참고

이 주제의 정보는 단기 또는 장기 보안 인증 정보를 수동으로 획득하고 관리해야 하는 상황을 위한 것입니다. 단기 및 장기 보안 인증 정보에 대한 자세한 내용은 AWS 및 도구 참조 가이드의 다른 인증 방법을 참조하세요.

모범 보안 사례는 SDK 인증 구성에 설명된 대로 AWS IAM Identity Center를 사용하세요.

일반 정보

SDK 스토어에는 다음과 같은 이점이 있습니다.

  • SDK 스토어의 보안 인증은 암호화되며 SDK 스토어는 사용자의 홈 디렉터리에 상주합니다. 이렇게 하면 예기치 않게 자격 증명이 노출될 위험을 줄일 수 있습니다.

  • SDK 스토어도 AWS Tools for Windows PowerShellAWS Toolkit for Visual Studio에 보안 인증을 제공합니다.

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

다음과 같은 방식으로 SDK 스토어에서 프로필을 관리할 수 있습니다.

프로필 관리의 예

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

프로그래밍 방식으로 프로필 생성

이 예제에서는 프로그래밍 방식으로 프로필을 만들고 SDK 스토어에 저장하는 방법을 보여줍니다. CredentialProfileOptions, CredentialProfileNetSDKCredentialsFile과 같은 Amazon.Runtime.CredentialManagement 네임스페이스의 클래스를 사용합니다.

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", }

프로그래밍 방식으로 기존 프로필 업데이트

이 예제에서는 이전에 만든 프로필을 프로그래밍 방식으로 업데이트하는 방법을 보여줍니다. CredentialProfileNetSDKCredentialsFile과 같은 Amazon.Runtime.CredentialManagement 네임스페이스의 클래스를 사용합니다. 또한 Amazon 네임스페이스의 RegionEndpoint 클래스를 사용합니다.

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 리전 구성 섹션을 참조하세요.