2017-03-27 15 views
11

Jestem nowy w AWS SDK i staram się podążać za AWS documentation, ale daje on niewiele do zera na temat tego, co dokładnie muszę skonfigurować.Jak ustawić poświadczenia na SDK AWS w NET Core?

Dzienniku docs powiedzieć, dodać to do appsettings.json:

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

a następnie utworzyć klienta:

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

Powoduje wyjątek być rzucony mówiąc, że nie może znaleźć kwalifikacje. Gdzie umieścić identyfikator i klucz API? Co to za profil?

Proszę pamiętać, że nie mam żadnych preferencji, jak to ustawić. Po prostu staram się postępować zgodnie z oficjalną dokumentacją .NET Core, a ich jedyny przykład nie działa. Dokumenty zdają się sugerować, że powinienem mieć wcześniejszą wiedzę na temat wielu ich terminów i ustawień lub że dokonuję migracji istniejącej aplikacji i mam już wszystko skonfigurowane.

Czy ktoś może wskazać mi, czego brakuje w tym przykładzie, aby interfejs API poprawnie połączyć się z AWS?

Odpowiedz

1

Plik json to $ "appsettings. {Env.EnvironmentName} .json", więc powinieneś nazwać go appsettings.Development.json i mieć ustawioną zmienną środowiskową.

Czy zdefiniowałeś profil "profilu lokalnego testu" w pliku danych uwierzytelniania AWS.

powinny być w katalogu C:. \ Users \ {username} \ \ AWS poświadczenia

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

Jeśli nie chcą go w domyślnej lokalizacji, można ustawić plik konfiguracyjny 'ProfilesLocation json'.

+1

Dzięki. Nie, nie zdefiniowałem tego profilu, ponieważ nie wiedziałem, że muszę. W dokumentacji nie jest to wcale jasne. Brakuje więc w dokumentach tego pliku ini-like z kluczem dostępu i sekretem w określonym miejscu, aby mógł wyglądać. – Natan

+0

najgorszy rodzaj kodowania - przechowuj dane na 'C: \ Users' lol – Toolkit

0

Ta sama dokumentacja zawiera również sekcję dotyczącą konfigurowania poświadczeń. Sprawdź to tutaj http://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html

Nie podaje przykładu konfigurowania poświadczeń przy użyciu pliku appSettings.json, ponieważ nie sądzi, że jest to właściwy (bezpieczny) sposób.

Oto z części wstępnej sekcji na temat konfigurowania poświadczeń:

Nie wkładać dosłownych klawiszy dostępu w aplikacji, w tym app.config projektu lub pliku Web.config. Jeśli to zrobisz, stworzysz ryzyko związane z przypadkowym ujawnieniem twoich poświadczeń, jeśli na przykład prześlesz projekt do publicznego repozytorium .

+0

Ta dokumentacja nie ma jednego przykładu, jak ustawić to w appsettings.json. – Natan

+2

@Natan to dlatego, że nie jest to właściwy sposób. – Hasan

+1

To właściwie nie odpowiada na pytanie. To w rzeczywistości część problemu. Jestem nowy w tym SDK, podany przykład nie działa i nie mam pojęcia, co robię źle. Czy jest szansa, że ​​będziesz bardziej pomocny? Co powinienem robić? Czy możesz podać przykład, jak sprawić, by ich przykładowy kod działał? W tym momencie muszę tylko zrozumieć, jak uruchomić swój przykładowy kod. – Natan

3

Być może jest już za późno, ale jeśli korzystasz z funkcji dokowania lub masz inne środowisko/konfigurację, w której nie jest możliwe/łatwe korzystanie z profili AWS, nadal możesz korzystać ze zmiennych środowiskowych. Np:

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

Następnie ustaw AWS_ACCESSS_KEY_ID & AWS_SECRET_ACCESS_KEY & AWS_REGION w danym środowisku.

Wygląda na to, że Amazonowi trudniej było znaleźć to w dokumentach, niż powinno być.

Uruchamianie w AWS dla reali jest w porządku, ponieważ powinieneś używać roli, ale jeśli używasz okna dokowanego dla dev, to konfigurowanie profilu w kontenerze jest PITA.

+0

Jest to bardzo przydatna odpowiedź, jeśli nie ma Cię w systemie Windows, instalujemy klaster kernernetes spoza systemu Windows i jest to podejście, które wydaje się być najlepiej tam pracuj. – dougajmcdonald

+0

Naprawdę chcę jednej rzeczy, która przeszuka wszystkie możliwe miejsca poświadczeń. Standardowy sposób to robi, ale nie szuka w środowisku. Smutny! – Jonesie

+0

Tak, byłoby wspaniale! Również klient .net prawie zakłada, że ​​używasz go w systemie Windows i może używać profili, które są dość nijakie, ponieważ jest to biblioteka zgodna z rdzeniem PCL/.Net – dougajmcdonald

Powiązane problemy