aws cli

AWS CLI v2

AWS Command Line Interface のクイック リファレンス:資格情報の構成、IAM ID、EC2 / Lambda / S3 / DynamoDB / IAM、プロファイル、SSO、ページング / 出力フォーマット — よく使うオプションと実用例をまとめました。

40 コマンド

ヘルプ

aws --version

awscli バージョン(v2.x)を表示します。

aws --version
aws help

トップレベル ヘルプ — サービス グループと基本的な使用法を一覧表示します。

aws help
aws <service> help

1 つのサービスのコマンドを表示します。

<service> help; aws <service> <command> help

aws s3 help
aws <service> <command> help

単一の API 呼び出しのすべてのフラグ + パラメーターを表示します。

aws ec2 run-instances help
aws <service> <command> --generate-cli-skeleton

コマンドのすべての必須 / オプション フィールドを含む JSON スケルトンを出力します — 入力として貼り付けてください。

--generate-cli-skeleton <input|output>; --cli-input-json <file>; --cli-input-yaml <file>

aws ec2 run-instances --generate-cli-skeleton > ec2.json

構成

aws configure

対話型ウィザード — `~/.aws/credentials` と `~/.aws/config` にアクセスキー、シークレット、出力形式、リージョンを設定します。

aws configure
aws configure --profile <name>

`aws configure` と同じですが、名前付きプロファイルに書き込みます。

--profile dev; --profile prod; --no-prompt

aws configure --profile prod
aws configure get <key>

アクティブな構成から単一の値を読み取ります。

default.region; default.output; <key>; --profile <name>

aws configure get region --profile prod
aws configure set <key> <value>

単一の構成値を設定します。

<key> <value>; --profile <name>

aws configure set region us-west-2
aws configure list

アクティブな構成(プロファイル、リージョン、アクセスキー ID、シークレットは編集済み)を表示します。

aws configure list

SSO / ID

aws sso login --profile <name>

SSO デバイス フロー ログイン(またはブラウザ リダイレクト)を起動します。プロファイル用の短期資格情報を設定します。

--profile dev; --no-browser; --use-device-code

aws sso login --profile dev
aws sso configure

SSO プロファイルを対話的に構成します(開始 URL、リージョン、アカウント、ロール)。

aws sso configure
aws sts get-caller-identity

アクティブな資格情報の IAM プリンシパル(アカウント / arn / ユーザー ID)を表示します — 構成後の健全性チェック。

--profile <name>; --no-verify-ssl; --endpoint-url <url>

aws sts get-caller-identity
aws sts assume-role --role-arn <arn> --role-session-name <name>

IAM ロールに切り替えて一時的な資格情報を取得します — クロス アカウント アクセスに便利です。

--role-arn; --role-session-name; --external-id; --mfa-serial <arn>; --serial-number <arn>; --token-code <mfa>

aws sts assume-role --role-arn arn:aws:iam::123456789012:role/Admin --role-session-name admin

出力

aws <service> <command> --output <format>

出力形式を選択します: `json`(既定)、`text`、`table`。jq のようなプロジェクションには `--query` と組み合わせます。

json; text; table; yaml; yaml-stream

aws ec2 describe-instances --output table
aws <service> <command> --query '<JMES>'

JMESPath 式(jq 風)でレスポンスをプロジェクションします。

--query 'Reservations[].Instances[].InstanceId'; --query 'Reservations[].Instances[].[InstanceId,State.Name]'

aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId,State.Name]' --output table
aws <service> <command> --no-paginate

自動ページングを無効にします — 最初のページのみを返します(高速; カウントのみが必要な場合に便利)。

aws s3 ls --no-paginate
aws <service> <command> --cli-binary-format raw-in-base64-out

入力パラメーターを base64 として読み込みます — `--zip-file fileb://lambda.zip` のようなバイナリ パラメーターに必要です。

raw-in-base64-out; base64

aws lambda update-function-code --function-name fn --zip-file fileb://out.zip --cli-binary-format raw-in-base64-out

EC2

aws ec2 describe-instances

完全な詳細ですべての EC2 インスタンスを一覧表示します。

--instance-ids i-xxx; --filters Name=tag:Name,Values=prod; --query; --output

aws ec2 describe-instances --query 'Reservations[].Instances[].{ID:InstanceId,State:State.Name}' --output table
aws ec2 start-instances --instance-ids <id>

1 つ以上の停止されたインスタンスを起動します。

--instance-ids i-xxx i-yyy

aws ec2 start-instances --instance-ids i-0abc123
aws ec2 stop-instances --instance-ids <id>

1 つ以上の実行中のインスタンスを停止します(終了はしません)。

aws ec2 stop-instances --instance-ids i-0abc123
aws ec2 create-key-pair --key-name <name> --query 'KeyMaterial' --output text > key.pem

新しい SSH キー ペアを作成し、正しい権限で秘密鍵を `.pem` ファイルに保存します。

aws ec2 create-key-pair --key-name dev --query 'KeyMaterial' --output text > dev.pem && chmod 400 dev.pem

S3

aws s3 ls

引数なしでバケットを一覧表示するか、プレフィックス配下のファイルを一覧表示します。

s3://<bucket>/<prefix>; --recursive; --human-readable; --summarize

aws s3 ls s3://my-bucket/data/
aws s3 cp <local> s3://<bucket>/<key>

ファイルをアップロードまたはコピーします。`s3://...` はソースまたは宛先にできます。

--recursive; --exclude '*'; --include '*.log'; --storage-class STANDARD|GLACIER|...; --acl public-read

aws s3 cp ./build/ s3://my-bucket/release/ --recursive
aws s3 sync <src> s3://<bucket>/<dst>

双方向 S3 ディレクトリ同期(`--delete` が渡されない限り、新しい / 変更されたファイルをアップロードし、宛先側の余分を削除します)。

--delete; --exclude; --include; --no-progress; --exact-timestamps

aws s3 sync ./dist s3://my-bucket/app/ --delete
aws s3 mb s3://<bucket>

新しい S3 バケットを作成します。リージョンの既定は us-east-1; 上書きするには `--region` を渡します。

--region eu-west-1

aws s3 mb s3://my-new-bucket --region eu-west-1
aws s3 rb s3://<bucket>

バケットを削除します(最初にオブジェクトを消去するには `--force` を使用します)。

--force; --no-progress

aws s3 rb s3://old-bucket --force
aws s3 presign s3://<bucket>/<key> --expires-in <seconds>

`<seconds>` 後に期限切れになる事前署名済み URL を生成します — プライベート ファイルを共有するのに便利です。

aws s3 presign s3://my-bucket/file.pdf --expires-in 3600

Lambda

aws lambda list-functions

現在のリージョンのすべての Lambda 関数を一覧表示します。

--function-version ALL; --max-items 50; --query 'Functions[].FunctionName'

aws lambda list-functions --query 'Functions[].FunctionName' --output text
aws lambda update-function-code --function-name <name> --zip-file fileb://fn.zip

ローカル zip から関数のコードを更新します。一部のセットアップでは `--cli-binary-format raw-in-base64-out` を使用します。

aws lambda update-function-code --function-name my-fn --zip-file fileb://out.zip --cli-binary-format raw-in-base64-out
aws lambda invoke --function-name <name> --payload '{}' out.json

関数を同期的に呼び出します — レスポンスを `out.json` に書き込みます。

--invocation-type Event|RequestResponse|DryRun; --log-type Tail; --cli-binary-format

aws lambda invoke --function-name my-fn --payload '{"key":"value"}' out.json && cat out.json

DynamoDB

aws dynamodb scan --table-name <name>

DynamoDB テーブルをスキャンします — すべてのアイテムを読み取ります(可能な場合はキー条件で `query` を使用してください)。

--table-name; --filter-expression; --projection-expression; --select; --max-items

aws dynamodb scan --table-name users --max-items 5
aws dynamodb query --table-name <name> --key-condition-expression 'pk = :v' --expression-attribute-values '{":v":{"S":"u1"}}'

キー条件式でパーティション キーでアイテムをクエリします。

aws dynamodb query --table-name users --key-condition-expression '#u = :u' --expression-attribute-names '{"#u":"userId"}' --expression-attribute-values '{":u":{"S":"u1"}}'

IAM

aws iam list-users

アカウント内のすべての IAM ユーザーを一覧表示します。

--path-prefix /; --max-items

aws iam list-users --query 'Users[].UserName' --output text
aws iam create-user --user-name <name>

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

aws iam create-user --user-name new-dev
aws iam attach-user-policy --user-name <name> --policy-arn <arn>

マネージド ポリシーをユーザーにアタッチします。

aws iam attach-user-policy --user-name new-dev --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess

プロファイル

aws --profile <name> <service> <cmd>

名前付きプロファイル(すでに構成されている必要があります)の下で任意のコマンドを実行します。

--profile prod; --profile dev; --profile staging

aws --profile prod s3 ls
AWS_PROFILE=<name> aws <service> <cmd>

環境変数を介してプロファイルを設定します — スクリプトで便利です。

AWS_PROFILE=prod aws lambda list-functions

診断

aws --debug <service> <cmd>

HTTP ワイヤー レベル ログを stderr にダンプします — 署名またはペイロード エラーの診断時に便利です。

--debug; --no-verify-ssl; --ca-bundle <file>; --cli-read-timeout <seconds>

aws --debug s3 ls 2> aws.log
aws --no-sign-request <service> <cmd>

署名されていないリクエストを行います — パブリック バケット / テスト エンドポイントに対して便利です。

aws --no-sign-request s3 cp public.txt s3://public-bucket/x

関連コマンド速查

AWS CLI について

AWS Command Line Interface (awscli)は、ターミナルから AWS サービスを制御するための Amazon 公式ツールです。現在の系は AWS CLI v2(2020 年にリリース、awscli 1.x はメンテナンス)です。v2 は単一のインストーラー(msi / pkg / 署名付き zip)として出荷され、SSO、新しい `aws sso login` フロー、自動ページング、バイナリ パラメーター(Lambda zip アップロードのような base64 エンコード blob を処理)をサポートします。構成は `~/.aws/config`(リージョン、出力形式)と `~/.aws/credentials`(アクセスキー)に分割されますが、IAM Identity Center / SSO では通常、長期キーの代わりに `aws sso configure` を使用します。すべての AWS サービスは `aws <service> <command>` 経由で到達可能です — `aws ec2 describe-instances`、`aws s3 sync`、`aws lambda invoke`、`aws dynamodb scan`。CLI は Apache-2.0 ライセンスです。新しい代替は `aws-shell`(対話型補完)と AWS CDK(`cdk`)です(インフラ as code 用)。AWS CLI v2 は明示的に行う API 呼び出し以外ではあなたのソース コードをどこにもアップロードしません。

チートシート バージョン 1.0.0