おれさまラボの実験ノート

実際に手を動かして理解を深めるブログ。

AWS SSM セッションマネージャーを使ってみる

はじめに

Qiitaの記事を参考にAWS SSMのセッションマネージャーを試しに使ってみようと思います。

📰:図解で、もう踏み台要らずAWS SSM経由Windowsサーバーにリモートデスクトップ接続 - Qiita

AWS Systems Managerとは

Qiitaの記事から読み取れたことは以下3点です。

  • AWS Systems Manager = AWS SSM
  • セッションマネージャというのがSSMの1機能として存在する模様
  • プロキシ環境下でもRDPとかSSH接続ができるっぽい

これだけではよくわからないので公式ドキュメントを読んで見ました。

参考:AWS Systems Manager


💬: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であれば問題なく使えそうです。

参考:サポートされるオペレーティングシステム

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はまたの機会に触ってみようと思います。

以上