AWSコマンドラインインターフェイス(CLI)は、AWSサービスを管理するための統一ツールです。 1つのツールをダウンロードして設定するだけで、コマンドラインから複数のAWSサービスを制御し、スクリプトを使用して自動化することができます。

AWS CLIには、Amazon S3との効率的なファイル転送のための新しい簡単なファイルコマンドセットが導入されています。


AWSコマンドラインインターフェイスで使用できるサービスの一覧については、「AWS CLIコマンドリファレンス」の「 利用可能なサービス」を参照してください。

GitHub上のAWSコマンドラインインターフェイスプロジェクトのGitHubで、AWS CLIのソースコードを表示およびフォークすることができます。


1.10.38 2016年06-14-14
1.10.35 2016年06月03日
1.10.33 2016-05-25
1.10.30 2016年5月18日

AWS CLIチートシート - すべてのCLIコマンドのリスト


AWS CLIをインストールする

AWS CLIは、AWSリソースを管理するための一般的なCLIツールです。この単一のツールを使用して、すべてのawsリソース

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


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 - ロギングと監査 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 \

# remove a tag from a trail
aws cloudtrail remove-tags \
    --resource-id awslog \
    --tags-list "Key=log-type,Value=all"


ユーザー /reference_iam-limits.html制限= 5000ユーザー、100グループ、250の役割、2アクセスキー/ユーザー

# 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

# 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


# list policy
aws iam get-account-password-policy

# set policy
aws iam update-account-password-policy \
    --minimum-password-length 12 \
    --require-symbols \
    --require-numbers \
    --require-uppercase-characters \
    --require-lowercase-characters \

# delete policy
aws iam delete-account-password-policy


# 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


# 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



# list all keypairs
aws ec2 describe-key-pairs

# create a keypair
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
aws ec2 import-key-pair \
    --key-name keyname_test \
    --public-key-material file:///home/apollo/

# delete a keypair
aws ec2 delete-key-pair \
    --key-name <value>


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

# get my public ip
my_ip=$(dig +short;
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 \

# delete a security group
aws ec2 delete-security-group \
    --group-id sg-00000000


# list all instances (running, and not running)
aws ec2 describe-instances

# create a new instance
aws ec2 run-instances \
    --image-id ami-f0e7d19a \    
    --instance-type t2.micro \
    --security-group-ids sg-00000000 \

# stop an instance
aws ec2 terminate-instances \
    --instance-ids <instance_id>

# list status of all instances
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
aws ec2 describe-tags

# add a tag to an instance
aws ec2 create-tags \
    --resources "ami-1a2b3c4d" \
    --tags Key=name,Value=debian

# delete a tag on an instance
aws ec2 delete-tags \
    --resources "ami-1a2b3c4d" \
    --tags Key=Name,Value=




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

aws logs describe-log-groups

aws logs describe-log-groups \
    --log-group-name-prefix "Default"

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
aws logs create-log-stream \
    --log-group-name "DefaultGroup" \
    --log-stream-name "syslog"

# list details on a log stream
aws logs describe-log-streams \
    --log-group-name "syslog"

aws logs describe-log-streams \
    --log-stream-name-prefix "syslog"

# delete a log stream
aws logs delete-log-stream \
    --log-group-name "DefaultGroup" \
    --log-stream-name "Default Stream"



$ which aws_completer

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

将来のシェルセッションでは、〜/ .bashrcにこれを追加することを検討してください

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


$ aws ec


$ 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


リージョンは、 eu-west-1 またはus-east-1 の形式のコマンドのデフォルト領域になります。

デフォルトの出力形式は、 texttable またはjson いずれかです。

--profile オプションを使用して、他のコマンドでプロファイル名を使用できるようになりました。

$ aws ec2 describe-instances --profile myprofile

他の言語のAWSライブラリ(Rubyの場合はaws-sdk 、Pythonの場合はboto3 など)には、このメソッドで作成したプロファイルを使用するオプションもあります。たとえば、 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ソフトウェアのパッケージマネージャ)を使用するか、付属のインストーラを使用して手動でインストールしてください。


Pythonをインストールする必要があります(バージョン2、2.6.5 +、3または3.3+)。確認する

python --version

pip --help

これらの両方がインストールされている場合は、次のコマンドを使用してaws cliをインストールします。

sudo pip install awscli

Windowsへインストール AWS CLIは、Microsoft Windows XP以降でサポートされています。 Windowsユーザーの場合、MSIインストールパッケージは、他の前提条件をインストールせずにAWS CLIをインストールするための使い慣れた便利な方法を提供します。 Windowsユーザーは、既にパッケージ管理のためにpipを使用していない限り、MSIインストーラを使用する必要があります。


付属のインストーラを使用してAWS CLIをインストールするには


  • Linux、OS X、またはUnix
  • Python 2バージョン2.6.5+またはPython 3バージョン3.3+
  1. wgetまたはcurlを使用してAWS CLIバンドルインストーラをダウンロードします。

  2. パッケージを解凍します。

  3. インストール実行ファイルを実行します。

LinuxおよびOS Xでは、各ステップに対応する3つのコマンドがあります。

$ curl "" -o ""
$ unzip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

OS XでHomeBrewを使用してインストールする:

OS Xの別のオプション

brew install awscli

AWS CLIのインストールをテストする

ヘルプファイルを表示して、CLIが正しくインストールされていることを確認します。ターミナル、シェル、またはコマンドプロンプトを開き、aws helpと入力してEnterキーを押します。

$ aws help


インストールが完了したら、それを設定する必要があります。アカウントを作成するときにアクセスキーと秘密鍵が必要になります。デフォルトのリージョンとデフォルトの出力タイプ(text | table | json)を指定することもできます。

$ aws configure
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: ENTER


Amazonは定期的に新しいバージョンのAWS Toolをリリースしています。ツールがPython Pipツールを使用してインストールされていた場合、次のコマンドはリモートリポジトリに更新をチェックし、それをローカルシステムに適用します。

$ pip install awscli --upgrade


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'コマンドと 'describe-instances'サブコマンドを使用したいくつかの例:

aws ec2 describe-instances

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


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