はじめに
AWS Systems Manager Session Managerとは、
- 「AWSシステムマネージャー」サービスの一つであるところの、「セッションマネージャー」という機能である(石を投げないで!)。
- これはAWS管理コンソールやAWSCLi等によりEC2やECS等のインスタンスにアクセスまたはログインするための機能である。
- この機能を使用してインスタンスへアクセスすると、(グローバルIPでの)受信ポートの維持や、踏み台サーバーの用意、SSH鍵の管理といった準備が不要になる。
- バックエンドで稼動するインスタンスが多く、グローバルに公開して無い場合や、孤立した、いわゆるプライベートネットワーク内に設置されたサーバーにアクセスする場合に嬉しい、あるいは必要となる機能である。
- またIAMユーザー(あるいはグループ)単位でアクセス制御が可能となるため、権限設定がワンストップで行える。
- ただし、この機能の利用にあたり、対となる Session Manager Agent のインストールが必要で、サーバーのコンソール画面にアクセスできるというものではない。
- またIAMポリシーによるアクセス制御、各種サービス(クラウドトレイル、クラウドウォッチ等)と連携してログ記録・監査が可能である。
インストール
2021年10月29日現在portsでは提供されていない。- 2023年01月18日にportsに取り込まれた。
- 以後
pkg install amazon-ssm-plugin
で一発インストール可能である。 - 使用時に必要となるケアは可能な限り施したつもりである。
使用方法
権限の話とか、エージェントの話をすっとばして話をすると、ごくシンプルに下記のようにして実行すればよい。
どのプロファイルを使うのか、リージョンの指定等については、aws コマンドの仕様に準拠する。
aws ssm start-session --target インスタンスID
本ports作成のモチベーション
- Windowsターミナルで操作していたが略。
- Linux環境はほぼ開発環境なので、運用に適した(複数案件のアクセスキーを収納するような)サーバーが手元には無かった。
- ドキュメントのFreeBSD除外感。
- 昔ドキュメントを読んでたときには無かったGitHubへのリンク。GitHubを見るとそこにはコードが…。
- 作るしか無いな。この無限の荒野に。
参考文献
- amazon-ssm-plugin Amazon AWS Manages shell experience using SSM APIs
- AWS Systems Manager Session Manager
- (オプション) AWS CLI 用の Session Manager プラグインをインストールする
- ステップ 8: (オプション) Session Manager を通じて SSH 接続を有効にする
- セッションを開始する
- SSM エージェントを使用する
- aws/session-manager-plugin: This plugin helps you to use the AWS Command Line Interface (AWS CLI) to start and end sessions to your managed instances