はじめに
Qiitaの記事を参考にAWS SSMのセッションマネージャーを試しに使ってみようと思います。
📰:図解で、もう踏み台要らずAWS SSM経由Windowsサーバーにリモートデスクトップ接続 - Qiita
AWS Systems Managerとは
Qiitaの記事から読み取れたことは以下3点です。
これだけではよくわからないので公式ドキュメントを読んで見ました。
💬:AWS Systems Manager は、以前は Amazon Simple Systems Manager (SSM) および Amazon EC2 Systems Manager (SSM) と呼ばれていました。
引用:AWS Systems Manager とは何ですか? - AWS Systems Manager
AWS Systems Managerでできること
AWS Systems Managerでは
- 複数の AWS のサービスのオペレーションデータを表示
- AWS リソース間でオペレーションタスクを自動化
- マネージドインスタンスをスキャンして、ポリシーの違反が検出された場合にはレポート (または是正策の措置) を行うことで、セキュリティを維持
することができるそうです。
AWS環境外のマシンも制御することができます。
サポートされているOSも幅広く汎用的なOSであれば問題なく使えそうです。
- Windows Server
- 複数の Linux ディストリビューション
- Raspbian
Systems Managerの機能
Systems Managerはシステム運用に役立つさまざまな機能の集合体で、その機能は5つにカテゴライズされます。
- オペレーション管理
- アプリケーション管理
- アクションと変更
- インスタンスとノード
- 共有リソース
詳細の機能は膨大な量があるのでSystems Manager の機能を直接参照してください。
ちなみにセッションマネージャーはインスタンスとノードにカテゴライズされる機能でした。
なんとなくのイメージは以下の図を見て付けておいた方があとあと混乱しないかもしれません。
引用:Systems Manager の仕組み - AWS Systems Manager
料金
機能ごとにさまざまです。今回使いたいセッションマネージャーは追加料金なしで利用可能でした。
参考:料金 - AWS Systems Manager | AWS
使ってみる
なにはともあれとりあえず使ってみます。
インストール
アクセス先のサーバにエージェントを導入する必要があります。
Linuxインスタンスにエージェントを追加
参考:Linux 用の EC2 インスタンスに手動で SSM エージェント をインストールする - AWS Systems Manager
エージェントをインストールします。
$ sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
起動を確認します。
$ sudo status amazon-ssm-agent amazon-ssm-agent start/running, process 30675
SSMの設定
検索窓からSystems Managerを選択します。
おもむろにGet Started
クリックします。
画面左上に高速セットアップ
とあるのでこれをクリックします。
⛔:すでにSystems Manager Quick Setup
が表示されている場合はこの手順不要。
画面右上のEdit all
をクリックします。
Permissions
デフォルトのままでOK。
Quick Setup options
CloudWatchを使う場合は下2つにもチェックを入れる。使わない場合はデフォルトのままでOK。
✅:今回はデフォルトのままでやりました。
Targets
Specify instance tags
を選択し、対象とするインスタンスを識別するためのタグssm-quick-setup
と値On
を入力します。
最後に画面右下のReset
をクリックします。
😃:リセットと聞くとなんだか設定が全部消えちゃいそうな気になりますが大丈夫です。気にせずクリックしてください。
インスタンスへのタグ付け
接続対象のインスタンスに、セッションマネージャーでインスタンスを識別するためのタグキーssm-quick-setup
と値On
を入力します。
IAMロールの紐付け
対象のインスタンスにIAMロールを紐付けます。紐付けはアクションメニューから可能です。
✅:高速セットアップによって [AmazonSSMRoleForInstancesQuickSetup] というIAMロールが作成されているはずです。
設定確認
💡:IAMロールを付与してから反映されるまでに時間がかかるようなのでしばらく待ってから確認しましょう。
設定に成功するとSystems Manager Quick SetupのManaged Instanceに成功
が表示されます。念のためView Details
を開き、リソースタブに意図したインスタンスが表示されていることを確認してください。
セッションマネージャー
さて、あとは接続するだけです。
左ペインのインスタンスとノードからセッションマネージャーをクリックします。
セッションを開始するをクリックします。
接続したいインスタンスを選択してセッションを開始するをクリックします。
ブラウザに黒い画面が表示されれば成功です。お疲れさまでした。
追記(2020/05/17)
⚠EC2インスタンスを起動してからセッションマネージャーが認識するまで感覚ですが5分程度のタイムラグがあります。
おわりに
AWS CLIを使っている場合はAWS CLIからSSMを介してつなぐことができます。これでインターネットにSSHを開放せずに済むようになります。AWS CLIはまたの機会に触ってみようと思います。
以上