11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS CLI V2にアップグレード

Last updated at Posted at 2019-01-23

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

クレデンシャル情報を取り込んでみる。
ファイルはこんな感じ

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)

こんな感じで設定が追加される。

.aws/credentials
[sample_ricordanza]
aws_access_key_id = AKIXXXXXXXXXXXXXXXXX
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

楽に取り込めるのはありがいけど、平文管理がいやなので、個人的には envchain か HashiCorp Vault で管理することが多い。
envchain か HashiCorp Vaultにインポートするためのツールをつくろうかな。

その他

他にも色々と機能が増えているようなので、おいおい試してみる。

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?