2017-03-27 1 views
11

AWS SDK를 처음 사용하고 AWS documentation을 따르려고 노력하고 있지만 설치가 필요한 부분은 거의 제공하지 않습니다. NET Core의 AWS SDK에 자격 증명을 설정하는 방법은 무엇입니까?

공식 문서

는 appsettings.json이 추가 말해 : 다음

{ 
    "AWS": { 
    "Profile": "local-test-profile", 
    "Region": "us-west-2" 
    } 
} 

와 클라이언트 생성 : 그것은을 찾을 수 없다는이 예외가 발생되도록

var options = Configuration.GetAWSOptions(); 
IAmazonS3 client = options.CreateServiceClient<IAmazonS3>(); 

을 신임장. Api ID와 Key는 어디에 넣어야합니까? 이 프로필이 무엇입니까?

이 설정 방법에 대한 기본 설정이 없습니다. 나는 .NET Core의 공식 문서를 따르려고하고 있으며, 그 유일한 예는 작동하지 않는다. 문서는 많은 용어와 설정에 대한 사전 지식이 있거나 기존 앱을 이전 중이며 이미 모든 설정이되어 있음을 암시하는 것 같습니다.

API가 AWS에 올바르게 연결되도록하기 위해이 예제에서 누락 된 부분을 지적 해 주시겠습니까?

답변

1

json 파일은 $ "appsettings. {env.EnvironmentName} .json"이므로 appsettings.Development.json을 호출하고 환경 변수를 설정해야합니다.

"local-test-profile"프로필을 AWS 자격 증명 파일에 정의 했습니까?

는 C에서해야합니다. 사용자를 \ \ {USERNAME} \ AWS \ 자격 증명

[local-test-profile] 
aws_access_key_id = your_access_key_id 
aws_secret_access_key = your_secret_access_key 

기본 위치에 그것을 원하지 않는 경우, 당신은 'ProfilesLocation'json으로 설정 파일을 설정할 수 있습니다.

+1

감사합니다. 아니요, 제가이 프로파일을 정의하지 않은 이유는 내가 해야할지 모르기 때문입니다. 이것은 문서에서 명확하지 않습니다. 따라서 문서에서 누락 된 점은 액세스 키와 비밀이있는이 ini-like 파일이 있어야 볼 수있는 특정 위치에 있어야한다는 것입니다. – Natan

+0

최악의 코딩 - C : \ Users'에 데이터 저장 – Toolkit

0

동일한 설명서에는 자격 증명을 설정하기위한 섹션도 포함되어 있습니다. 여기를 클릭하십시오. http://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html

appSettings.json 파일을 사용하여 자격 증명을 설정하는 예는 제공되지 않습니다. 올바른 (안전한) 방법이라고 생각하지 않기 때문입니다.

여기에 자격 증명을 설정하는 방법에 대한 섹션의 도입 부분에서입니다 :

이 프로젝트의 App.config 또는 Web.config 파일을 포함하여 응용 프로그램에서 문자 액세스 키를 넣지 마십시오. 그렇다면 예를 들어 프로젝트를 공개 저장소에 업로드하는 경우 실수로 자격 증명이 노출 될 위험이 있습니다.

+0

이 설명서에는 appsettings.json에서 설정하는 방법에 대한 한 가지 예가 없습니다. – Natan

+2

@ Natan 그것은 올바른 방법이 아니기 때문입니다. – Hasan

+1

그건 실제로 질문에 대답하지 않습니다. 실제로 문제의 일부입니다. 이 SDK를 처음 사용하기 때문에 제공된 예제가 작동하지 않으며 잘못된 것을 잘 모릅니다. 더 도움이 될만한 기회가 있으십니까? 나는 무엇을해야만 하는가? 샘플 코드를 작동시키는 방법에 대한 예제를 줄 수 있습니까? 이 시점에서 샘플 코드를 실행하는 방법을 이해해야합니다. – Natan

3

어쩌면 너무 늦은 것일 수 있습니다. 그러나 docker를 사용하거나 다른 환경/설정을 사용하여 AWS 프로파일을 사용할 수 없거나 쉽게 사용할 수있는 환경이라면 여전히 환경 변수를 사용할 수 있습니다. 예를 들면 :

var awsOptions = Configuration.GetAWSOptions(); awsOptions.Credentials = new EnvironmentVariablesAWSCredentials(); services.AddDefaultAWSOptions(awsOptions); services.AddAWSService<IAmazonS3>();

은 그런 환경에서 AWS_ACCESSS_KEY_ID & AWS_SECRET_ACCESS_KEY에게 & AWS_REGION을 설정합니다.

아마존은 필요 이상으로 문서에서이 부분을 찾기가 더 어려워졌습니다.

역할을 사용해야하므로 실제 AWS에서 실행 중이지만 dev에 대한 사용 도커가 컨테이너의 프로필을 설정하는 경우 PITA입니다.

+0

이것은 창문에 없다면 정말 도움이 될 것입니다. 우리는 비 kubernetes 클러스터에 배포하고 있습니다. 거기서 가장 잘 작동 해. – dougajmcdonald

+0

나는 자격 증명을 얻기 위해 가능한 모든 장소를 검색 할 하나의 것이 정말로 필요합니다. 표준 방법은 이것을하지만 환경을 검색하지는 않습니다. 슬퍼! – Jonesie

+0

그래, 좋을거야! 또한 .net 클라이언트는 거의 당신이 윈도우에서 실행한다고 가정하고 꽤 PCL/.Net 코어 호환 라이브러리라고 생각하는 프로파일을 사용할 수 있습니다 – dougajmcdonald

관련 문제