
AWS CLI v2 プレビューのインストーラが公開&AWS SSOに対応しました!
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ひさびさにAWS CLI v2のニュースが入ってきて興奮しています!
昨年のre:InventでAWS CLI v2の話題が出てきましたが、あまり大きな動きがありませんでした。
- [レポート] DEV322: What’s New with the AWS CLI #reinvent | Developers.IO
- Amazon Linux 2でaws cli v2を試してみた #reinvent | Developers.IO
そんなときにAWS Developer Blogに、バーンと2つのニュースが入ってきました!
- AWS CLI v2 Preview Installers Now Available | AWS Developer Blog
- AWS CLI v2 Preview Now Supports AWS Single Sign-On | AWS Developer Blog
さっそく試してみます!
AWS CLI v2 プレビューをインストーラでインストールしてみる
AWS CLI v2 プレビューのインストーラでは、 /usr/local/bin ディレクトリに aws2 コマンドとしてインストールされます。
そのため、現在のAWS CLI( aws コマンド)とも共存できます。
インストールはブログに記載のとおりやればとても簡単です。
次の3つのインストーラが公開されています。
- MacOS executable installer
- Linux executable installer
- Windows MSI installer
私はMacbookを利用しているので、MacOSへのインストールをやっていきます。
curl コマンドでインストーラをダウンロードして。
$ curl 'https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-macos.zip' -o 'awscli-exe.zip'
unzip コマンドで展開して、 install スクリプトを実行するだけです。
$ unzip awscli-exe.zip $ sudo ./aws/install
AWS CLI v2 プレビューのコマンドを実行してみると、問題なく動きました!簡単です。
$ /usr/local/bin/aws2 --version aws-cli/2.0.0dev0 Python/3.7.4 Darwin/18.7.0 botocore/2.0.0dev0
AWS CLI v2 プレビューを AWS SSOでログインして使用してみる
とてもユニークな機能です。まさか、ブラウザでログインしてターミナルのAWS CLIが使えるようになるとは思いませんでした。
AWS SSO自体の構築方法については、弊社ブログをご参照ください。
- AWS SSO Directory が利用できるようになりました(Microsoft AD以外の選択肢が提供されました) | Developers.IO
- AWS SSOがMFAアプリを使用した多要素認証に対応しました! | Developers.IO
SSO Profileを設定してみる
ブログを参考に、AWS CLI v2 プレビューの設定をしていきます。
まず最初に、 aws2 configure sso コマンドを実行します。
$ aws2 configure sso SSO start URL [None]: https://d-0123456790.awsapps.com/start SSO Region [None]: us-east-1
そうすると、SSO start URLとSSO Regionの入力を促されます。
SSO Regionは、AWS SSOを構築したリージョンです。
SSO start URLは、AWS SSOのログイン画面のURLです。

余談ですが、AWS CLI v2では、こういった細かい点で補完が効くようになっています。

ここまで入力するとターミナルは入力の受け付けをいったん停止し、デフォルトブラウザでAWS SSOのログイン画面が開きます。


ログイン画面からログインすると、AWS CLIでサインインしてよいかと確認を促されるので、そのままサインインします。

そうすると、AWS CLIでのサインインが成功します。

何のこっちゃと思っちゃうんですが、ここでターミナルに戻ってみると次の入力ができるようになっています。スゴい!

後はCLIがデフォルトで使用するRegionと、デフォルトで使用するアウトプットのformatと、Profile名を適当につけてやれば設定は完了です。
$ aws2 configure sso SSO start URL [None]: https://d-0123456790.awsapps.com/start SSO Region [None]: us-east-1 Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.us-west-2.amazonaws.com/ Then enter the code: ABCD-EFGH Successully logged into Start URL: https://d-1234567890.awsapps.com/start There are 2 AWS accounts available to you. Using the account ID 123456789012 There are 2 roles available to you. Using the role name "readOnly" CLI default client Region [None]: us-west-2 CLI default output format [None]: json CLI profile name [readOnly-123456789012]: my-sso-profile
SSO Profileを使ってみる
AWS SSOでログインしてAWS CLI v2プレビューを使うには、aws2 sso login コマンドでログインが必要です。
$ aws2 sso login --profile my-sso-profile
そうすると、設定時と同様にデフォルトブラウザでログイン画面が表示されます。そのままログインを進めていくとAWS CLI v2プレビューのコマンドをAWS SSOの権限で使用できるようになります。

試しに、aws2 s3 ls コマンドを実行してみると、問題なく実行できていそうなことがわかります。
$ aws2 s3 ls --profile my-sso-profile
どうなっているのかと aws2 configure list してみると、どうやらAWS SSOが一時的なクレデンシャルキーを発行をして、うまいこと利用できるようにしていそうです。
$ aws2 configure list --profile my-sso-profile
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile           my-sso-profile           manual    --profile
access_key     ****************WC27              sso
secret_key     ****************/6h0              sso
    region                <not set>             None    None
CLIの利用が終わったら、 aws2 sso logout コマンドでログアウトできます。
$ aws2 sso logout
ログアウトすると、当然権限がなくなりコマンドを実行するとエラーが出るようになります。
$ aws2 s3 ls --profile my-sso-profile Error loading SSO Token: The SSO access token has either expired or is otherwise invalid.
終わりに
AWS CLI v2 プレビューのニュースを聞いて、テンション上がりました! AWS SSOに対応して、さらなる進化を遂げそうです!
プレビュー版なのでまだ本番環境で使うことはありませんが、検証環境ではガンガン試していきたいと思います!











