記事公開日
新しく追加されたAWS CLIのaws login使ってみたらアクセスキーが不要になった!

はじめに
こんにちは。DXソリューション営業本部の岡田です。
AWS CLIを使用する際に必須なアクセスキーですが、
「アクセスキーをローカルPCに保存するのは不安」と感じる方は多いのではないでしょうか。
アクセスキーが流出してしまうと、不正アクセスによるデータ盗難や不正なリソースによる高額請求が発生してしまったりと重大なリスクがあります。
そんな中、先日AWS CLIで「aws login」がリリースされました。
「aws login」はブラウザ認証だけでAWS CLI認証をブラウザベースで行うことができるため、アクセスキーの管理、作成、使用に加えて、漏洩を心配する必要がなくなりました。
AWSマネジメントコンソールと同様の感覚でCLIが利用可能のため、ローカル環境に永続的なアクセスキーを保存する必要がなくなります。
AWS公式ドキュメント
今回は「aws login」を使用して、アクセスキーなしでAWS CLIを使用する手順をご紹介いたします。その実例としてSystems Manager(SSM)経由でWindows EC2にRDP接続する場合を例に具体的な使用手順をご紹介します。
構成図
前提条件
本手順では下記が前提となります。
①クライアント端末でWindowsを使用していること
②クライアント端末にSession Manager プラグインをインストールしていること
③クライアント端末にAWS CLI version 2.32.0以上をインストールしていること
④対象のEC2にIAMロール(AmazonSSMManagedInstanceCore)がアタッチされており、SSM Agentが稼働していること
Session Manager プラグイン CLIバージョン確認
手順はすべてクライアント端末で行います。
Session Managerプラグインは、ポートフォワーディングを実行するために必要です。最新バージョンの使用を推奨します。 インストール済みかどうかの確認およびバージョン確認は以下のコマンドで行えます。
インストールしてない場合は下記公式ドキュメントを参考にしてください。
aws loginはAWS CLI version 2.32.0以降で利用可能です。下記コマンドでバージョンを確認してください。
※2.31以下のバージョンを使用している方は上書きインストールが必要です。下記のAWS公式からインストール等を行ってください。
aws loginコマンド実践
CLI version 2.32.0以降であることを確認したらaws loginコマンドを実行しましょう。
先述した通り、今回は実演の例として「SSMのポートフォワーディングにフォーカス」するためSSM経由でWindows EC2にRDP接続します。
すでにセッションが残っている場合は、実施するとブラウザで下記のようなログインされているユーザーが表示されます。
ログインされている対象のアカウントをクリックします。
セッションがない場合は「Continue with Root or IAM user (ルートまたはIAMユーザーで続行)」をクリックするとマネジメントコンソールログイン画面へ遷移されるのでログインしてください。
下記のように認証情報が正常に共有された旨を伝える画面が表示されます。
※ログインしているアカウントとは別のアカウントを使用したい場合は「Sign into new session」で任意の新しいセッションからでもサインインできます。
プロンプト画面でもプロファイルの設定が完了した旨が表示されています。
Updated profile default to use arn:aws:sts::<AWS_ACCOUNT_ID>:assumed-role/<ROLE_NAME>/<SESSION_NAME> credentials.
これで、アクセスキーを一度も発行することなく、CLIを利用できる状態になりました。
ログインができたら、今回の実演例である「RDP接続」を試します。
通常、EC2へRDP接続するには踏み台サーバーやパブリックIPが必要ですが、SSMのポートフォワーディング機能を使えば、
CLI経由で安全に接続可能です。
以下のコマンドを実行して、ローカルポート(11111)をEC2のRDPポート(3389)に転送します。
実行すると下記表示されました。
Starting session with SessionId: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Port 11111 opened for sessionId xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Waiting for connections...
Waiting for connectionsと表示されています。
この状態で、リモートデスクトップ接続クライアントを起動し、接続先に localhost:11111 を指定すれば、無事にWindowsのデスクトップ画面が表示されます。

セッションが成功すると
と表示されました。
アクセスキーを払い出すことなく、AWS CLIを使用でき、SSM接続でEC2に接続が可能であることが確認できました。
まとめ
アクセスキー vs aws login
| 項目 | アクセスキー | aws login |
|---|---|---|
| キー管理 | 必要 | 不要 |
| 漏洩リスク | 細心の注意が必要 | 低い |
| 操作性 | △ | 〇 |
AWS CLIを使用したいけど「アクセスキーの管理、作成、使用が億劫」と感じていた方や「アクセスキーの漏洩が不安」という方は少なくないと思います。
aws loginが登場したことにより、それらの心配をする必要はなくなりました。
ブラウザの認証情報をCLIに持ち込めるのはとても便利です。
そして便利になるだけではなく、セキュリティ向上、運用効率の向上にも期待できます。
アクセスキーの漏洩を不安に抱えたまま運用している方や運用効率を上げたい方ははぜひ一度お試しください!
もし「このサービスについて知りたい」「AWS環境の構築、移行」などのリクエストがございましたら、弊社お問合せフォームまでお気軽にご連絡ください。 複雑な内容に関するお問い合わせの場合には直接営業からご連絡を差し上げます。 また、よろしければ以下のリンクもご覧ください!
<QES関連ソリューション/ブログ>
<QESが参画しているAWSのセキュリティ推進コンソーシアムがホワイトペーパーを公開しました>
※Amazon Web Services、”Powered by Amazon Web Services”ロゴ、およびブログで使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。


