今回は「Session Manager (SSM) を使って EC2 へアクセスする方法 (publicサブネットの場合)」についてまとめます。
この Session Manager を使ってEC2へアクセスできるようになると、これまで 22ポート (SSH) を開放していたものが解放しなくてよくなります。 また、実質的な踏み台サーバーを AWS が提供していることになるので、踏み台も準備不要になってちょっと便利になります。
概要
Systems Manager にある Session Manager (SSM) を利用して EC2 へアクセスするための準備から接続方法についてまとめてみます。
さて、今回まとめとして取り上げるのは以下のような「EC2にパブリックIPを付与する環境構成に対してアクセスするケース」で見ていきます。 EC2にパブリックIPが付与されているので、外回りでEC2へアクセスするようなケースになります。
サーバー準備
VPC
SSMを利用しようとすると、VPCのDNS解決が有効でないとアクセスできません。 デフォルトで有効になるはずですが…作成する際は「DNS解決」が「有効」であることを確認してください。
パブリックIPを利用してSSMによるEC2アクセスを行おうとすると、VPCには Internet Gateway が設定されており、 Internet Gateway へのルーティングが設定されている必要もあります。 Internet Gateway とそこへのルーティングがないと外との通信はできません。
VPC
DNS解決 | 有効 |
---|
サブネット
ルートテーブル |
以下の設定が入っていること
|
---|
インターネットゲートウェイ
状態 |
Attached 。新規作成して、作成済VPCにアタッチされていること
|
---|
Systems Manager
初期化がまだであれば「高速セットアップ」から初期化を行います。 一度初期化を行っていたとしても、「高速セットアップ」はダッシュボードとして状況が見えるので再設定する際もこちらから行うと便利です。
基本的にはデフォルトのままでOKですが、Configuration Options に関してはチェックなしでも問題ありません。 Targetsに関してはさすがに「Choose all instances in the current AWS account and Region」か「Specify instance tags」でないとEC2が増減したとき毎回対応になって面倒になります。
高速セットアップ
Permissions |
Instance profile role
Assume role for Systems Manager |
---|---|
Configuration options | 内容は定期的なシステムチェックをするかどうか、なので全部チェックを外しても問題ありません。 更新や状況を確認したいものがあればチェックを入れておきます。 |
Targets | 内容は定期的なシステムチェックをするかどうか、なので全部チェックを外しても問題ありません。 更新や状況を確認したいものがあればチェックを入れておきます。 |
IAM
EC2に設定が必要なアクセス権は AmazonSSMManagedInstanceCore
ポリシーになります。
AWS EC2 向けロールに対してあらかじめ追加しておきます。
Sysmtes Manager で初期設定している場合、 AmazonSSMRoleForInstanceQuickSetup
ロールが追加されています。
このロールにはあらかじめ AmazonSSMManagedInstanceCore
が追加されているので、このロールを活用してもOKです。
ロール
ロール名 |
AmazonSSMRoleForInstancesQuickSetup
|
---|---|
信頼されたエンティティ | AWS サービス:ec2 |
アクセス権 | AmazonSSMManagedInstanceCore
|
Security Group
EC2に付与するセキュリティグループにはHTTPSで外へ出られる設定をしておく必要があります。
あらかじめ「アウトバウンド433
(HTTPS)で送信先 0.0.0.0/0
」設定があるセキュリティグループを準備しておきます。
アウトバウンドルール
タイプ | プロトコル | ポート範囲 | 送信先 |
---|---|---|---|
HTTPS |
TCP |
443 |
0.0.0.0/0 |
EC2
Amazon Linux を使わない場合、独自に Session Manager Plugin をインストールする必要があります。 Amazon Linux は最初から入っているので特に気にする必要はありません。 今回は Amazon Linux 前提で進めていきます。
とはいえ、すでに必要な準備は終わっているはずなので、あとは組み合わせてEC2を起動するだけです。 EC2作成時には以下のような設定を行います。
Step3: インスタンスの詳細の設定
ネットワーク | (作成したVPCを設定します。このVPCは「DNS解決が有効」である必要があります。) |
---|---|
サブネット | (作成した publicサブネット を指定します。 このサブネットは Internet Gateway 経由で外へアクセスできる必要があります) |
自動割り当てパブリックIP |
有効
|
IAMロール |
AmazonSSMManagedInstanceCore ポリシーを含むロールを指定します。
Systems Manager の高速セットアップをデフォルト設定で利用した場合 AmazonSSMRoleForInstancesQuickSetup ロールになります。
|
Step6: セキュリティグループの設定
セキュリティグループ | https(443) が外へ出られるようにしておきます。 |
---|
接続確認
接続方法もいくつかありますが、今回は単純にマネジメントコンソールから接続する方法を見ておきます。 他の方法については別途記事を書こうと思います…。
EC2のマネジメントコンソールから接続
SystemsManagerのセッションマネージャーからも接続できますが…今回はEC2のページから接続する方法を見ていきます。
この方法で接続すると ssm-user
をいうユーザーで接続します。
-
「EC2」へ遷移
-
「インスタンス」を開く
-
接続したいインスタンスを選択
-
「接続」を選択
-
「セッションマネージャー」を選択して、「接続」を押下
今回は「SSM を使って EC2 へアクセスする方法 (publicサブネットの場合)」についてまとめました。 参考になったでしょうか? 本記事がお役に立っていると嬉しいです!!
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!