aws-cli Samouczek
Rozpoczęcie pracy z aws-cli
Szukaj…
Uwagi
Opis
Interfejs wiersza polecenia AWS (CLI) to ujednolicone narzędzie do zarządzania usługami AWS. Za pomocą tylko jednego narzędzia do pobierania i konfiguracji możesz kontrolować wiele usług AWS z wiersza poleceń i automatyzować je za pomocą skryptów.
Interfejs AWS CLI wprowadza nowy zestaw prostych poleceń plików w celu wydajnego przesyłania plików do iz Amazon S3.
Obsługiwane usługi
Aby uzyskać listę dostępnych usług, których można używać z interfejsem wiersza polecenia AWS, zobacz Dostępne usługi w podręczniku poleceń AWS CLI.
Interfejs wiersza polecenia AWS na GitHub
Możesz wyświetlić - i rozwidlić - kod źródłowy interfejsu AWS CLI na GitHub w https://github.com/aws/aws-cli projekcie.
Wersje
Instalacja i konfiguracja
Istnieje wiele różnych sposobów instalowania interfejsu AWS CLI na komputerze, w zależności od używanego systemu operacyjnego i środowiska:
W systemie Microsoft Windows - użyj instalatora MSI. W systemie Linux, OS X lub Unix - użyj narzędzia pip (menedżera pakietów dla oprogramowania Python) lub zainstaluj ręcznie za pomocą dołączonego instalatora.
Zainstaluj za pomocą pip:
Musisz zainstalować Pythona (wersja 2, 2.6.5 +, 3 lub 3.3+). Sprawdź z
python --version
pip --help
Biorąc pod uwagę, że oba są zainstalowane, użyj następującego polecenia, aby zainstalować aws cli.
sudo pip install awscli
Zainstaluj w systemie Windows Interfejs AWS CLI jest obsługiwany w systemie Microsoft Windows XP lub nowszym. Dla użytkowników systemu Windows pakiet instalacyjny MSI oferuje znany i wygodny sposób instalacji interfejsu AWS CLI bez instalowania innych wymagań wstępnych. Użytkownicy systemu Windows powinni korzystać z instalatora MSI, chyba że już używają pip do zarządzania pakietami.
Uruchom pobrany instalator MSI. Postępuj zgodnie z wyświetlanymi instrukcjami.
Aby zainstalować interfejs AWS CLI za pomocą dołączonego instalatora
Wymagania wstępne:
- Linux, OS X lub Unix
- Python 2 wersja 2.6.5+ lub Python 3 wersja 3.3+
Pobierz pakiet instalacyjny AWS CLI za pomocą wget lub curl.
Rozpakuj paczkę.
Uruchom plik wykonywalny instalacji.
W systemach Linux i OS X są trzy polecenia odpowiadające każdemu krokowi:
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
Zainstaluj za pomocą HomeBrew na OS X:
Kolejna opcja dla OS X
brew install awscli
Przetestuj instalację AWS CLI
Potwierdź poprawność instalacji interfejsu CLI, przeglądając plik pomocy. Otwórz terminal, powłokę lub wiersz poleceń, wpisz aws help i naciśnij Enter:
$ aws help
Konfigurowanie interfejsu AWS CLI
Po zakończeniu instalacji musisz ją skonfigurować. Będziesz potrzebował swojego klucza dostępu i tajnego klucza, który otrzymasz, gdy tworzysz konto w aws. Możesz także określić domyślną nazwę regionu i domyślny typ wyniku (tekst | tabela | json).
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: ENTER
Aktualizacja narzędzia CLI
Amazon okresowo wydaje nowe wersje Narzędzia AWS. Jeśli narzędzie zostało zainstalowane za pomocą narzędzia Python Pip, następujące polecenie sprawdzi, czy w zdalnym repozytorium nie ma aktualizacji, i zastosuje je w systemie lokalnym.
$ pip install awscli --upgrade
Tworzenie nowego profilu
Aby skonfigurować nowy profil danych logowania o nazwie myprofile
:
$ aws configure --profile myprofile AWS Access Key ID [None]: ACCESSKEY AWS Secret Access Key [None]: SECRETKEY Default region name [None]: REGIONNAME Default output format [None]: text | table | json
Dla identyfikatora i hasła klucza dostępu AWS utwórz użytkownika IAM w konsoli AWS i wygeneruj dla niego klucze.
Region będzie domyślnym regionem dla poleceń w formacie eu-west-1
lub us-east-1
.
Domyślnym formatem wyjściowym może być text
, table
lub json
.
Możesz teraz używać nazwy profilu w innych poleceniach, używając opcji --profile
, np .:
$ aws ec2 describe-instances --profile myprofile
Biblioteki AWS dla innych języków (np. aws-sdk
dla Ruby lub boto3
dla Python) mają opcje korzystania z profilu utworzonego za pomocą tej metody. Np. boto3
nowej sesji w boto3
można zrobić w następujący sposób: boto3.Session(profile_name:'myprofile')
i użyje poświadczeń utworzonych dla profilu.
Szczegóły konfiguracji aws-cli można znaleźć w ~/.aws/config
i ~/.aws/credentials
(na Linux i Mac-os). Dane te można edytować ręcznie stamtąd.
Korzystanie z poleceń aws cli
Składnia użycia aws cli jest następująca:
aws [options] <command> <subcommand> [parameters]
Kilka przykładów użycia polecenia „ec2” i podkomendy „opisz-instancje”:
aws ec2 describe-instances
aws ec2 describe-instances --instance-ids <your-id>
Przykład z fałszywym identyfikatorem:
aws ec2 describe-instances --instance-ids i-c71r246a
Wyświetl wiadra S3
aws s3 ls
Użyj nazwanego profilu
aws --profile myprofile s3 ls
Wyświetl wszystkie obiekty w segmencie, w tym obiekty w folderach, z rozmiarem w formacie czytelnym dla człowieka, a na końcu podsumowanie właściwości segmentów -
aws s3 ls --recursive --summarize --human-readable s3://<bucket_name>/
Narzędzie do tworzenia AWS dla Ubuntu z Bash
Do automatycznego uzupełniania poleceń można użyć następującego narzędzia:
$ which aws_completer
/usr/bin/aws_completer
$ complete -C '/usr/bin/aws_completer' aws
W przypadku przyszłych sesji powłoki rozważ dodanie tego do ~ / .bashrc
$ echo "complete -C '/usr/bin/aws_completer' aws" >> ~/.bashrc
Aby sprawdzić, wpisz:
$ aws ec
Naciśnij klawisz [TAB], należy dodać 2 automatycznie:
$ aws ec2
Ściągawka AWS CLI - Lista wszystkich poleceń CLI
Ustawiać
Zainstaluj AWS CLI
AWS CLI to wspólne narzędzie CLI do zarządzania zasobami AWS. Za pomocą tego jednego narzędzia możemy zarządzać wszystkimi zasobami aws
sudo apt-get install -y python-dev python-pip sudo pip install awscli aws --version aws configure
Bash one-liners
cat <file> # output a file tee # split output into a file cut -f 2 # print the 2nd column, per line sed -n '5{p;q}' # print the 5th line in a file sed 1d # print all lines, except the first tail -n +2 # print all lines, starting on the 2nd head -n 5 # print the first 5 lines tail -n 5 # print the last 5 lines expand # convert tabs to 4 spaces unexpand -a # convert 4 spaces to tabs wc # word count tr ' ' \\t # translate / convert characters to other characters sort # sort data uniq # show only unique entries paste # combine rows of text, by line join # combine rows of text, by initial column value
Cloudtrail - rejestrowanie i audyt
http://docs.aws.amazon.com/cli/latest/reference/cloudtrail/ 5 Łącznie tras, z obsługą uprawnień na poziomie zasobów
# list all trails aws cloudtrail describe-trails # list all S3 buckets aws s3 ls # create a new trail aws cloudtrail create-subscription \ --name awslog \ --s3-new-bucket awslog2016 # list the names of all trails aws cloudtrail describe-trails --output text | cut -f 8 # get the status of a trail aws cloudtrail get-trail-status \ --name awslog # delete a trail aws cloudtrail delete-trail \ --name awslog # delete the S3 bucket of a trail aws s3 rb s3://awslog2016 --force # add tags to a trail, up to 10 tags aws cloudtrail add-tags \ --resource-id awslog \ --tags-list "Key=log-type,Value=all" # list the tags of a trail aws cloudtrail list-tags \ --resource-id-list # remove a tag from a trail aws cloudtrail remove-tags \ --resource-id awslog \ --tags-list "Key=log-type,Value=all"
JESTEM
Użytkownicy
https://blogs.aws.amazon.com/security/post/Tx15CIT22V4J8RP/How-to-rotate-access-keys-for-IAM-users http://docs.aws.amazon.com/IAM/latest/UserGuide /reference_iam-limits.html Limity = 5000 użytkowników, 100 grup, 250 ról, 2 klucze dostępu / użytkownik
http://docs.aws.amazon.com/cli/latest/reference/iam/index.html
# list all user's info aws iam list-users # list all user's usernames aws iam list-users --output text | cut -f 6 # list current user's info aws iam get-user # list current user's access keys aws iam list-access-keys # crate new user aws iam create-user \ --user-name aws-admin2 # create multiple new users, from a file allUsers=$(cat ./user-names.txt) for userName in $allUsers; do aws iam create-user \ --user-name $userName done # list all users aws iam list-users --no-paginate # get a specific user's info aws iam get-user \ --user-name aws-admin2 # delete one user aws iam delete-user \ --user-name aws-admin2 # delete all users # allUsers=$(aws iam list-users --output text | cut -f 6); allUsers=$(cat ./user-names.txt) for userName in $allUsers; do aws iam delete-user \ --user-name $userName done
Polityka haseł
http://docs.aws.amazon.com/cli/latest/reference/iam/
# list policy # http://docs.aws.amazon.com/cli/latest/reference/iam/get-account-password-policy.html aws iam get-account-password-policy # set policy # http://docs.aws.amazon.com/cli/latest/reference/iam/update-account-password-policy.html aws iam update-account-password-policy \ --minimum-password-length 12 \ --require-symbols \ --require-numbers \ --require-uppercase-characters \ --require-lowercase-characters \ --allow-users-to-change-password # delete policy # http://docs.aws.amazon.com/cli/latest/reference/iam/delete-account-password-policy.html aws iam delete-account-password-policy
Klucze dostępu
http://docs.aws.amazon.com/cli/latest/reference/iam/
# list all access keys aws iam list-access-keys # list access keys of a specific user aws iam list-access-keys \ --user-name aws-admin2 # create a new access key aws iam create-access-key \ --user-name aws-admin2 \ --output text | tee aws-admin2.txt # list last access time of an access key aws iam get-access-key-last-used \ --access-key-id AKIAINA6AJZY4EXAMPLE # deactivate an acccss key aws iam update-access-key \ --access-key-id AKIAI44QH8DHBEXAMPLE \ --status Inactive \ --user-name aws-admin2 # delete an access key aws iam delete-access-key \ --access-key-id AKIAI44QH8DHBEXAMPLE \ --user-name aws-admin2
Grupy, polityki, zarządzane polityki
http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html http://docs.aws.amazon.com/cli/latest/reference/iam/
# list all groups aws iam list-groups # create a group aws iam create-group --group-name FullAdmins # delete a group aws iam delete-group \ --group-name FullAdmins # list all policies aws iam list-policies # get a specific policy aws iam get-policy \ --policy-arn <value> # list all users, groups, and roles, for a given policy aws iam list-entities-for-policy \ --policy-arn <value> # list policies, for a given group aws iam list-attached-group-policies \ --group-name FullAdmins # add a policy to a group aws iam attach-group-policy \ --group-name FullAdmins \ --policy-arn arn:aws:iam::aws:policy/AdministratorAccess # add a user to a group aws iam add-user-to-group \ --group-name FullAdmins \ --user-name aws-admin2 # list users, for a given group aws iam get-group \ --group-name FullAdmins # list groups, for a given user aws iam list-groups-for-user \ --user-name aws-admin2 # remove a user from a group aws iam remove-user-from-group \ --group-name FullAdmins \ --user-name aws-admin2 # remove a policy from a group aws iam detach-group-policy \ --group-name FullAdmins \ --policy-arn arn:aws:iam::aws:policy/AdministratorAccess # delete a group aws iam delete-group \ --group-name FullAdmins
EC2
pary kluczy
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
# list all keypairs # http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html aws ec2 describe-key-pairs # create a keypair # http://docs.aws.amazon.com/cli/latest/reference/ec2/create-key-pair.html aws ec2 create-key-pair \ --key-name <value> # create a new private / public keypair, using RSA 2048-bit ssh-keygen -t rsa -b 2048 # import an existing keypair # http://docs.aws.amazon.com/cli/latest/reference/ec2/import-key-pair.html aws ec2 import-key-pair \ --key-name keyname_test \ --public-key-material file:///home/apollo/id_rsa.pub # delete a keypair # http://docs.aws.amazon.com/cli/latest/reference/ec2/delete-key-pair.html aws ec2 delete-key-pair \ --key-name <value>
Grupy bezpieczeństwa
http://docs.aws.amazon.com/cli/latest/reference/ec2/index.html
# list all security groups aws ec2 describe-security-groups # create a security group aws ec2 create-security-group \ --vpc-id vpc-1a2b3c4d \ --group-name web-access \ --description "web access" # list details about a securty group aws ec2 describe-security-groups \ --group-id sg-0000000 # open port 80, for everyone aws ec2 authorize-security-group-ingress \ --group-id sg-0000000 \ --protocol tcp \ --port 80 \ --cidr 0.0.0.0/24 # get my public ip my_ip=$(dig +short myip.opendns.com @resolver1.opendns.com); echo $my_ip # open port 22, just for my ip aws ec2 authorize-security-group-ingress \ --group-id sg-0000000 \ --protocol tcp \ --port 80 \ --cidr $my_ip/24 # remove a firewall rule from a group aws ec2 revoke-security-group-ingress \ --group-id sg-0000000 \ --protocol tcp \ --port 80 \ --cidr 0.0.0.0/24 # delete a security group aws ec2 delete-security-group \ --group-id sg-00000000
Instancje
http://docs.aws.amazon.com/cli/latest/reference/ec2/index.html
# list all instances (running, and not running) # http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html aws ec2 describe-instances # create a new instance # http://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html aws ec2 run-instances \ --image-id ami-f0e7d19a \ --instance-type t2.micro \ --security-group-ids sg-00000000 \ --dry-run # stop an instance # http://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html aws ec2 terminate-instances \ --instance-ids <instance_id> # list status of all instances # http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html aws ec2 describe-instance-status # list status of a specific instance aws ec2 describe-instance-status \ --instance-ids <instance_id>
Tagi
# list the tags of an instance # http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-tags.html aws ec2 describe-tags # add a tag to an instance # http://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html aws ec2 create-tags \ --resources "ami-1a2b3c4d" \ --tags Key=name,Value=debian # delete a tag on an instance # http://docs.aws.amazon.com/cli/latest/reference/ec2/delete-tags.html aws ec2 delete-tags \ --resources "ami-1a2b3c4d" \ --tags Key=Name,Value=
Cloudwatch
Zaloguj grupy
http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html http://docs.aws.amazon.com/cli/latest/reference/logs/index.html#cli-aws-logs
tworzyć grupęhttp://docs.aws.amazon.com/cli/latest/reference/logs/create-log-group.html
aws logs create-log-group \ --log-group-name "DefaultGroup"wyświetl wszystkie grupy dzienników
http://docs.aws.amazon.com/cli/latest/reference/logs/describe-log-groups.html
aws logs describe-log-groups aws logs describe-log-groups \ --log-group-name-prefix "Default"usuń grupę
http://docs.aws.amazon.com/cli/latest/reference/logs/delete-log-group.html
aws logs delete-log-group \ --log-group-name "DefaultGroup"
Loguj strumienie
# Log group names can be between 1 and 512 characters long. Allowed # characters include a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), # '/' (forward slash), and '.' (period). # create a log stream # http://docs.aws.amazon.com/cli/latest/reference/logs/create-log-stream.html aws logs create-log-stream \ --log-group-name "DefaultGroup" \ --log-stream-name "syslog" # list details on a log stream # http://docs.aws.amazon.com/cli/latest/reference/logs/describe-log-streams.html aws logs describe-log-streams \ --log-group-name "syslog" aws logs describe-log-streams \ --log-stream-name-prefix "syslog" # delete a log stream # http://docs.aws.amazon.com/cli/latest/reference/logs/delete-log-stream.html aws logs delete-log-stream \ --log-group-name "DefaultGroup" \ --log-stream-name "Default Stream"