• Akademia
  • Blog
  • O Serverless
  • O stronie

Jak skonfigurowa膰 AWS CLI?


Jak skonfigurowa膰 AWS CLI?
Serverless Framework w celu po艂膮czenia si臋 z chmur膮 AWS i stworzenia zasob贸w potrzebuje konta o odpowiednich uprawnieniach. Zgodnie z dobrymi praktykami bezpiecze艅stwa warto stworzy膰 osobne konto u偶ytkownika nawet je艣li tylko my sami zamierzamy korzysta膰 z ca艂ego konta w AWS. U偶ywanie tzw. root account jest uwa偶ane za ma艂o bezpieczne. O tym jak stworzy膰 konto AWS i u偶ytkownika mo偶esz przeczyta膰 tutaj

Serverless Framework (tak samo jak ka偶de inne narz臋dzie) b臋dzie potrzebowa艂o Access Key oraz Secret Access Key (czyli takie login i has艂o). Framework jest na tyle wszechstronny, 偶e mo偶emy owe parametry poda膰 mu na wiele sposob贸w. Praktyk膮 kt贸r膮 osobi艣cie stosuje oraz zalecam ze wzgl臋d贸w wygody i bezpiecze艅stwa jest u偶ywanie ju偶 raz zdefiniowanych danych uwierzytelniania na potrzeby AWS CLI.

Ten artyku艂 jest cz臋艣ci膮 wi臋kszego cyklu: Kurs Serverless

Na ca艂y cykl sk艂adaj膮 si臋 nast臋puj膮ce artyku艂y. Je艣li jeste艣 tutaj pierwszy raz, to dobrze b臋dzie zacz膮膰 od pocz膮tku 馃槃
  1. Jak zainstalowa膰 Serverless Framework?
  2. Jak skonfigurowa膰 AWS CLI?
  3. Pierwsza funkcja Lambda
  4. Jak stworzy膰 us艂ug臋 sieciow膮 (webserwis) za pomoc膮 AWS Lambda?
  5. "艢led藕 Paczk臋" - wideokurs serverless

AWS CLI (Command Line Interface)

Samo AWS CLI nie jest nam potrzebne do pracy z Serverless Framework, natomiast pewnie pr臋dzej czy p贸藕niej mo偶e nam si臋 przyda膰 (np. do uploadu plik贸w do S3). Dlatego radz臋 je zainstalowa膰 ju偶 teraz.

Instalacja

Dla ka偶dego z system贸w operacyjnych przebiega podobnie:

  • Windows: choco install awscli (zak艂adaj膮c, 偶e masz ju偶 zainstalowane Chocolately, je艣li nie to kliknij tutaj)
  • Ubuntu 18.04: sudo snap install aws-cli --classic
  • MacOS: brew install awscli

Konfiguracja

AWS CLI korzysta z dw贸ch plik贸w konfiguracyjnych znajduj膮cych si臋 w katalogu u偶ytkownika w podkatalogu .aws. S膮 to odpowiednio:

  • .aws/credentials przechowuj膮cy dane logowania, czyli Access Key oraz Secret Access Key
    oraz odpowiadaj膮cy mu
  • .aws/config zawierajacy informacje o domy艣lnym regionie i formacie zwracanych informacji prze AWS CLI.

Przyk艂adowa konfiguracja

.aws/credentials

1
2
3
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

.aws/config

1
2
3
[default]
region=eu-central-1
output=json

W obydwu plikach w nawiasach kwadratowych mamy podana nazw臋 profilu identyfikuj膮c膮 konfiguracj臋 dla danego u偶ytkownika. Oczywi艣cie profil [default] jest domy艣lny i nie musimy go jawnie podawa膰 przy wywo艂aniu komend aws. Przyk艂adowo obie poni偶sze komendy s膮 r贸wnowa偶ne:

1
2
aws s3 ls
aws s3 ls --profile default

Wiele profili

W ramach potrzeb pr臋dzej czy p贸藕niej b臋dziemy mieli dost臋p do kilku kont u偶ytkownik贸w, cz臋sto przypisanych do r贸偶nych kont AWS. Mo偶e si臋 tak zdarzy膰 gdy偶 nasza organizacja b臋dzie mia艂a kilka kont AWS na ka偶dy etap rozwoju oprogramowania DEV, TEST, PROD . Innym przyk艂adem b臋d膮 konta daj膮ce nam dost臋p do chmur r贸偶nych klient贸w. W obu przypadkach mo偶emy zdefiniowa膰 profile w ww. plikach. Ja osobi艣cie posiadam dwa konta AWS. Pierwsze traktuje jako moje g艂贸wne, a drugie jako testowe. Dlatego moje pliki konfiguracyjne wygl膮daj膮 w nast臋puj膮cy spos贸b:

.aws/credentials

1
2
3
4
5
6
7
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[testAccount]
aws_access_key_id=AKIAIOS13NN7EXAMPLE2
aws_secret_access_key=wJalrlitnFEMI/K7MDENG/bPxRfiCEXAMPLEKEY2

.aws/config

1
2
3
4
5
6
7
[default]
region=eu-central-1
output=json

[testAccount]
region=eu-central-1
output=json

Bior膮c pod uwag臋 powy偶sz膮 konfiguracj臋, poni偶sze komendy wykonaj膮 si臋 na dw贸ch r贸偶nych kontach AWS:

1
2
aws s3 ls
aws s3 ls --profile testAccount

Dzi臋kuj臋 i zapraszam do nast臋pnej lekcji.
Mi艂ego dnia!