2020/02/14 追記
こちらはGAになる前のAWS CLI v2のインストール手順 & 使用した所感です。
AWS CLI v2 GA版については 公式 にインストール手順が公開されていますのでそちらを参考にしてください。
GA版はzshでもインストールできます。
GA版のインストール手順とクレデンシャル管理方法については AWS CLI v2とaws-vaultとpecoを使ってプロファイルを選択方式にする で紹介しています。
はじめに
AWS CLI v2がリリースされていたので遅ればせながらインストールしてみた。
インストール手順はここを参考にしています。
tl;dr
- 公式ドキュメントにあるアップグレードの手順は
bash
- yaml形式でアウトプットできる
- Management Consoleを使って作ったクレデンシャルのcsvをそのままインポートできる。
- インポートすると prefix + ユーザー名の形式でプロファイルが作られる
- 個人的にファイルに平文でクレデンシャルを保管するのが気持ち悪いので
configure import
使う機会はすくなそう
アップグレード
前提
- macOS 10.13.6 High Sierra
- aws-cli/1.16.71 Python/3.6.6 Darwin/17.7.0 botocore/1.12.61
インストール手順
v1を最新にしてからv2にアップデートするだけ。楽ちん。
$ pip install -U awscli
$ pip install -e git://github.com/aws/aws-cli.git@v2#egg=awscli
zshをつかうとv2へのアップデートで怒られたのでおとなしくbashで作業をおこなった。
$ pip install -e git://github.com/aws/aws-cli.git@v2#egg=awscli
zsh: no matches found: git://github.com/aws/aws-cli.git@v2#egg=awscli
バージョン確認。こんな感じ。
$ aws --version
aws-cli/2.0.0dev0 Python/3.6.6 Darwin/17.7.0 botocore/1.12.48
利用
yaml形式のアウトプット
v1
当然エラー
$ aws ec2 describe-availability-zones --output yaml
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
aws: error: argument --output: Invalid choice, valid choices are:
json | text
table
v2
ymal形式で表示された。個人的にはyamlはわかりやすくてすき
$ aws ec2 describe-availability-zones --output yaml
AvailabilityZones:
- Messages: []
RegionName: ap-northeast-1
State: available
ZoneId: apne1-az4
ZoneName: ap-northeast-1a
- Messages: []
RegionName: ap-northeast-1
State: available
ZoneId: apne1-az1
ZoneName: ap-northeast-1c
- Messages: []
RegionName: ap-northeast-1
State: available
ZoneId: apne1-az2
ZoneName: ap-northeast-1d
textだとこんなかんじ。
$ aws ec2 describe-availability-zones --output text
AVAILABILITYZONES ap-northeast-1 available apne1-az4 ap-northeast-1a
AVAILABILITYZONES ap-northeast-1 available apne1-az1 ap-northeast-1c
AVAILABILITYZONES ap-northeast-1 available apne1-az2 ap-northeast-1d
configure import
クレデンシャル情報を取り込んでみる。
ファイルはこんな感じ
User name,Password,Access key ID,Secret access key,Console login link
ricordanza,,AKIXXXXXXXXXXXXXXXXX,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,https://000000000000.signin.aws.amazon.com/console
コマンド発行時にファイルを指定するとクレデンシャルをインポートする事ができる。楽。
$ aws configure import --csv file://PATH/TO/credentials.csv --profile-prefix sample_
Successfully imported 1 profile(s)
こんな感じで設定が追加される。
[sample_ricordanza]
aws_access_key_id = AKIXXXXXXXXXXXXXXXXX
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
楽に取り込めるのはありがいけど、平文管理がいやなので、個人的には envchain か HashiCorp Vault で管理することが多い。
envchain か HashiCorp Vaultにインポートするためのツールをつくろうかな。
その他
他にも色々と機能が増えているようなので、おいおい試してみる。