Systems Manager Session Manager - SSH/RDPが不要になる(かもしれない)新機能の話

記事タイトルとURLをコピーする

こんにちは。マネージドサービス課の橋本です。

本日、New – AWS Systems Manager Session Manager for Shell Access to EC2 Instances というリリース記事の発表がありました。私の課内でもちょっとしたニュースになっており、軽く触ってみましたので簡単にご報告します。

どのような機能なのか

SSMエージェントを介してEC2インスタンスにリモート接続を行えるようにする機能です。この機能を使ってリモート接続を行う前提ならば、煩わしい踏み台サーバーも撤去できる可能性があります。

リモートアクセスの方法は、マネジメントコンソールのSystems Managerの画面から、もしくはお手元のAWS CLIを介してかの2通りがあります。

Linux/Windowsともに対応しています。Linuxであればbash、WindowsであればPowerShell環境が利用できます。

どのようなメリットがあるか

これまでのオペレーションでは、オペレーターがEC2インスタンスの中で作業を行うためには作業拠点からのインバウンドアクセスを許可する必要がありました。

この従来方式に対して、Session ManagerではSSM AgentからSystems Manager エンドポイントへの通信によってセッションを確立します。そのため、セキュリティグループのインバウンドルールを開ける作業は不要になります。「作業を行うため一時的にファイアウォールに穴を開けたが、作業後に閉め忘れた」などという、ありがちなヒューマンエラーはSession Managerを使うことで撲滅できます。

セキュリティグループによる制御から開放される一方、それに不安を覚える方もいらっしゃると思います。Session Managerでは、その役割はIAMポリシーが代替することになります。IAMの設計がしっかりできていれば問題はない、と言えそうです。

また、今までの方法は、前述したようにヒューマンエラーのリスクが伴います。それを潰せる仕組みであることは非常にメリットが大きいのではないかなと考えています。

どのように利用するか

こちらについては、公式アナウンスが既に画面キャプチャを添えて解説していますので、そちらに譲ります。記事の中段以降をご覧ください。

利用開始にあたって

とりあえず試してみたい!という方に向けて、利用前の注意として以下をご案内いたします。

In order to use Session Manager to access my EC2 instances, the instances must be running the latest version (2.3.12 or above)

SSM Agentのバージョンは 2.3.12 以上である必要があります。既存のインスタンスに対して適用する場合は、Run Commandの「AWS-UpdateSSMAgent」を利用するなどして適宜バージョンアップする必要があります。

The SSM Agent running on the EC2 instances must be able to connect to Session Manager’s public endpoint. You can also set up a PrivateLink connection to allow instances running in private VPCs (without Internet access or a public IP address) to connect to Session Manager.

対象となるインスタンスが、SSMのパブリックエンドポイントに到達性を持っていることが必要です。ただし、これに該当しない場合であっても、Private Link(※)を利用することで本機能の利用が可能です。

To use the AWS CLI to run session commands, you must be using version 1.16.12 of the CLI, and you must have installed the Session Manager plugin on your local machine. For information, see (Optional) Install the Session Manager Plugin for the AWS CLI.

上記はAWSドキュメント Learn More About Session Manager の「What Are the Main Features of Session Manager?」節からの引用です。

AWS CLIから本機能を利用する場合は、CLIバージョン、ならびにSession Manager用のプラグインのインストールが必要となります。プラグインインストールは、バンドルをダウンロードし、展開後にインストールスクリプトを実行するだけのごく簡単な手順です。 こちら にインストールガイドがありますので、ご参照ください。

おわりに

非常に魅力的な新機能ですね。ヒューマンエラーをこのような仕組みによって潰していくことが、負荷の低い、理想的な運用の実現に役立つと思います。このような効率化を自社内でも行いながら、お客様に還元していけたらと思います。

実運用に乗せるためには詳細に検証項目を詰めていく必要がありますし、現場の運用手順との兼ね合いも考えていく必要があるかと思いますので、今後とも本機能の検証は続けていきたいと思います。続報があれば、このブログなど、何らかの形でアナウンスできればと思います。

※ ... Private Linkについては、以前に弊社の城がブログ記事を書いておりますので、よければそちらも併せてご参照ください。

参考: 【VPC エンドポイントサービス (AWS PrivateLink)】オンプレから既存インスタンスのIPを別クラスのIPとして通信する検証をしてみました。