aws-cliErste Schritte mit aws-cli


Bemerkungen

Beschreibung

Die AWS Command Line Interface (CLI) ist ein einheitliches Tool zum Verwalten Ihrer AWS-Dienste. Mit nur einem Tool zum Herunterladen und Konfigurieren können Sie mehrere AWS-Dienste von der Befehlszeile aus steuern und über Skripts automatisieren.

Mit der AWS-CLI werden neue Dateibefehle für effiziente Dateiübertragungen von und zu Amazon S3 eingeführt.

Unterstützte Dienste

Eine Liste der verfügbaren Dienste, die Sie mit der AWS-Befehlszeilenschnittstelle verwenden können, finden Sie unter Verfügbare Dienste in der AWS CLI-Befehlsreferenz.

AWS Command Line Interface auf GitHub

Sie können den Quellcode für die AWS CLI auf GitHub im Projekt https://github.com/aws/aws-cli anzeigen und verzweigen .

Versionen

Ausführung Veröffentlichungsdatum
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-Spickzettel - Liste aller CLI-Befehle

Konfiguration

Installieren Sie AWS CLI

AWS CLI ist ein allgemeines CLI-Tool zum Verwalten der AWS-Ressourcen. Mit diesem einzigen Tool können wir alle aws-Ressourcen verwalten

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

Bash Einleiner

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 - Protokollierung und Überwachung

http://docs.aws.amazon.com/cli/latest/reference/cloudtrail/ 5 Gesamtzahl der Spuren mit Unterstützung für Berechtigungen auf Ressourcenebene

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




ICH BIN

Benutzer

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 Limits = 5000 Benutzer, 100 Gruppen, 250 Rollen, 2 Zugriffsschlüssel / Benutzer

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

Kennwortrichtlinie

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

Zugangsschlüssel

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

Gruppen, Richtlinien, verwaltete Richtlinien

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

Schlüsselpaare

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>

Sicherheitsgruppen

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

Instanzen

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>

Stichworte

# 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

Protokollgruppen

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

erstellen Sie eine Gruppe

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

aws logs create-log-group \
    --log-group-name "DefaultGroup"
Alle Protokollgruppen auflisten

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"
eine Gruppe löschen

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

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

Log-Streams

# 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 Completer für Ubuntu with Bash

Das folgende Dienstprogramm kann zur automatischen Vervollständigung von Befehlen verwendet werden:

$ which aws_completer
/usr/bin/aws_completer

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

Für zukünftige Shell-Sitzungen sollten Sie dies zu ~ / .bashrc hinzufügen

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

Geben Sie zur Überprüfung Folgendes ein:

$ aws ec
 

Drücken Sie die [TAB] -Taste. Es sollte automatisch 2 hinzugefügt werden:

$ aws ec2
 

Ein neues Profil erstellen

So myprofile ein neues Berechtigungsprofil mit dem Namen 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

Erstellen Sie für die AWS-Zugriffsschlüssel-ID und das Kennwort geheim einen IAM-Benutzer in der AWS-Konsole, und generieren Sie Schlüssel dafür.

Region ist die Standardregion für Befehle im Format eu-west-1 oder us-east-1 .

Das Standardausgabeformat kann entweder text , table oder json .

Sie können den Profilnamen jetzt in anderen Befehlen verwenden, indem Sie die Option --profile . Beispiel:

$ aws ec2 describe-instances --profile myprofile

AWS-Bibliotheken für andere Sprachen (z. B. aws-sdk für Ruby oder boto3 für Python) haben Optionen, um das mit dieser Methode erstellte Profil zu verwenden. Das Erstellen einer neuen Sitzung in boto3 kann beispielsweise wie boto3.Session(profile_name:'myprofile') und verwendet die Anmeldeinformationen, die Sie für das Profil erstellt haben.

Die Details Ihrer aws-cli-Konfiguration finden Sie in ~/.aws/config und ~/.aws/credentials (unter Linux und Mac ~/.aws/credentials ). Diese Details können von dort manuell bearbeitet werden.

Installation und Einrichtung

Es gibt verschiedene Möglichkeiten, die AWS-CLI auf Ihrem Computer zu installieren, abhängig vom verwendeten Betriebssystem und der verwendeten Umgebung:

Bei Microsoft Windows - verwenden Sie das MSI-Installationsprogramm. Unter Linux, OS X oder Unix - verwenden Sie pip (einen Paketmanager für Python-Software) oder installieren Sie es manuell mit dem mitgelieferten Installationsprogramm.

Mit pip installieren:

Sie benötigen Python (Version 2, 2.6.5 +, 3 oder 3.3+). Überprüfen Sie mit

python --version

pip --help
 

Da beide installiert sind, installieren Sie aws cli mit dem folgenden Befehl.

sudo pip install awscli
 

Installation unter Windows Die AWS-CLI wird unter Microsoft Windows XP oder höher unterstützt. Für Windows-Benutzer bietet das MSI-Installationspaket eine vertraute und komfortable Möglichkeit, die AWS-CLI zu installieren, ohne andere Voraussetzungen installieren zu müssen. Windows-Benutzer sollten das MSI-Installationsprogramm verwenden, es sei denn, sie verwenden bereits pip zur Paketverwaltung.

Führen Sie das heruntergeladene MSI-Installationsprogramm aus. Befolgen Sie die angezeigten Anweisungen.

So installieren Sie die AWS-CLI mithilfe des mitgelieferten Installationsprogramms

Voraussetzungen:

  • Linux, OS X oder Unix
  • Python 2 Version 2.6.5 oder höher oder Python 3 Version 3.3 und höher
  1. Laden Sie das AWS CLI-Installationsprogramm mithilfe von wget oder curl herunter.

  2. Packen Sie das Paket aus.

  3. Führen Sie die Installationsdatei aus.

Unter Linux und OS X sind hier die drei Befehle, die jedem Schritt entsprechen:

$ 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
 

Mit HomeBrew unter OS X installieren:

Eine weitere Option für OS X

brew install awscli
 

Testen Sie die AWS CLI-Installation

Stellen Sie sicher, dass die CLI ordnungsgemäß installiert ist, indem Sie die Hilfedatei anzeigen. Öffnen Sie ein Terminal, eine Shell oder eine Eingabeaufforderung, geben Sie aws help ein und drücken Sie die Eingabetaste:

$ aws help
 

Konfigurieren der AWS-CLI

Nachdem Sie die Installation abgeschlossen haben, müssen Sie sie konfigurieren. Sie benötigen Ihren Zugangsschlüssel und den geheimen Schlüssel, die Sie erhalten, wenn Sie Ihr Konto für aws erstellen. Sie können auch eine Standardregion angeben Namen (| Tabelle | json Text) und einen Standard - Ausgabetyp.

$ 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
 

Aktualisieren des CLI-Tools

Amazon veröffentlicht regelmäßig neue Versionen des AWS-Tools. Wenn das Tool mit dem Python Pip-Tool installiert wurde, überprüft der folgende Befehl das Remote-Repository auf Updates und wendet es auf Ihr lokales System an.

$ pip install awscli --upgrade
 

Listen Sie S3-Buckets auf

aws s3 ls
 

Verwenden Sie ein benanntes Profil

aws --profile myprofile s3 ls
 

Alle Objekte in einem Bucket auflisten, einschließlich der Objekte in Ordnern, deren Größe in einem für Menschen lesbaren Format und am Ende eine Zusammenfassung der Eigenschaften des Buckets ist.

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

Aws cli-Befehle verwenden

Die Syntax für die Verwendung des aws cli lautet wie folgt:

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

Einige Beispiele mit dem Befehl 'ec2' und dem Unterbefehl 'description-instance'

aws ec2 describe-instances

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

Beispiel mit einer gefälschten ID:

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