はじめに
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
クレデンシャル情報を取り込んでみる。
ファイルはこんな感じ
credentials.csv
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にインポートするためのツールをつくろうかな。
その他
他にも色々と機能が増えているようなので、おいおい試してみる。