aws-cliНачало работы с aws-cli


замечания

Описание

Интерфейс командной строки AWS (CLI) является унифицированным инструментом для управления вашими службами AWS. С помощью всего одного инструмента для загрузки и настройки вы можете управлять несколькими службами AWS из командной строки и автоматизировать их с помощью сценариев.

AWS CLI представляет новый набор простых файловых команд для эффективной передачи файлов в Amazon S3 и обратно.

Поддерживаемые услуги

Список доступных служб, которые вы можете использовать с интерфейсом командной строки AWS, см. В разделе Доступные службы в Справочнике команд AWS CLI.

Интерфейс командной строки AWS на GitHub

Вы можете просмотреть и форк - исходный код для AWS CLI на GitHub в проекте https://github.com/aws/aws-cli .

Версии

Версия Дата выхода
1.10.38 2016-06-14
1.10.35 2016-06-03
1.10.33 2016-05-25
1.10.30 2016-05-18

AWS CLI Cheat sheet - список всех команд CLI

Настроить

Установка AWS CLI

AWS CLI - это общий инструмент CLI для управления ресурсами AWS. С помощью этого единственного инструмента мы можем управлять всеми ресурсами aws

sudo apt-get install -y python-dev python-pip
sudo pip install awscli
aws --version
aws configure

Bash однострочные

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 - регистрация и аудит

http://docs.aws.amazon.com/cli/latest/reference/cloudtrail/ 5 Общее количество трейлов с поддержкой разрешений на уровне ресурсов

# 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"




Я

пользователей

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 Ограничения = 5000 пользователей, 100 групп, 250 ролей, 2 ключа доступа / пользователя

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

Политика паролей

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

Ключи доступа

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

Группы, политика, управляемая политика

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

пары ключей

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>

Группы безопасности

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

Инстансы

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>

Теги

# 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

Группы журналов

http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html http://docs.aws.amazon.com/cli/latest/reference/logs/index.html#cli-awslog

создать группу

http://docs.aws.amazon.com/cli/latest/reference/logs/create-log-group.html

aws logs create-log-group \
    --log-group-name "DefaultGroup"
список всех групп журналов

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"
удалить группу

http://docs.aws.amazon.com/cli/latest/reference/logs/delete-log-group.html

aws logs delete-log-group \
    --log-group-name "DefaultGroup"

Потоки журналов

# 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"

AWS дополняет Ubuntu с Bash

Для автоматического завершения команд можно использовать следующую утилиту:

$ which aws_completer
/usr/bin/aws_completer

$ complete -C '/usr/bin/aws_completer' aws
 

Для будущих сеансов оболочки подумайте о том, чтобы добавить это в ваш ~ / .bashrc

$ echo "complete -C '/usr/bin/aws_completer' aws" >> ~/.bashrc
 

Чтобы проверить, введите:

$ aws ec
 

Нажмите клавишу [TAB], она должна автоматически добавить 2:

$ aws ec2
 

Создание нового профиля

Чтобы настроить новый профиль учетных данных с именем 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

Для идентификатора и секретного ключа доступа AWS создайте пользователя IAM в консоли AWS и создайте для него ключи.

Регион будет областью по умолчанию для команд в формате eu-west-1 или us-east-1 .

Формат вывода по умолчанию может быть либо text , либо table либо json .

Теперь вы можете использовать имя профиля в других командах, используя опцию --profile , например:

$ aws ec2 describe-instances --profile myprofile

Библиотеки AWS для других языков (например, aws-sdk для Ruby или boto3 для Python) имеют опции для использования профиля, boto3 с помощью этого метода. Например, создание нового сеанса в boto3 может быть выполнено следующим образом: boto3.Session(profile_name:'myprofile') и он будет использовать учетные данные, созданные для профиля.

Детали вашей конфигурации aws-cli можно найти в ~/.aws/config и ~/.aws/credentials (на linux и mac-os). Эти данные можно редактировать вручную.

Установка и настройка

Существует несколько способов установки AWS CLI на вашем компьютере, в зависимости от используемой операционной системы и среды:

В Microsoft Windows - используйте установщик MSI. В Linux, OS X или Unix - используйте pip (диспетчер пакетов для программного обеспечения Python) или установите вручную с помощью установленного установщика.

Установите с помощью pip:

Вам понадобится установить python (версии 2, 2.6.5 +, 3 или 3.3+). Проверить с

python --version

pip --help
 

Учитывая, что оба из них установлены, используйте следующую команду для установки aws cli.

sudo pip install awscli
 

Установка в Windows . CLI AWS поддерживается в Microsoft Windows XP или более поздней версии. Для пользователей Windows установочный пакет MSI предлагает удобный и удобный способ установки AWS CLI без установки каких-либо других предварительных условий. Пользователи Windows должны использовать установщик MSI, если они уже не используют pip для управления пакетами.

Запустите загруженный установщик MSI. Следуйте инструкциям, которые появляются.

Чтобы установить CLI AWS с помощью прилагаемого установщика

Предпосылки:

  • Linux, OS X или Unix
  • Версия Python 2 версии 2.6.5+ или Python 3 версии 3.3+
  1. Загрузите набор инструментов AWS CLI, используя wget или curl.

  2. Распакуйте пакет.

  3. Запустите исполняемый файл install.

В Linux и OS X вот три команды, которые соответствуют каждому шагу:

$ 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
 

Установите с помощью HomeBrew на OS X:

Еще один вариант для OS X

brew install awscli
 

Проверьте установку AWS CLI

Убедитесь, что CLI установлен правильно, просмотрев файл справки. Откройте терминал, оболочку или командную строку, введите aws help и нажмите Enter:

$ aws help
 

Настройка AWS CLI

После того, как вы закончили установку, вам необходимо ее настроить. Вам понадобится ключ доступа и секретный ключ, который вы получите при создании своей учетной записи на aws. Вы также можете указать имя региона по умолчанию и тип вывода по умолчанию (text | table | 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
 

Обновление инструмента CLI

Amazon периодически выпускает новые версии AWS Tool. Если инструмент был установлен с использованием инструмента Python Pip, следующая команда проверяет удаленный репозиторий на наличие обновлений и применяет его к вашей локальной системе.

$ pip install awscli --upgrade
 

Список ковшей S3

aws s3 ls
 

Использовать именованный профиль

aws --profile myprofile s3 ls
 

Перечислите все объекты в ведре, включая объекты в папках, с размером в человеко-читаемом формате и сводкой свойств ведер в конце -

aws s3 ls --recursive --summarize --human-readable s3://<bucket_name>/
 

Использование команд aws cli

Синтаксис использования aws cli следующий:

aws [options] <command> <subcommand> [parameters]
 

В некоторых примерах используется команда «ec2» и подкоманда «описать-экземпляры»:

aws ec2 describe-instances

aws ec2 describe-instances --instance-ids <your-id>
 

Пример с поддельным идентификатором:

aws ec2 describe-instances --instance-ids i-c71r246a