AWS CLI 導入入門:インストールから認証・プロファイル設定まで

スポンサーリンク

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