やりたいこと
aws-cli のセットアップ(インストール〜認証情報の設定)を行う。
やりかた
アクセスキーの作成
ご自身のIAM Userのマネジメントコンソールにて、
「セキュリティ認証情報」>「アクセスキー」>「アクセスキーを作成する」
から、アクセスキーとシークレットキーを作成し、手元に控えておいてください。
作成途中で「主要なベストプラクティスと代替案にアクセスする」という画面でユースケースを選択させられますが、
「コマンドラインインターフェイス (CLI)
」を選んでください。
aws-cliのインストール
最新バージョンのインストーラーは公式ドキュメントに掲載されています。
インストーラーを起動するとウィンドウが開くので、手順に従って進めます。
versionが表示されればOKです。
❯ aws --version
aws-cli/2.9.23 Python/3.9.11 Darwin/21.3.0 exe/x86_64 prompt/off
※
クラスメソッドさんの記事「M1 MacBook に AWS CLI v2 をインストール(v1 から移行)する
」によると、Homebrewでaws-cliをインストールすることはできるが、AWS公式から提供されたものではないそうです。
認証情報の設定
aws configure list
で、現在適用されている設定を確認できます。
まだ何も設定していないので、Noneが表示されています。
❯ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key <not set> None None
secret_key <not set> None None
region <not set> None None
ところで、設定を追加する際は「プロファイル」というものを設定したり設定しなかったりできます。
「プロファイル」を使うと、名前付きの設定を登録することができます。複数のアクセスキーを使い分けたい場合に有効です。
プロファイルを指定せずに認証情報を登録
プロファイルを指定せずに設定を登録してみます。
この場合default
というプロファイル名で登録されます。
aws configure
で、認証情報を登録できます。
- AWS Access Key ID :先程手元に控えたアクセスキー
- AWS Secret Access Key :先程手元に控えたシークレットキー
- Default region name :デフォルトでリクエストを送信するリージョン
- Default output format :出力結果の形式。(json, yaml, text, tableが指定できる模様。公式ドキュメント)
❯ aws configure
AWS Access Key ID [None]: xxxxxx
AWS Secret Access Key [None]: xxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]:
認証情報を登録すると、~/.aws
配下にファイルが作成されます。
❯ cat ~/.aws/credentials
[default]
aws_access_key_id = xxxxxx
aws_secret_access_key = xxxxxx
❯ cat ~/.aws/config
[default]
region = ap-northeast-1
これらのファイルについての詳細は、引用してばかりで恐縮ですがクラスメソッドさんの「AWS CLI のコンフィグファイルと環境変数とコマンドラインオプションで指定できる内容をまとめて確認してみた」という記事が大変わかりやすかったです。
プロファイルを指定して認証情報を登録
次はプロファイルを指定して設定を登録してみます。
aws configure
に--profile
オプションをつけることで、プロファイルを指定できます。
❯ aws configure --profile hoge
AWS Access Key ID [None]: yyyyyy
AWS Secret Access Key [None]: yyyyyy
Default region name [None]: ap-northeast-1
Default output format [None]:
最初に追加したdefaultの下に、プロファイル「hoge」の情報が追記されているのが確認できます。
❯ cat ~/.aws/credentials
[default]
aws_access_key_id = xxxxxx
aws_secret_access_key = xxxxxx
[hoge]
aws_access_key_id = yyyyyy
aws_secret_access_key = yyyyyy
❯ cat ~/.aws/config
[default]
region = ap-northeast-1
[profile hoge]
region = ap-northeast-1
認証情報の使用方法
プロファイルを指定してコマンドを実行したい際は、以下の2つの方法があります。
方法1:実行時に--profile
オプションをつける
❯ aws s3 ls --profile hoge
方法2:環境変数を設定する。
❯ export AWS_PROFILE=hoge
# 現在適用されている設定を確認
❯ aws configure list
Name Value Type Location
---- ----- ---- --------
profile hoge env ['AWS_PROFILE', 'AWS_DEFAULT_PROFILE']
(略)
その他コマンド
登録されている認証情報の一覧を見たいときは以下です。
❯ aws configure list-profiles
default
hoge