64
74

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

aws-cli コマンド一覧(随時追記)

Last updated at Posted at 2017-08-04

概要

ついつい忘れがちなので自分で使ったことあるコマンドを随時追記していきます。

※全てのコマンドをまとめているわけではないので、当記事に書いていないコマンドについては公式ドキュメントをご覧ください。
公式ドキュメント

また、aws-cliのレスポンスは基本的にJsonのため(設定で変更可能らしいが)、 jq というJsonフォーマット用ツールを合わせて使うと幸せになれます。

設定ファイル

cliを利用する上では以下のファイルが必要。
aws-cliをインストール後に特定のコマンドを打つことで生成することが出来る。

cofig

cliを使う上での設定を記載したファイル。

~/.aws/config
[default]
output = json
region = ap-northeast-1

credentials

AWSに接続するための認証情報

~/.aws/config
[default]
output = json
region = ap-northeast-1

コマンド

##configure

aws-cliを使う上でのファイルを生成する

###configure

設定ファイルを生成します。
Document

command
aws configure

###set

cliの設定を追加します。
Document

command
aws configure set preview.cloudfront true

##iam

IAM関連を操作するコマンド

###create-user

IAMユーザーを新規作成します。
Document

引数 概要
user-name IAMユーザー名
command
aws iam create-user \
--user-name sample-user

###delete-user

IAMユーザーを削除します。
※ポリシーが設定されている場合はエラーになります。
Document

引数 概要
user-name IAMユーザー名
command
aws iam delete-user \
--user-name sample-user

###get-user

IAMユーザーを取得します。
Document

引数 概要
user-name IAMユーザー名
command
aws iam get-user \
--user-name sample-user

###put-user-policy

IAMユーザーにポリシーを追加します。
Document

引数 概要
user-name IAMユーザー名
policy-name ポリシー名
policy-document ポリシールールが記載されたJsonファイルのパス
command
aws iam put-user-policy \
--user-name sample-user \
--policy-name sample-policy \
--policy-document  file://user_policy.json
user_policy.json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1501770149214",
      "Action": "cloudwatch:*",
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

※Amazonのポリシージェネレーターを使うことで作成可能です。
ポリシージェネレーター

###delete-user-policy

IAMユーザーに設定されているポリシーを削除します。
Document

引数 概要
user-name IAMユーザー名
policy-name ポリシー名
command
aws iam delete-user-policy \
--user-name sample-user \
--policy-name sample-policy 

###create-access-key

IAMユーザーのアクセスキーを新規作成します。
Document

引数 概要
user-name IAMユーザー名
command
aws iam create-access-key \
--user-name sample-user 

###list-users

IAMユーザーの一覧を取得します。
Document

command
aws iam list-users

###create-role

Roleを新規作成します。
Document

引数 概要
user-name IAMユーザー名
command
aws iam create-role \
--role-name sample-role \
--assume-role-policy-document file://role.json
role.json
{
  "Version": "2012-10-17",
  "Statement": [
     {
       "Action": "sts:AssumeRole",
       "Principal": {
         "Service": "lambda.amazonaws.com"
        },
        "Effect": "Allow",
        "Sid": ""
     }
  ]
}

###attach-role-policy

Roleにポリシーを追加します。
Document

引数 概要
user-name IAMユーザー名
policy-arn リソース名
command
aws iam attach-role-policy \
--role-name sample-role \
--policy-arn "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess"

##s3

S3関連を操作するコマンド

###mb

バケットを新規作成します。
Document

command
aws s3 mb s3://sample.bucket

###website

バケットを静的Webサイトホスティング化する
Document

引数 概要
index-document ディレクトリに対してリクエストが来た際に自動で追加する接尾辞
command
aws s3 website s3://sample.bucket \
--index-document index.html

###cp

バケットにオブジェクトを転送する
Document

command
aws s3 cp sample.txt s3://sample.bucket

###rm

バケットのオブジェクトを削除する
Document

command
aws s3 rm s3://sample.bucket/sample.txt

###ls

バケットのオブジェクト一覧を取得する
Document

command
aws s3 ls s3://sample.bucket

###rb

バケットを削除する
Document

command
aws s3 rb s3://sample.bucket

##s3api

Amazon S3 API関連を操作するコマンド

###put-bucket-notification-configuration

バケットにオブジェクトがPutされた時の通知設定
Document

引数 概要
bucket 対象バケット名
notification-configuration 通知設定ファイル
command
aws s3api put-bucket-notification-configuration \
--bucket sample.bucket \
--notification-configuration file://config.json
config.json
{
    "LambdaFunctionConfigurations": [
        {
            "LambdaFunctionArn": "arn:aws:lambda:xxxx",
            "Id": "sample_config",
            "Events": [
                "s3:ObjectCreated:*"
            ]
        }
    ]
}

##cloudfront

CloudFront関連を操作するコマンド

###create-distribution

CloudFrontを新規作成します。
Document

引数 概要
cli-input-json 新規作成用Jsonファイルのパス ※file://${パス}にすること
command
aws cloudfront create-distribution \
--cli-input-json file://distribution.json
distribution.json
{
  "Id": "",
  "IfMatch": "",
  "DistributionConfig": {
    "Comment": "${コメント}",
    "CacheBehaviors": {
      "Quantity": 0
    },
    "IsIPV6Enabled": true,
    "Logging": {
      "Bucket": "",
      "Prefix": "",
      "Enabled": false,
      "IncludeCookies": false
    },
    "WebACLId": "",
    "Origins": {
      "Items": [
        {
          "S3OriginConfig": {
            "OriginAccessIdentity": ""
          },
          "OriginPath": "",
          "CustomHeaders": {
            "Quantity": 0
          },
          "Id": "${ID}",
          "DomainName": "${ドメイン名}"
        }
      ],
      "Quantity": 1
    },
    "DefaultRootObject": "index.html",
    "PriceClass": "PriceClass_All",
    "Enabled": true,
    "DefaultCacheBehavior": {
      "TrustedSigners": {
        "Enabled": false,
        "Quantity": 0
      },
      "LambdaFunctionAssociations": {
        "Quantity": 0
      },
      "TargetOriginId": "${S3のバケット名}",
      "ViewerProtocolPolicy": "allow-all",
      "ForwardedValues": {
        "Headers": {
          "Quantity": 0
        },
        "Cookies": {
          "Forward": "all"
        },
        "QueryStringCacheKeys": {
          "Quantity": 0
        },
        "QueryString": true
      },
      "MaxTTL": 300,
      "SmoothStreaming": false,
      "DefaultTTL": 300,
      "AllowedMethods": {
        "Items": [
          "HEAD",
          "GET"
        ],
        "CachedMethods": {
          "Items": [
            "HEAD",
            "GET"
          ],
          "Quantity": 2
        },
        "Quantity": 2
      },
      "MinTTL": 300,
      "Compress": false
    },
    "CallerReference": "${一意となる文字列}",
    "ViewerCertificate": {
      "CloudFrontDefaultCertificate": true,
      "MinimumProtocolVersion": "SSLv3",
      "CertificateSource": "cloudfront"
    },
    "CustomErrorResponses": {
      "Quantity": 0
    },
    "HttpVersion": "http2",
    "Restrictions": {
      "GeoRestriction": {
        "RestrictionType": "none",
        "Quantity": 0
      }
    },
    "Aliases": {
      "Items": [
        "${エイリアス名}"
      ],
      "Quantity": 1
    }
  }
}

##ec2

EC2関連を操作するコマンド

###create-security-group

セキュリティグループを新規作成します。
Document

引数 概要
group-name セキュリティグループ名
description 説明
command
aws ec2 create-security-group \
--group-name sample-sg-group \
--description 'サンプル用のセキュリティグループ'

###authorize-security-group-ingress

セキュリティグループのルールを定義します。
Document

引数 概要
group-name セキュリティグループ名
description 説明
port 対象のポート番号
cidr 許可するIPアドレス
command
aws ec2 authorize-security-group-ingress \
--group-name sample-sg-group \
--protocol tcp \
--port 22 \
--cidr "0.0.0.0/0" 

###allocate-address

ElasticIPを新規作成します。
Document

引数 概要
domain vpsを使う際には「vpc」を指定する
command
aws ec2 allocate-address \
--domain vpc

###run-instances

インスタンスを新規作成し起動します。
Document

引数 概要
image-id インスタンスのベースとなるマシンイメージ
count 起動するインスタンスの数
instance-type 作成するインスタンスの種別
key-name 使用するキーペア名
security-groups 紐付けるセキュリティブループ名(複数可)
command
aws ec2 run-instances \
--image-id ami-3bd3c45c \
--count 1 \
--instance-type t2.micro \
--key-name sample_key_pair \
--security-groups sample-sg-group

###create-tags

対象のインスタンスにタグを新規追加します。
Document

引数 概要
resources 対象のインスタンスID
tags Key/Valueの形式で追加していく
instance-type 作成するインスタンスの種別
key-name 使用するキーペア名
security-groups 紐付けるセキュリティブループ名(複数可)
command
aws ec2 create-tags \
--resources i-xxxx \
--tags Key=Name,Value=sample-instance

###associate-address

ElasticIPとインスタンスを紐付けます。
Document

引数 概要
allocation-id 対象のElasticIP ID
instance 対象のインスタンスID
command
aws ec2 associate-address \
--allocation-id eipalloc-xxxx \
--instance i-xxxx

###release-address

ElasticIPを解放します。
Document

引数 概要
allocation-id 対象のElasticIP ID
command
aws ec2 release-address \
--allocation-id eipalloc-xxxx

###modify-instance-attribute

インスタンスの属性を更新します。
Document

引数 概要
groups セキュリティブループID(複数可)
instance-id 対象のインスタンスID
command
aws ec2 modify-instance-attribute  \
--groups sample-sg-group  \
--instance-id i-xxxx

###terminate-instances

インスタンスを停止して削除します。
Document

引数 概要
instance-ids 対象のインスタンスID(複数可)
command
aws ec2 terminate-instances \
--instance-ids i-xxxx

###start-instances

作成済みインスタンスを起動します。
Document

引数 概要
instance-ids 対象のインスタンスID(複数可)
command
aws ec2 start-instances  \
--instance-ids i-xxxx

###stop-instances

起動中インスタンスを停止します。
Document

引数 概要
instance-ids 対象のインスタンスID(複数可)
command
aws ec2 stop-instances  \
--instance-ids i-xxxx

##lambda

Lambda関連を操作するコマンド

###create-function

Lambda関数を新規作成します。
Document

引数 概要
function-name Lambda関数名
zip-file zipパス
role 他のAWSサービスに接続するためのロール
handler 実行するためのコード内関数
runtime 実行環境
timeout タイムアウトの定義(秒)
memory-size Lambda関数実行時のメモリ割り当て

(@xieyang0047 さん、ご指摘ありがとうございます!)

command
aws lambda create-function \
--function-name SampleFunction \
--zip-file fileb://SampleFunction.zip \
--role arn:aws:iam::xxxx:role/sample-role \
--handler SampleFunction.handler \
--runtime python2.7 \
--timeout 10 \
--memory-size 1024

###delete-function

Lambda関数を削除します。
Document

引数 概要
function-name Lambda関数名
command
aws lambda delete-function \
--function-name SampleFunction 

###add-permission

Lambda関数への権限を追加います。
Document

引数 概要
function-name Lambda関数名
statement-id 一意となるステートメント名
action 許可させるLambdaアクション
principal プリンシパルの設定
source-arn 関数呼び出しを許可するAmazonリソース名
command
aws lambda add-permission \
--function-name "sample-function" \
--statement-id "sample-statement" \
--action "lambda:InvokeFunction" \
--principal "s3.amazonaws.com" \
--source-arn "arn:aws:s3:::sample.bucket"

##acm

AWS Certificate Manager関連を操作するコマンド

###request-certificate

SSL証明書を新規作成します。
Document

引数 概要
domain-name 対象のメインドメイン名
subject-alternative-namessubject-alternative-names 同時に含めたいサブドメイン名
domain-validation-options サブドメインの承認リクエストをメインドメインに変更する場合に指定
command
aws acm request-certificate \
--domain-name sample.jp \
--subject-alternative-names sub.sample.jp \
--domain-validation-options DomainName=sub.sample.jp,ValidationDomain=sample.jp

##ses

SimpleMailService関連を操作するコマンド

※SESを利用する場合、2017/8/18時点で東京リージョンは対応していないので、以下のリージョンを指定する必要がある。

  • US East (N. Virginia)
  • EU (Ireland)
  • US West (Oregon)

###verify-domain-identity

ドメイン認証用のトークンを発行します。
Document

引数 概要
region リージョンの指定
domain 対象のドメイン
command
aws ses verify-domain-identity  \
--region=us-west-2 \
--domain "sample.jp"

###create-receipt-rule-set

ルールセットを新規作成します。
Document

引数 概要
region リージョンの指定
rule-set-name 対象のルールセットの名称
command
aws ses create-receipt-rule-set \
--region=us-west-2 \
--rule-set-name sample-rule-set

###create-receipt-rule

ルールを新規作成します。
※ルールセットとは別物

Document

引数 概要
region リージョンの指定
rule-set-name 対象のルールセットの名称
rule Jsonファイルパス
command
aws ses create-receipt-rule \
--region=us-west-2 \
--rule-set-name sample-rule-set \
--rule file://rule.json
rule.json
{
        "Name": "sample-rule",
        "Enabled": true,
        "TlsPolicy": "Optional",
        "Recipients": [
          "admin@sample.jp",
          "admin@sub.sample.jp"
        ],
        "Actions": [
          {
            "S3Action": {
              "BucketName": "ses.incoming.bucket"
            }
          }
        ],
        "ScanEnabled": true
}

###delete-receipt-rule-set

ルールセットを削除します。
Document

引数 概要
region リージョンの指定
rule-set-name 対象のルールセットの名称
command
aws ses delete-receipt-rule-set \
--region=us-west-2 \
--rule-set-name sample-rule-set

###delete-receipt-rule

ルールを削除します。
Document

引数 概要
region リージョンの指定
rule-set-name 対象のルールセットの名称
rule-name 対象のルールの名称
command
aws ses delete-receipt-rule-set \
--region=us-west-2 \
--rule-set-name sample-rule-set \
--rule-name sample-rule

###set-active-receipt-rule-set

ルールセットを有効化します。
Document

引数 概要
region リージョンの指定
rule-set-name 対象のルールセットの名称
command
aws ses set-active-receipt-rule-set \
--region=us-west-2 \
--rule-set-name sample-rule-set

###describe-receipt-rule-set

ルールセットを取得します。
Document

引数 概要
region リージョンの指定
rule-set-name 対象のルールセットの名称
command
aws ses describe-receipt-rule-set \
--region=us-west-2 \
--rule-set-name sample-rule-set

###describe-active-receipt-rule-set

有効化されているルールセットを取得します。
Document

引数 概要
region リージョンの指定
command
aws ses describe-active-receipt-rule-set \
--region=us-west-2 
64
74
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
64
74

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?