AWS 지역 선택

 

AWS Regions를 사용하면 특정 지역에 실제로 있는 AWS 서비스에 액세스할 수 있다. 이는 중복성을 유지하고 사용자 및 사용자가 액세스할 수 있는 곳에서 데이터 및 응용 프로그램을 계속 실행하는 데 유용할 수 있습니다. RegionEndpoint 클래스를 사용하여 AWS 서비스 클라이언트를 만들 때 영역을 지정할 수 있다.


다음은 특정 지역에서 Amazon EC2 클라이언트를 인스턴스화하는 예제다.

 

AmazonEC2Client ec2Client = new AmazonEC2Client(RegionEndpoint.USEast1);

 

지역은 서로 격리되어 있습니다. 예를 들어, EU(아일랜드)지역을 사용할 때는 미국 동부(버지니아)자원에 액세스할 수 없다. 코드에 여러 AWS Regions에 대한 액세스가 필요한 경우 각 지역마다 별도의 클라이언트를 만드는 것이 좋다.

 

중국(베이징)지역에서 서비스를 사용하려면 중국(베이징)지역에만 해당되는 계정과 자격 증명이 있어야 한다. 중국(베이징)지역에서는 다른 AWS 지역의 계정 및 자격 증명이 작동하지 않는다. 마찬가지로 중국(베이징)지역의 계정 및 자격 증명은 다른 AWS 지역에서는 작동하지 않는다. 중국(베이징)지역에서 사용할 수 있는 EndPoint 및 프로토콜에 대한 자세한 내용은 중국(베이징)지역을 참조하면 된다.

 

새 AWS 서비스는 초기에 몇 지역에서 시작한 다음 다른 지역에서 지원할 수 있다. 이 경우 새 region에 액세스하기 위해 최신 SDK를 설치할 필요가 없다. 새로 추가된 영역은 클라이언트별로 또는 전역으로 지정할 수 있다.

 


클라이언트 단위로 지역 선택하기(Per-Client)

 

GetBySystemName을 사용하여 새 지역 EndPoint를 만든다.

 

var newRegion = RegionEndpoint.GetBySystemName("us-west-new");
using (var ec2Client = new AmazonEC2Client(newRegion))
{
  // Make a request to EC2 using ec2Client
}

 

서비스 클라이언트 구성 클래스의 ServiceURL 등록 정보를 사용하여 영역을 지정할 수도 있다. 이 기술은 지역 EndPoint가 일반 지역 EndPoint 패턴을 따르지 않는 경우에도 작동한다.

 

var ec2ClientConfig = new AmazonEC2Config
{
    // Specify the endpoint explicitly
    ServiceURL = "https://ec2.us-west-new.amazonaws.com"
};

using (var ec2Client = new AmazonEC2Client(newRegion))
{
  // Make a request to EC2 using ec2Client
}

 

 

전역으로 지역 선택하기(Globally)

 

세 가지 방법을 통해서 지역을 전역으로 설정할 수 있다.

AWSConfigs.AWSRegion 속성을 설정할 수 있다.

 

AWSConfigs.AWSRegion = "us-west-new";
using (var ec2Client = new AmazonEC2Client())
{
  // Make request to Amazon EC2 using ec2Client
}

 

app.config 파일의 appSettings 섹션에서 AWSRegion 키를 설정할 수 있다.

 

<configuration>
  <appSettings>
    <add key="AWSRegion" value="us-west-2"/>
  </appSettings>
</configuration>

 

AWSRegion에 설명된대로 aws 섹션에서 region 속성을 설정할 수 있다.

 

<aws region="us-west-2"/>

 

각 AWS 서비스에 대해 지원되는 모든 지역과 EndPoint의 현재 목록을 보려면 Amazon Web Services General Reference의 Regions and Endpoints를 참조하면 된다.

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

AWS 자격 증명 구성하기(Configuring AWS Credentials)

 

AWS 자격 증명을 안전하게 관리하고 실수로 자격 증명을 공개할 수 있는 습관을 피해야 한다. 이 항목에서는 응용 프로그램의 AWS 자격 증명을 구성하여 보안을 유지하는 방법을 설명한다.

  • 계정의 루트 자격 증명을 사용하여 AWS 리소스에 액세스하면 안된다. 이러한 자격 증명은 제한없는 계정 액세스를 제공하며 취소하기 어렵다.
  • 프로젝트의 App.config 또는 Web.config 파일을 포함하여 응용 프로그램에 리터럴 액세스 키를 넣으면 안된다. 그렇게할 경우, 예를 들어 프로젝트를 공개 저장소에 업로드하는 할 때 실수로 자격 증명이 노출될 위험이 있다.

참고

AWS 계정을 만들고 자격 증명에 액세스 할 수 있다고 가정한다. 아직 로그인하지 않은 경우 AWS 계정 및 자격 증명 만들기[번역링크]를 참조하면 된다.

 

자격 증명을 안전하게 관리하기 위한 일반적인 지침은 다음과 같다.

  • AWS 루트 사용자 대신 IAM 사용자를 만들고 IAM 사용자 자격 증명을 사용해야 한다. IAM 사용자 자격 증명이 손상되면 쉽게 해지할 수 있다. 사용자를 특정 리소스 및 작업 집합으로 제한하는 정책을 각 IAM 사용자에게 적용할 수 있다.
  • 응용 프로그램 개발 중에 자격 증명을 관리하는 기본 방법은 SDK 저장소에 각 IAM 사용자 자격 증명 집합에 대한 프로필을 저장하는 것이다. 일반 텍스트 자격 증명 파일을 사용하여 자격 증명이 포함 된 프로필을 저장할 수도 있다. 그런 다음 프로젝트 파일에 자격 증명을 저장하는 대신 프로그래밍 방식으로 특정 프로필을 참조할 수 있다. 의도하지 않게 자격 증명이 노출 될 위험을 줄이려면 SDK 저장소 또는 자격 증명 파일을 프로젝트 파일과 별도로 저장해야 한다.
  • Amazon EC2 컨테이너 서비스(Amazon ECS) 태스크에 대한 IAM 역할을 태스크에 사용한다.
  • Amazon EC2 인스턴스에서 실행중인 응용 프로그램에 IAM 역할을 사용한다.
  • 조직 외부의 사용자가 사용할 수있는 응용 프로그램에 임시 자격 증명 또는 환경 변수를 사용한다.

다음 항목에서는 .NET용 AWS SDK 응용 프로그램의 자격 증명을 관리하는 방법에 대해 설명한다. AWS 자격 증명을 안전하게 관리하는 방법에 대한 설명은 AWS 액세스 키 관리 모범 사례를 참조하면 된다.

 

 

SDK 저장소 사용하기(Using SDK Store)

 

.NET 응용 프로그램용 AWS SDK 개발 중에 응용 프로그램에 사용할 각 자격 증명 집합에 대한 SDK 저장소에 프로파일을 추가해야 한다. 이렇게하면 실수로 AWS 자격 증명이 노출되는 것을 방지할 수 있다. SDK 저장소는 RegisteredAccounts.json 파일의 C:\Users\<사용자 이름>\AppData\Local\AWSToolkit 폴더에 있다. SDK 저장소는 다음과 같은 이점을 제공한다.

  • SDK 저장소는 여러 계정의 여러 프로필을 포함할 수 있다.
  • SDK 저장소의 자격 증명은 암호화되고 SDK 저장소는 사용자의 홈 디렉터리에 있다. 이로 인해 실수로 자격 증명이 노출될 위험이 제한된다.
  • 응용 프로그램에서 프로파일을 이름으로 참조하고 연관된 신임은 런타임에 참조된다. 원본 파일에 자격 증명이 절대 포함되지 않는다.
  • default라는 프로파일을 포함하면 .NET용 AWS SDK는 해당 프로파일을 사용한다. 다른 프로파일 이름을 제공하지 않거나 지정된 이름을 찾을 수 없는 경우에도 마찬가지이다.
  • 또한 SDK Store는 Windows PowerShell용 AWS Tools 및 Visual Studio용 AWS Toolkit에 대한 자격 증명을 제공한다.

참고

SDK 저장소 프로파일은 특정 호스트의 특정 사용자에게 한정된다. 다른 호스트 또는 다른 사용자에게 복사 할 수 없다. 이러한 이유로 프로덕션 응용 프로그램에서 SDK 저장소 프로필을 사용할 수 없다. 자세한 내용은 자격 증명 및 프로필 확인[번역은 아래 내용에 포함되어 있음]을 참조하면 된다.

 

여러 가지 방법으로 SDK 저장소의 프로필을 관리할 수 있다.

  • Visual Studio용 AWS Toolkit의 GUI(그래픽 사용자 인터페이스)를 사용하여 프로파일을 관리할 수 있다. GUI를 사용하여 SDK 저장소에 자격 증명을 추가하는 방법에 대한 자세한 내용은 Visual Studio용 AWS Toolkit에서 자격 증명 지정을 참조하면 된다.
  • Windows PowerShell용 AWS Tools에서 Set-AWSCredentials cmdlet을 사용하여 명령 줄(command line)에서 프로필을 관리할 수 있다. 자세한 내용은 AWS 자격 증명 사용을 참조하면 된다.
  • Amazon.Runtime.CredentialManagement.CredentialProfile 클래스를 사용하여 프로필을 프로그래밍 방식으로 만들고 관리 할 수 있다.

다음 예제에서는 RegisterProfile 메서드를 사용하여 기본 프로필과 SAML 프로필을 만들고 이를 SDK 저장소에 추가하는 방법을 보여준다.

 

 

프로필 만들기 및 .NET 자격 증명 파일에 저장하기

 

Amazon.Runtime.CredentialManagement.CredentialProfileOptions 객체를 만들고 AccessKey 및 SecretKey 속성을 설정한다. Amazon.Runtime.CredentialManagement.CredentialProfile 객체를 만든다. 작성한 프로파일의 이름과 CredentialProfileOptions 오브젝트를 제공해야 한다. 필요에 따라 프로필의 Region 속성을 설정하면 된다. NetSDKCredentialsFile 오브젝트를 인스턴스화하고 RegisterProfile 메소드를 호출하여 프로파일을 등록해야 한다.

 

var options = new CredentialProfileOptions
{
    AccessKey = "access_key",
    SecretKey = "secret_key"
};
var profile = new Amazon.Runtime.CredentialManagement.CredentialProfile("basic_profile", options);
profile.Region = RegionEndpoint.USWest1;
var netSDKFile = new NetSDKCredentialsFile();
netSDKFile.RegisterProfile(profile);

 

RegisterProfile 메서드는 새 프로필을 등록하는 데 사용된다. 일반적으로, 어플리케이션은 이 메소드를 각 프로파일에 대해서 1회만 호출한다.

 

 

SAMLEndpoint 및 연결된 프로필 만들기 및 .NET 자격 증명 파일에 저장하기


Amazon.Runtime.CredentialManagement.SAMLEndpoint 객체를 만든다. 이름 및 엔드 포인트 URI 매개 변수를 제공해야 한다. Amazon.Runtime.CredentialManagement.SAMLEndpointManager 객체를 만든다. RegisterEndpoint 메소드를 호출하여 엔드 포인트를 등록해야 한다. Amazon.Runtime.CredentialManagement.CredentialProfileOptions 객체를 만들고 EndpointName 및 RoleArn 속성을 설정한다. Amazon.Runtime.CredentialManagement.CredentialProfile 객체를 만들고 프로필 이름과 만든 CredentialProfileOptions 객체의 이름을 제공해야 한다. 필요에 따라 프로필의 Region 속성을 설정하면 된다. NetSDKCredentialsFile 오브젝트를 인스턴스화하고 RegisterProfile 메소드를 호출하여 프로파일을 등록해야 한다.

 

var endpoint = new SAMLEndpoint("endpoint1", new Uri("https://some_saml_endpoint"), SAMLAuthenticationType.Kerberos);
var endpointManager = new SAMLEndpointManager();
endpointManager.RegisterEndpoint(endpoint);
options = new CredentialProfileOptions
{
    EndpointName = "endpoint1",
    RoleArn = "arn:aws:iam::999999999999:role/some-role"
};
profile = new CredentialProfile("federated_profile", options);
netSDKFile = new NetSDKCredentialsFile();
netSDKFile.RegisterProfile(profile);

 

 

격 증명 파일 사용하기

 

프로파일을 공유 신임 정보 파일에 저장할 수도 있다. 이 파일은 다른 AWS SDK, AWS CLI 및 AWS Tools for Windows PowerShell에서 사용할 수 있다. 실수로 자격 증명을 노출 할 위험을 줄이려면 일반적으로 사용자의 홈 폴더에 프로젝트 파일과 별도로 자격 증명 파일을 저장해야 한다. 자격 증명 파일의 프로필은 일반 텍스트로 저장된다.


다음 두 가지 방법으로 공유 자격 증명 파일의 프로필을 관리할 수 있다.

  • 텍스트 편집기를 사용할 수 있다. 파일 이름이 자격 증명이며 기본 위치는 사용자의 홈 폴더 아래에 있다. 예를 들어 사용자 이름이 awsuser인 경우 자격 증명 파일은 C:\users\awsuser\.aws\credentials이 된다.
    다음은 신임 정보 파일에 있는 프로파일의 예시이다.

   [{profile_name}]
   aws_access_key_id = {accessKey}
   aws_secret_access_key = {secretKey}

 For more information, see
`Best Practices for Managing AWS Access Keys <http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html>`_.

 

참고

default라는 프로파일을 포함하면 지정된 프로파일을 찾을 수없는 경우 .NET용 AWS SDK는 기본적으로 해당 프로파일을 사용한다.
선택한 위치(예 : C:\aws_service_credentials\credentials)에 프로필이 들어있는 자격 증명 파일을 저장할 수 있다. 그런 다음 프로젝트의 App.config 또는 Web.config 파일에서 AWSProfilesLocation 특성의 파일 경로를 명시적으로 지정한다. 자세한 내용은 프로필 지정[번역 내용은 아래쪽을 참조]을 참조하면 된다.

 

 

프로필 만들기 및 공유 자격 증명 파일에 저장

 

Amazon.Runtime.CredentialManagement.CredentialProfileOptions 객체를 만들고 AccessKey 및 SecretKey 속성을 설정한다. Amazon.Runtime.CredentialManagement.CredentialProfile 객체를 만든다. 작성한 프로파일의 이름과 CredentialProfileOptions를 제공해야 한다. 필요에 따라 프로필의 Region 속성을 설정하면 된다. Amazon.Runtime.CredentialManagement.SharedCredentialsFile 객체를 인스턴스화하고 RegisterProfile 메소드를 호출하여 프로파일을 등록해야 한다.

 

options = new CredentialProfileOptions
{
    AccessKey = "access_key",
    SecretKey = "secret_key"
};
profile = new CredentialProfile("shared_profile", options);
profile.Region = RegionEndpoint.USWest1;
var sharedFile = new SharedCredentialsFile();
sharedFile.RegisterProfile(profile);

 

RegisterProfile 메서드는 새 프로필을 등록하는 데 사용된다. 응용 프로그램에서는 일반적으로 이 메서드를 각 프로필에 대해 한 번만 호출한다.

 

 

원본 프로필 및 연결된 역할 프로필 만들기 및 자격 증명 파일에 저장(Create a Source Profile and an Associated Assume Role Profile and Save It to the Credentials File)

 

원본 프로파일에 대한 Amazon.Runtime.CredentialManagement.CredentialProfileOptions 객체를 만들고 AccessKey 및 SecretKey 속성을 설정한다. Amazon.Runtime.CredentialManagement.CredentialProfile 객체를 만든다. 작성한 프로파일의 이름과 CredentialProfileOptions를 제공해야 한다. Amazon.Runtime.CredentialManagement.SharedCredentialsFile 객체를 인스턴스화하고 RegisterProfile 메소드를 호출하여 프로파일을 등록해야 한다. 가정된 역할 프로필에 대해 또 다른 Amazon.Runtime.CredentialManagement.CredentialProfileOptions 객체를 만들고 프로필의 SourceProfile 및 RoleArn 속성을 설정한다. 가정된 역할에 대한 Amazon.Runtime.CredentialManagement.CredentialProfile 객체를 만든다. 작성한 프로파일의 이름과 CredentialProfileOptions를 제공해야 한다.

 

// Create the source profile and save it to the shared credentials file

// 원본 프로필을 만들어 공유 자격 증명 파일에 저장한다.
var sourceProfileOptions = new CredentialProfileOptions
{
    AccessKey = "access_key",
    SecretKey = "secret_key"
};
var sourceProfile = new CredentialProfile("source_profile", sourceProfileOptions);
sharedFile = new SharedCredentialsFile();
sharedFile.RegisterProfile(sourceProfile);

// Create the assume role profile and save it to the shared credentials file

// 가정 역할 프로필을 만들어 공유 자격 증명 파일에 저장한다.
var assumeRoleProfileOptions = new CredentialProfileOptions
{
    SourceProfile = "source_profile",
    RoleArn = "arn:aws:iam::999999999999:role/some-role"
};
var assumeRoleProfile = new CredentialProfile("assume_role_profile", assumeRoleProfileOptions);
sharedFile.RegisterProfile(assumeRoleProfile);

 

 

공유 자격 증명 파일에서 기존 프로필 업데이트


Amazon.Runtime.CredentialManagement.SharedCredentialsFile 객체를 만든다. 해당 프로파일에 대해 Region, AccessKey 및 SecretKey 속성을 설정한다. TryGetProfile 메서드를 호출해야 한다. 프로파일이 있으면 Amazon.Runtime.CredentialManagement.SharedCredentialsFile 인스턴스를 사용하고 RegisterProfile 메소드를 호출하여 업데이트된 프로파일을 등록하면 된다.

 

sharedFile = new SharedCredentialsFile();
CredentialProfile basicProfile;
if (sharedFile.TryGetProfile("basicProfile", out basicProfile))
{
    basicProfile.Region = RegionEndpoint.USEast1;
    basicProfile.Options.AccessKey = "different_access_key";
    basicProfile.Options.SecretKey = "different_secret_key";

    sharedFile.RegisterProfile(basicProfile);
}

 

 

응용 프로그램의 자격 증명 및 프로필 액세스


Amazon.Runtime.CredentialManagement.CredentialProfileStoreChain 클래스를 사용하여 .NET 자격 증명 파일이나 공유 자격 증명 파일에서 자격 증명 및 프로필을 쉽게 찾을 수 있다. 이것은 .NET SDK가 자격 증명 및 프로필을 찾는 방식이다. CredentialProfileStoreChain 클래스는 두 자격 증명 파일을 자동으로 체크인한다.

 

TryGetAWSCredentials 또는 TryGetProfile 메서드를 사용하여 자격 증명 또는 프로필을 가져올 수 있다. ProfilesLocation 속성은 다음과 같이 CredentialsProfileChain의 동작을 결정한다.

  1. ProfilesLocation이 null이 아니고 비어 있지 않으면 ProfilesLocation 등록 정보의 디스크 경로에서 공유 자격 증명 파일을 검색한다.
  2. ProfilesLocation이 null이거나 비어 있고 플랫폼이 .NET 자격 증명 파일을 지원하는 경우 .NET 자격 증명 파일을 검색한다. 프로필을 찾을 수 없는 경우 기본 위치에서 공유 자격 증명 파일을 검색한다.
  3. ProfilesLocation이 null이거나 비어 있고 플랫폼이 .NET 자격 증명 파일을 지원하지 않는 경우 기본 위치의 공유 자격 증명 파일을 검색한다.

 

 

기본 위치의 SDK 자격 증명 파일 또는 공유 자격 증명 파일에서 자격 증명을 가져오기


CredentialProfileStoreChain 객체와 Amazon.Runtime.AWSCredentials 객체를 만든다. TryGetAWSCredentials 메서드를 호출한다. 자격 증명을 반환할 프로필 이름과 AWSCredentials 개체를 제공한다.

 

var chain = new CredentialProfileStoreChain();
AWSCredentials awsCredentials;
if (chain.TryGetAWSCredentials("basic_profile", out awsCredentials))
{
    // use awsCredentials
}

 

 


기본 위치의 SDK 자격 증명 파일 또는 공유 자격 증명 파일에서 프로필 가져오기

 

CredentialProfileStoreChain 객체와 Amazon.Runtime.CredentialManagement.CredentialProfile 객체를 만든다. TryGetProfile 메서드를 호출하고 자격 증명을 반환할 프로필 이름과 CredentialProfile 개체를 제공한다.

 

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

 

 

파일 위치에서 공유 자격 증명 파일 형식의 파일에서 AWSCredentials 가져오기


CredentialProfileStoreChain 객체를 만들고 자격 증명 파일의 경로를 제공한다. AWSCredentials 객체를 만든다. TryGetAWSCredentials 메서드를 호출한다. 자격 증명을 반환할 프로필 이름과 AWSCredentials 개체를 제공한다.

 

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

 

 

SharedCredentialsFile 클래스를 사용하여 AmazonS3Client를 만드는 방법


Amazon.Runtime.CredentialManagement.SharedCredentialsFile 클래스를 사용하여 특정 프로필에 대한 자격 증명을 사용하는 AmazonS3Client 객체를 만들 수 있다. .NET용 AWS SDK는 프로필에 포함된 자격 증명을 자동으로 로드한다. App.Config에서 지정한 프로파일과 다른 특정 클라이언트에 대해 특정 프로파일을 사용하려는 경우 이 작업을 수행할 수 있다.

 

CredentialProfile basicProfile;
AWSCredentials awsCredentials;
var sharedFile = new SharedCredentialsFile();
if (sharedFile.TryGetProfile("basic_profile", out basicProfile) &&
    AWSCredentialsFactory.TryGetAWSCredentials(basicProfile, sharedFile, out awsCredentials))
{
    using (var client = new AmazonS3Client(awsCredentials, basicProfile.Region))
    {
        var response = client.ListBuckets();
    }
}

 

기본 프로파일을 사용하고 .NET용 AWS SDK에 자동으로 기본 자격 증명을 사용하여 클라이언트 객체를 만들려면 다음 코드를 사용하면 된다.

 

using (var client = new AmazonS3Client(RegionEndpoint.US-West2))
{
    var response = client.ListBuckets();
}

 

 

자격 증명 및 프로필 해결


.NET용 AWS SDK는 다음 순서로 자격 증명을 검색하고 현재 응용 프로그램에 대해 사용 가능한 첫 번째 set을 사용한다.

  1. 클라이언트 구성 또는 AWS 서비스 클라이언트에 명시 적으로 설정되는 항목.
  2. 사용 가능한 경우 AWSAccessKey 및 AWSSecretKey AppConfig 값에서 생성되는 BasicAWSCredentials.
  3. AWSConfigs.AWSProfileName (명시 적 또는 AppConfig에 설정)의 값으로 지정된 이름을 가진 자격 증명 프로파일.
  4. 기본 자격 증명 프로필.
  5. 모두 비어있는 경우 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 및 AWS_SESSION_TOKEN 환경 변수에서 생성된 SessionAWSCredentials.
  6. AWS_ACCESS_KEY_ID 및 AWS_SECRET_ACCESS_KEY 환경 변수에서 만들어지는 BasicAWSCredentials (둘 다 비어 있지 않은 경우)
  7. Amazon EC2 컨테이너 서비스 (Amazon ECS) 태스크에 대한 IAM 역할.
  8. EC2 인스턴스 메타 데이터.

SDK 저장소 프로파일은 특정 호스트의 특정 사용자에게 한정된다. 다른 호스트 또는 다른 사용자에게 복사할 수 없다. 이러한 이유로 다른 호스트 또는 개발자 컴퓨터에서 개발 컴퓨터에 있는 SDK 저장소 프로필을 다시 사용할 수 없다. 응용 프로그램이 Amazon EC2 인스턴스에서 실행중인 경우 .NET용 AWS SDK와 함께 EC2 인스턴스에 IAM 역할 사용에 설명된대로 IAM 역할을 사용해야 한다. 그렇지 않으면 웹 응용 프로그램이 서버에 액세스할 수있는 자격 증명 파일에 자격 증명을 저장한다.

 

 

프로필 해결(Profile Resolution)


두 가지 자격 증명 파일 유형을 사용하는 경우 .NET용 AWS SDK 및 Windows PowerShell용 AWS 도구를 사용하여 구성하는 방법을 이해하는 것이 중요하다. AWSConfigs.AWSProfilesLocation(명시적 또는 AppConfig에서 설정)은 .NET용 AWS SDK가 자격 증명 프로필을 찾는 방법을 제어한다. -ProfileLocation 명령 줄 인수(command line argument)는 Windows PowerShell용 AWS Tools에서 프로필을 찾는 방법을 제어한다. 두 경우 모두 구성이 작동하는 방식은 다음과 같다.

 



프로필 위치 값 
 프로필 해결 동작

 null (설정되지 않음) 또는 비어 있음 먼저 .NET 자격 증명 파일에서 지정된 이름의 프로필을 검색한다. 프로필이 없으면 %HOME%\.aws\credentials을 검색한다. 프로필이 없으면 %HOME%\.aws\config를 검색한다.
공유 자격 증명 파일 형식의 파일 경로 지정한 파일만 검색하여 지정된 이름의 프로필을 찾는다.

 

 

프로필 지정하기(Specifying a Profile)


프로필은 AWS SDK for .NET 응용 프로그램에서 자격 증명을 사용하는 기본 방법이다. 프로필이 저장되는 위치를 지정할 필요가 없다. 프로필은 이름으로 만 참조할 수 있다. .NET용 AWS SDK는 이전 섹션에서 설명한대로 해당 자격 증명을 검색한다.


프로필을 지정하는 가장 좋은 방법은 응용 프로그램의 App.config 또는 Web.config 파일의 appSettings 섹션에서 AWSProfileName 값을 정의하는 것이다. 연관된 자격 증명은 빌드 프로세스 중에 응용 프로그램에 통합된다.

 

다음 예제는 development라는 프로필을 지정한다.

 

<configuration>
  <appSettings>
    <add key="AWSProfileName" value="development"/>
  </appSettings>
</configuration>

 

이 예제에서는 프로필이 SDK 저장소 또는 기본 위치의 자격 증명 파일에 있다고 가정한다.

 

프로필이 다른 위치의 자격 증명 파일에 저장되어 있는 경우 <appSettings> 요소에 AWSProfilesLocation 속성 값을 추가하여 위치를 지정해야 한다. 다음 예에서는 C:\aws_service_credentials\credentials을 자격 증명 파일로 지정한다.

 

<configuration>
  <appSettings>
    <add key="AWSProfileName" value="development"/>
    <add key="AWSProfilesLocation" value="C:\aws_service_credentials\credentials"/>
  </appSettings>
</configuration>

 

프로필을 지정하는 더 이상 사용되지 않는 대체 방법은 아래에 완전성을 위해 표시되어 있지만 권장하지 않는다.

 

<configuration>
  <configSections>
    <section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/>
  </configSections>
  <aws profileName="development" profilesLocation="C:\aws_service_credentials\credentials"/>
</configuration>

<configuration>
  <configSections>
    <section name="aws" type="Amazon.AWSSection,AWSSDK.Core"/>
  </configSections>
  <aws profileName="development" profilesLocation="C:\aws_service_credentials\credentials"/>
</configuration>

 

 

페더레이션 사용자 계정 자격 증명 사용

 

.NET용 AWS SDK (AWSSDK.Core 버전 3.1.6.0 이상)를 사용하는 응용 프로그램은 AD FS(Active Directory Federation Service)를 통한 페더레이션 사용자 계정을 사용하여 SAML(Security Assertion Markup Language)을 사용하여 AWS 웹 서비스에 액세스할 수 있다.

 

페더레이션된 액세스 지원은 사용자가 Active Directory를 사용하여 인증할 수 있음을 의미한다. 임시 자격 증명은 사용자에게 자동으로 부여된다. 1시간 동안 유효한 이러한 임시 자격 증명은 응용 프로그램이 AWS 웹 서비스를 호출할 때 사용된다. SDK는 임시 자격 증명 관리를 처리한다. 도메인에 가입된 사용자 계정의 경우 응용 프로그램에서 호출했지만 자격 증명이 만료된 경우 사용자가 자동으로 다시 인증되고 새 자격 증명이 부여된다. 도메인 가입이 아닌 계정의 경우 재인증 전에 자격 증명을 입력하라는 메시지가 사용자에게 표시된다.

 

.NET 응용 프로그램에서이 지원을 사용하려면 먼저 PowerShell cmdlet을 사용하여 역할 프로필을 설정해야 한다. 방법을 배우려면 AWS Tools for Windows PowerShell 설명서를 참조하면 된다.

 

역할 프로필을 설정한 후에 다른 인증 프로파일과 마찬가지로 AWSProfileName 키를 사용하여 응용 프로그램의 app.config/web.config 파일에서 프로필을 참조하면 된다.

 

런타임에 로드되는 SDK 보안 토큰 서비스 어셈블리(AWSSDK.SecurityToken.dll)는 AWS 자격 증명을 얻기위한 SAML 지원을 제공한다. 이 어셈블리는 런타임에 응용 프로그램에서 사용할 수 있어야 한다.

 

 

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

 

Amazon EC2 인스턴스에서 실행되는 응용 프로그램의 경우 자격 증명을 관리하는 가장 안전한 방법은 .NET용 AWS SDK와 함께 EC2 인스턴스에 IAM 역할 사용에 설명된대로 IAM 역할을 사용하는 것이다.

 

조직 외부 사용자가 소프트웨어 실행 파일을 사용할 수 있는 응용 프로그램 시나리오의 경우 임시 보안 자격 증명을 사용하도록 소프트웨어를 설계하는 것이 좋다. AWS 리소스에 제한적으로 액세스 할 수 있을뿐 아니라 이러한 자격 증명은 지정된 기간 후에 만료되는 이점이 있다. 임시 보안 자격 증명에 대한 자세한 내용은 다음을 참조하면 된다.

두 번째 글의 제목은 모바일 응용 프로그램을 구체적으로 언급하지만 이 문서에는 조직 외부에 배포된 AWS 응용 프로그램에 대한 유용한 정보가 들어있다.

 

 

프록시 자격 증명 사용

 

소프트웨어가 프록시를 통해 AWS와 통신하는 경우 서비스의 AmazonS3Config 클래스에 있는 ProxyCredentials 등록 정보를 사용하여 프록시에 대한 자격 증명을 지정할 수 있다. 예를 들어 Amazon S3의 경우 다음과 유사한 코드를 사용할 수 있다. {my-username} 및 {my-password}는 NetworkCredential 객체에 지정된 프록시 사용자 이름 및 비밀번호이다.

 

AmazonS3Config config = new AmazonS3Config();
config.ProxyCredentials = new NetworkCredential("my-username", "my-password");

 

이전 버전의 SDK에서는 ProxyUsername 및 ProxyPassword를 사용했지만 이러한 속성은 더 이상 사용되지 않는다.

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

.NET 응용 프로그램용 AWS SDK 구성

 

Amazon S3 용 AWS SDK for .NET 애플리케이션을 구성하여 AWS 자격 증명, 로깅 옵션, 엔드 포인트 또는 서명 버전 4 지원을 지정할 수 있다.


응용 프로그램을 구성하는 데 권장되는 방법은 프로젝트의 App.config 또는 Web.config 파일에서 <aws> 요소를 사용하는 것이다. 다음 예제에서는 AWSRegionAWSLogging 매개 변수를 지정한다.

 

<configuration>
  <configSections>
    <section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/>
  </configSections>
  <aws region="us-west-2">
    <logging logTo="Log4Net"/>
  </aws>
</configuration>

 

응용 프로그램을 구성하는 또 다른 방법은 프로젝트의 App.config 또는 Web.config 파일에서 <appSettings> 요소를 편집하는 것이다. 다음 예제에서는 AWSRegion AWSLogging 매개 변수를 지정한다.

 

<configuration>
  <appSettings>
    <add key="AWSRegion" value="us-west-2"/>
    <add key="AWSLogging" value="log4net"/>
  </appSettings>
</configuration>

 

이러한 설정은 응용 프로그램을 다시 작성한 후에 만 적용된다.

 

AWSConfigs 클래스에서 속성 값을 설정하여 프로그래밍 방식으로 .NET 용 AWS SDK 응용 프로그램을 구성 할 수 있지만 대신 aws 요소를 사용하는 것이 좋다. 다음 예제에서는 AWSRegion AWSLogging 매개 변수를 지정한다.

 

AWSConfigs.AWSRegion = "us-west-2";
AWSConfigs.Logging = LoggingOptions.Log4Net;


프로그래밍 방식으로 정의된 매개 변수는 App.config 또는 Web.config 파일에 지정된 값보다 우선시 한다. 프로그래밍 방식으로 정의된 일부 매개 변수 값은 즉시 적용된다. 다른 것은 새 클라이언트 오브젝트를 작성한 후에만 적용된다.

 

자세한 내용은 AWS 자격 증명 구성을 참조하면 된다.

 

 

주제

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

+ Recent posts