Шпаргалка AWS CLI: короткий довідник для розробників

Усі статті, обговорення, новини про DevOps — в одному місці. Підписуйтеся на DOU | DevOps!

Оскільки cloud computing стає все більш популярними, а AWS є одним із провідних постачальників хмарних технологій, розробникам важливо розуміти, як використовувати інтерфейс командного рядка AWS (CLI).

Інтерфейс командного рядка (CLI) — це потужний інструмент, який дозволяє розробникам керувати ресурсами та службами AWS з командного рядка, і він може значно покращити ваш робочий процес. Однак, маючи таку кількість доступних команд і опцій, початок роботи може бути надзвичайно складним для початківців.

Ось тут і вступає в дію шпаргалка AWS CLI.

LinkedIn та Twitter автора

Встановлення

По-перше, вам потрібно буде встановити AWS CLI на вашому комп’ютері. Ви можете знайти інструкції щодо встановлення останньої версії AWS CLI:

Linux:

x86

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Linux Arm

curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

MacOS:

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

Windows:

Завантажте та запустіть інсталятор AWS CLI MSI для Windows (64-bit)

awscli.amazonaws.com/AWSCLIV2.msi

Крім того, ви можете запустити команду msiexec, щоб запустити інсталятор MSI.

msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

Тепер, коли ми встановили AWS CLI, давайте розглянемо важливу команду для його налаштування за допомогою нашого облікового запису AWS.

Налаштування AWS CLI

Щоб пройти автентифікацію в обліковому записі AWS, вам потрібно буде створити ключ доступу та секретний ключ доступу для користувача IAM.

Ви можете звернутися до документації від AWS про те, як створити ключі доступу для користувачів IAM — Створення ключа доступу AWS (amazon.com).

AWS CLI зберігає інформацію в профілі з іменем default у файлі облікових даних. За замовчуванням інформація в цьому профілі використовується, коли ви запускаєте команду AWS CLI, яка явно не вказує профіль для використання.

У наступному прикладі показано, як можна налаштувати AWS CLI. Замініть їх своїми значеннями:

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: ca-central-1
Default output format [None]: json

Зараз ми налаштували AWS CLI для роботи з обліковим записом AWS. Давайте розглянемо команди для взаємодії зі службами AWS EC2, IAM і S3.

AWS EC2

Keypairs

Список keypairs:

aws ec2 describe-key-pairs

Створити keypair:

aws ec2 create-key-pair --key-name --output text

Створити новий локальний приватний/публічний keypair, використовуючи RSA 4096-bit:

ssh-keygen -t rsa -b 4096<.]/code> Імпортувати існуючий keypair: <code>aws ec2 import-key-pair --key-name keyname_test --public-key-material file:///home/rkumar/id_rsa.pub

Видалити keypair:

aws ec2 delete-key-pair --key-name

Images

Cписок усіх приватних тегів AMI, ImageId і Name:

aws ec2 describe-images --filter "Name=is-public,Values=false" --query 'Images[].[ImageId, Name]' --output text

Видалити AMI, by ImageId:

aws ec2 deregister-image --image-id ami-00000000

Instances

Список всіх екземплярів (запущених і незапущених):

aws ec2 describe-instances

Список запущених екземплярів:

aws ec2 describe-instances --filters Name=instance-state-name,Values=running

Створити новий екземпляр:

aws ec2 run-instances --image-id ami-a0b1234 --instance-type t2.micro --security-group-ids sg-00000000 --dry-run

Зупинити екземпляр:

aws ec2 terminate-instances --instance-ids <instance_id>

Список статусів усіх екземплярів:

aws ec2 describe-instance-status

Список статусів конкретного екземпляру:

aws ec2 describe-instance-status --instance-ids <instance_id>

Список усіх запущених екземплярів, Name tag і Public IP Address:

aws ec2 describe-instances --filters Name=instance-state-name,Values=running --query 'Reservations[].Instances[].[PublicIpAddress, Tags[?Key==Name].Value | [0] ]' --output text

Security Groups

Список усіх security groups:

aws ec2 describe-security-groups

Створити security group:

aws ec2 create-security-group --vpc-id vpc-1a2b3c4d --group-name web-access --description "web access"

Список деталей про securty group:

aws ec2 describe-security-groups --group-id sg-0000000

Відкрити port 80, для всіх:

aws ec2 authorize-security-group-ingress --group-id sg-0000000 --protocol tcp --port 80 --cidr 0.0.0.0/24

Отримати мій публічний ip:

my_ipaddress=$(dig +short myip.opendns.com @resolver1.opendns.com); echo $my_ipaddress

Відкрити port 22, тільки для мого ip:

aws ec2 authorize-security-group-ingress --group-id sg-0000000 --protocol tcp --port 80 --cidr $my_ipaddress/24

Видалити firewall rule з групи:

aws ec2 revoke-security-group-ingress --group-id sg-0000000 --protocol tcp --port 80 --cidr 0.0.0.0/24

Видалити security group:

aws ec2 delete-security-group --group-id sg-00000000

AWS IAM

Користувачі

Список інформації користувачів:

aws iam list-users

Список usernames користувачів:

aws iam list-users --output text | cut -f 6

Список поточної інформації користувачів:

aws iam get-user

Список поточних access keys користувачів:

aws iam list-access-keys

Створити нового користувача:

aws iam create-user --user-name UserName

Створити кілька нових користувачів, з файлу:

allUsers=$(cat ./user-names.txt) for userName in $allUsers; do aws iam create-user --user-name $userName done

Список всіх користувачів:

aws iam list-users --no-paginate

Отримати конкретну інформацію користувача:

aws iam get-user --user-name UserName

Видалити одного користувача:

aws iam delete-user --user-name UserName

Видалити всіх користувачів:

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

Access Keys

Список всіх access keys:

aws iam list-access-keys

Список access keys конкретного користувача:

aws iam list-access-keys --user-name UserName

Створити новий access key:

aws iam create-access-key --user-name UserName --output text | tee UserName.txt

Список часу останнього доступу access key:

aws iam get-access-key-last-used --access-key-id AKSZZRR7RKZY4EXAMPLE

Деактивувати access key:

aws iam update-access-key --access-key-id AKIZNAA7RKZY4EXAMPLE --status Inactive --user-name UserName

Видалити access key:

aws iam delete-access-key --access-key-id AKIZNAA7RKZY4EXAMPLE --user-name UserName

Group and Policies

Список усіх груп:

aws iam list-groups

Створити групу:

aws iam create-group --group-name GroupName

Видалити групу:

aws iam delete-group --group-name GroupName

Список усіх policies:

aws iam list-policies

Отримати конкретне policy:

aws iam get-policy --policy-arn

Список усіх користувачів груп, ролей для конкретної policy:

aws iam list-entities-for-policy --policy-arn

Список policies для певної групи:

aws iam list-attached-group-policies --group-name GroupName

Додати policy до групи:

aws iam attach-group-policy --group-name GroupName --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

Додати користувача до групи:

aws iam add-user-to-group --group-name GroupName --user-name UserName

Список користувачів певної групи:

aws iam get-group --group-name GroupName

Список груп для певного користувача:

aws iam list-groups-for-user --user-name UserName

Видалити користувача з групи:

aws iam remove-user-from-group --group-name GroupName --user-name UserName

Видалити policy з групи:

aws iam detach-group-policy --group-name GroupName --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

Видалити групу:

aws iam delete-group --group-name GroupName

AWS S3

Список buckets:

aws s3 ls Список bucket content: <code>aws s3 ls s3://<bucketName> Створити bucket: <code>aws s3 mb s3://<bucketName>

Видалити порожній bucket:

aws s3 rb s3://<bucketName>

Скопіювати в bucket:

aws s3 cp <object> s3://<bucketName>

Скопіювати з bucket:

aws s3 cp s3://<bucketName>/<object> <destination>

Перемістити об’єкт:

aws s3 mv s3://<bucketName>/<object> <destination>

Синхронізовані об’єкти:

aws s3 sync <local> s3://<bucketName>

Видалені об’єкти:

aws s3 rm s3://<bucketName>/<object>

Ви можете завантажити PDF-версію шпаргалок AWS CLI тут.

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному5
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Ви можете звернутися до документації від AWS про те, як створити ключі доступу для користувачів IAM — Створення ключа доступу AWS (amazon.com).

А посилання не на документацію, а на застаріле обговорення. Якщо відкрити офіційну документацію, то бачимо, що використовувати IAM для створення кредів людині (workforce identity) не рекомендовано. Для цього є AWS IAM Identity Center. docs.aws.amazon.com/...​l#bp-users-federation-idp

Можна трішки редагування людиною після машинного перекладу?

Оскільки cloud computing стає все більш популярними, а AWS є одним із провідних постачальників хмарних технологій

В межах одного речення і cloud computing, і хмарні технології.

Видалити AMI, by ImageId

Видалити і by

Список усіх запущених екземплярів, Name tag і Public IP Address:
Отримати мій публічний ip:

Public IP Address і публічний ip

Отримати конкретне policy:
Список усіх користувачів груп, ролей для конкретної policy:

То policy конкретне чи конкретна?

Видалені об’єкти:

Видалити, а не видалені.
І це лише мала частина. Читати боляче.

aws ec2 terminate-instances —instance-ids — ця команда не зупиняє, а знищує інстанс. Щоб зупинити, треба використовувати stop-instances.

Може так і задумано? Сюрприз для джунів.

Підписатись на коментарі