1.はじめに
Amazon Q Developer for CLI でAWS環境を操作できるようにしたく、WSL(Windows Subsystem for Linux)にAWS CLI v2 をインストールしました。
この一連の作業を記事に書きます。まずは、WSLのセットアップとAWS CLIのインストールまでを書きます。
本記事の内容は、2025年5月6日現在のAWS環境で試したものです。また、個人のAWSアカウントで検証した結果であり、個人の見解です。参考程度にとどめていただき、試す場合は自己責任でお願いいたします。
2.各種サービスについて
①WSL
Wikipediaの記事を簡単にまとめると、「Windowsマシン上でLinux仮想マシンを実行する仕組み」です。
②AWS CLI
コマンドラインでAWSを管理するツールで、v1(バージョン1)とv2(バージョン2)があります。
今回試そうとする、AWS CLIからAWS Identity Center を使ってシングルサインオン接続するためには、AWS CLI v2 が必要です。他にもv1とv2の違いは以下がありますが、今回は割愛します。
3.WSLのセットアップ
今回はUbuntuを実行できるようにします。
①PowerShellを管理者として実行します。
②WSLをインストールします。
wsl --install
インストールが完了したら以下の通り表示されますので、PCを再起動します。
③再起動後、再びPowerShellを実行します。
ここからは管理者権限でなくても問題ありません。
④Ubuntuをインストールします。
wsl --install -d Ubuntu
⑤Ubuntuがインストールされたことを確認します。
wsl -l -v
STATEが[STOP]と表示されていますので、起動する必要があります。
⑥Ubuntuを実行します。
wsl -d Ubuntu
以下のように表示されたら完了です。
4.AWS CLI v2のインストール及び認証設定
前提条件
- WSLのセットアップが終わっていること
- WSLを起動していること
- AWS IAM Identity Centerを利用中であること
- IAM Identity Center のユーザアカウントにMFA認証設定していること
PCにアクセスキー、シークレットアクセスキーを保存するのではなく、IAM Identity Centerでシングルサインオン(SSO)認証するよう設定します。
なお、本稿ではIAM Identity Centerの導入説明、MFA認証設定の説明は割愛します。
4-1.AWS CLI v2 のインストール
①インストーラーをダウンロードします
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
以下のような表示になったら、ダウンロード完了です。
②ダウンロードしたファイルを解凍します
unzip awscliv2.zip
③インストールスクリプトを実行します
sudo ./aws/install
少し時間がかかります。インストール完了したら、コマンドが打てるようになりますので、終わるまで待ちます。
④WSLを再起動します
sudo reboot
再起動せずに⑤を実行したところ、バージョンが表示されませんでした。一度再起動してから実行した方が良いと思います。
⑤インストールの確認をするために、AWS CLIのバージョンを確認します。
aws --version
以下のようにバージョンが表示されたら完了です。
aws-cli/2.27.8 Python/3.13.2 Linux/5.15.167.4-microsoft-standard-WSL2 exe/x86_64.ubuntu.22
4-2.シングルサインオン(SSO)設定
①SSO設定をするため、以下のコマンドを入力します。
aws configure sso
②以下の通り入力します。
項目名 | 入力内容 | 入力値例 | 備考 |
---|---|---|---|
SSO session name (Recommended) | SSOセッション名 | 任意の文字列 | |
SSO Start URL | IAM Identity CenterのトップURL | https[:]//XXXXXX.awsapps.com/start | リンクにならないよう : を[]で囲いました。実際にURLを入力する時には不要です。 |
SSO region | IAM Identity Centerで使っているリージョン | ap-northeast-1 | |
SSO registration scopes | スコープ | sso:account:access | 特に指定が無い場合は空欄で入力すれば、左記の値で設定されます。 |
SSO registration scopes の意味が、AWS公式ドキュメントを読んでも見当たりませんでした。今のところ、上記表の値(空欄)でも問題なさそうですが、この項目の意味と必要なシーンをご存じの方いらっしゃいましたら、教えていただけますと幸いです。
③コマンドラインに表示されるURLをブラウザで開きます。
④アクセス許可可否画面が表示されたら、「アクセスを許可」をクリックします。
⑤以下のような画面が表示されたらOKです。コマンドラインに戻ります。
⑥シングルサインしたいアカウントを選択します。
⑦SSOのプロファイルを入力します。
項目名 | 入力内容 | 具体的な値の例 | 備考 |
---|---|---|---|
default client Region [None] | 普段使っているリージョン | ap-northeast-1 など | |
CLI default output format | アウトプットフォーマット | JSON | 何も指定しなければ、JSON |
Profile name | SSOプロファイル名 | 任意の文字列 |
⑧以下の通り表示されたら設定完了です。
⑨プロファイル設定されたことを確認します。
cat ~/.aws/config
以下のように表示されます。
4-3.IAM Identity Center ログイン
①以下のコマンドを実行し、SSOログインします(以下のXXXXXXXにはプロファイル名を入れます)。
aws sso login --profile XXXXXX
②コマンドラインに表示されるURLをブラウザで開きます。
③サインイン画面が表示されたら、IAM Identity Centerのユーザアカウントでサインインします。
④サインイン完了したら、コマンドラインに以下のように表示されます。
Successfully logged into Start URL: https://XXXXXXXX.awsapps.com/start
以上が、AWS CLI v2インストール~SSO設定~ログイン の手順です。
5.試しにAmazon S3 の一覧を取得してみた
今回、私がSSO設定したIAM Identity Centerの権限セットは、Amazon S3(以下、S3)へのアクセスが可能なポリシを付与しています。試しに、S3のバケットの一覧を取得してみました。
まず、以下のようにS3バケットを準備します(S3バケットの作り方は割愛します)。
以下のコマンドを実行します(以下のXXXXXXXにはプロファイル名を入れます)。
aws s3 ls --profile XXXXXX
以下のようにS3バケットの一覧が表示されます。
これで、WSLからAWS CLI v2 にてAWS環境を管理することができるようになりました。
6.まとめ
WSLにAWS CLIをインストールし、IAM Identity Centerで認証するまでの手順を書きました。
AWS CLIをPCで実行するためとはいえ、アクセスキーとシークレットアクセスキーを作ってPCに保存するのは、今のIAMのベストプラクティスに反してセキュアではないので、やるのは躊躇していました。IAM Identity Centerでも認証情報の扱いには注意しなければなりませんが、アクセスキーを作るよりは安全だと思いました。
次回の記事では、Amazon Q Developer CLI をインストールする手順をまとめます。
最後まで読んでいただき、ありがとうございました!