Шпаргалка AWS CLI: короткий довідник для розробників
Усі статті, обговорення, новини про DevOps — в одному місці. Підписуйтеся на DOU | DevOps!
Оскільки cloud computing стає все більш популярними, а AWS є одним із провідних постачальників хмарних технологій, розробникам важливо розуміти, як використовувати інтерфейс командного рядка AWS (CLI).
Інтерфейс командного рядка (CLI) — це потужний інструмент, який дозволяє розробникам керувати ресурсами та службами AWS з командного рядка, і він може значно покращити ваш робочий процес. Однак, маючи таку кількість доступних команд і опцій, початок роботи може бути надзвичайно складним для початківців.
Ось тут і вступає в дію шпаргалка AWS CLI.
Встановлення
По-перше, вам потрібно буде встановити 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
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
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 тут.
5 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів