aws コマンドはAWSのリソースをターミナルから操作できる公式CLIツールです。S3・EC2・IAM・Lambda など、ブラウザのマネジメントコンソールで行う操作をコマンドで実行できます。スクリプトへの組み込みやCI/CDパイプラインとの連携にも使われます。
インストール
macOS(Homebrew)
brew install awscli
macOS(公式インストーラ)
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target /
Linux
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
バージョン確認
aws --version # aws-cli/2.x.x Python/3.x.x
認証情報の設定
AWS CLIを使うにはIAMユーザーのアクセスキーが必要です。AWSマネジメントコンソール → IAM → ユーザー → セキュリティ認証情報 → アクセスキーの作成 から取得します。
aws configure
AWS Access Key ID [None]: AKIAXXXXXXXXXXXXXXXX AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Default region name [None]: ap-northeast-1 Default output format [None]: json
| 項目 | 説明 |
|---|---|
| Access Key ID | IAMユーザーのアクセスキーID |
| Secret Access Key | 対応するシークレットアクセスキー |
| Default region name | デフォルトのリージョン(ap-northeast-1 = 東京) |
| Default output format | json / yaml / table / text |
設定は以下のファイルに保存されます。
~/.aws/credentials # アクセスキー ~/.aws/config # リージョン・出力形式
設定の確認
aws configure list
接続テスト
# S3バケット一覧が返ってくれば認証成功 aws s3 ls
複数アカウント・環境を切り替える(プロファイル)
プロファイルを追加する
本番・開発・別会社のアカウントなど複数のAWS環境を使い分ける場合はプロファイルを使います。
aws configure --profile dev aws configure --profile prod
~/.aws/credentials に各プロファイルのセクションが追加されます。
[default] aws_access_key_id = AKIA... aws_secret_access_key = ... [dev] aws_access_key_id = AKIA... aws_secret_access_key = ... [prod] aws_access_key_id = AKIA... aws_secret_access_key = ...
プロファイルを指定してコマンドを実行する
aws s3 ls --profile dev aws s3 ls --profile prod
環境変数で切り替える
export AWS_PROFILE=dev aws s3 ls # dev プロファイルで実行される # 元に戻す unset AWS_PROFILE
出力形式を変える
# テーブル形式(人が読みやすい) aws s3 ls --output table # YAML形式 aws s3 ls --output yaml # テキスト形式(スクリプト向け) aws s3 ls --output text
IAMロールを使う(EC2・Lambda・ECS)
EC2やLambda上で実行する場合、アクセスキーをファイルに書く必要はありません。インスタンスプロファイル(IAMロール)を割り当てると、AWS CLIが自動的に認証情報を取得します。
# IAMロールが割り当てられたEC2上では設定不要 aws s3 ls
環境変数で認証情報を渡す
CIなどでファイルを使わずに認証情報を渡したい場合は環境変数を使います。
export AWS_ACCESS_KEY_ID=AKIAXXXXXXXXXXXXXXXX export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxx export AWS_DEFAULT_REGION=ap-northeast-1 aws s3 ls
よく使う設定の確認コマンド
# 現在の設定一覧 aws configure list # プロファイル一覧 aws configure list-profiles # 現在のIAMユーザー・ロールを確認 aws sts get-caller-identity
{ "UserId": "AIDAXXXXXXXXXXXXXXXX", "Account": "123456789012", "Arn": "arn:aws:iam::123456789012:user/myuser" }
まとめ
# インストール brew install awscli # 初期設定 aws configure # プロファイルを追加 aws configure --profile dev # プロファイルを指定して実行 aws s3 ls --profile dev # 環境変数で切り替え export AWS_PROFILE=prod # 現在の認証情報を確認 aws sts get-caller-identity