セッションマネージャー(SSM)を利用してEC2へのアクセスを行う

はじめに

本記事ではAWSのセッションマネージャー(SSM)の機能を利用してEC2へアクセスを行う方法について説明します。

セッションマネージャーという名前を稀に見かけるけど、どういうものか理解していなかったという方や、これから設定して使ってみようという方向けの記事となります。

セッションマネージャーを使うとEC2にSSHアクセスするための秘密鍵がなくても、安全にEC2にアクセスすることが可能です。また、パブリックIPアドレスを持たないプライベートサブネットに設置されたEC2についてもこのセッションマネージャーからアクセスすることが可能です。

実施内容(共通)

IAMロール作成

セッションマネージャーを利用するには、EC2がセッションマネージャーにアクセスするためのIAMロールを作成し、EC2インスタンスのIAMロールとして設定する必要があります。

IAMのサービスのロールタブから「ロールの作成」をクリックします。

作成するロールはEC2のものですのでこの画面ではEC2を選択し、次の設定に進みます。

アタッチするポリシーは AmazonSSMManagedInstanceCore となりますのでフィルターかけて設定して下さい。注意点として、ここで設定するポリシーはあくまでセッションマネージャー利用してEC2インスタンスにアクセスするためだけのものとなります。その他のシステムマネージャの機能を利用する場合は他のポリシーが必要となることがあることのご注意下さい。

タグの設定は任意です。最後にロール名とロールの説明を入れてロールの作成を完了します。

IAMロールのアタッチ

EC2のサービスにて、セッションマネージャを利用してアクセスしたいEC2インスタンスを表示し、作成したIAMロールを設定します。

IAMロールはEC2の作成時に設定可能ですが、後で設定する場合には、「アクション」「セキュリティ」のメニューから「IAMロールを変更」を選択して下さい。

こちらの画面で先ほど作成したIAMロールを設定し、保存をクリックして下さい。

これでIAM関連の設定は完了です。

SSMエージェントのインストールと起動

こちらについては今回は省略します。私が自分のアカウントでテストするAmazon Linux or Ubuntuではどちらもプリインストールされておりますので、インストールおよび起動については不要であったためです。

こちらを期待されていた方には申し訳ありません。公式のこちらのサイトをご参照下さい。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/sysman-manual-agent-install.html

実施内容(パブリックサブネットのEC2向け)

動作確認

ここまで正常に設定が行えていれば他に設定は特に必要ありません。EC2インスタンスの画面から「接続」をクリックします。

※ここではパブリックサブネットに設置されたEC2を対象としています。

ここのセッションマネージャーのタブから接続がクリック出来るようになっているはずです。

※設定が正常であっても、すぐにセッションマネージャーが利用可能となるわけではなく、少し時間がかかるようです。少し時間をおいても接続ボタンを押せない場合は、インスタンスの再起動を試してみて下さい。特に起動中のインスタンスに対してロールを設定した後は再起動した方が良さそうです。

問題がなければ以下のように表示されるはずです。

これでパブリックサブネットに設置されたEC2へのアクセスは完了しました。

実施内容(プライベートサブネットのEC2向け)

VPCエンドポイントの作成

プライベートサブネットのEC2にアクセスするにはVPCエンドポイントを作成する必要があります。このVPCエンドポイントにも種類がありますが、今回はAWS PrivateLinkとも呼ばれるインタフェースエンドポイントを作成します。

最初にVPCのサービスのエンドポイントのページを開いてください。こちらからエンドポイントの作成を行っていきます。

ここで作成していくエンドポイントは下記の3つとなります。

  • com.amazonaws.ap-northeast-1.ssm
  • com.amazonaws.ap-northeast-1.ssmmessages
  • com.amazonaws.ap-northeast-1.ec2messages

黄色塗りつぶしの箇所は利用しているリージョンにより異なります。ここでは東京リージョンの例としています。

これらを一つずつ設定していきます。VPCとサブネットについてはEC2が設置されているVPC、サブネットを設定して下さい。

プライベートサブネットは有効のままにし、セキュリティグループはHTTPS(ポート番号:443)が開いているセキュリティグループを選択して下さい。

他の項目は設定せずとも動きますので、このまま画面一番下の「エンドポイントの作成」をクリックして下さい。

この手順で上記に記載したエンドポイントを3つ作成して下さい。作成には少し時間がかかりますが、完成すると以下のような表示になるかと思います。

補足となりますが、私の設定したセキュリティグループは以下のような形です。VPC内でHTTPS(ポート番号:443)を許可するような設定が必要となります。

ここでVPCエンドポイントの作成は完了となります。

動作確認

ここまで設定が出来ていれば、パブリックサブネットのEC2と同様の方法で、セッションマネージャー経由でEC2インスタンスへのアクセスが可能になっているかと思います。

さいごに

本記事ではセッションマネージャー(SSM)を利用したEC2インスタンスへのアクセス方法について説明致しました。

もしEC2インスタンスに一括でパッチを充てるパッチマネージャー等を利用する場合には上記説明とは異なるポリシーをIAMロールにアタッチする必要があったりとまだまだ学ぶことが多いです。

こちらはまた別の機会に記事にしたいと思います。ではまた。