AWS Private SubnetのEC2インスタンスへのアクセス
- 2019.09.26
- AWS
![AWS Private SubnetのEC2インスタンスへのアクセス](https://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.37.00.png)
はじめに
前回、Public SubnetとPrivate Subnetの環境を構築してEC2インスタンスをそれぞれ作成しました。ですが、Private SubnetにあるEC2インスタンスにはアクセスできない状態のままでした。
今回は、Private Subnet にあるEC2インスタンスにアクセスできるようにしてみたいと思います。
PrivateなEC2インスタンスへアクセスする方法
これまではこのようなPrivateなSubnetにあるEC2インスタンスにアクセスするためには、VPNを作ったり、Bastion ホスト(踏み台)を作ったりする必要がありましたが、最近ではAWS Systems Manager セッションマネージャーによる接続ができるようになったようです。
今回は、このAWS Systems Manager セッションマネージャーによる接続を試してみたいと思います。
SSMエージェントについて
セッションマネージャーでログインするには、ログインされる側にSSMエージェントをインストールする必要があるようですが、現在使用しているEC2 インスタンスはAmazon Linux2 AMI で、デフォルトでSSMエージェントがインストールされているようです。
そのため、今回はSSMエージェントのインストールは省きます。
AWS Systems Manager セッションマネージャーによるログイン方法
AWS Systems Manager セッションマネージャーによるログイン方法は2通りあって、一つはAWSマネジメントコンソールから行う方法と、AWS CLIを使う方法です。
AWS CLIについては、もう少し慣れてから使っていきたいと思っているので、ここではAWS マネジメントコンソールを使った接続方法を試してみたいと思います。
IAMロールの設定
AWS Systems Manager セッションマネージャーで接続するには、IAMロールの設定が必要です。
AWSマネジメントコンソールより、IAMを検索してロールを開きます。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-11.43.44-991x1024.png)
[ロールの作成] をクリックし、EC2 を選択します。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-11.44.50.png)
ポリシーからssmと検索し、AmazonEC2RoleforSSMを選択します。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.28.53-1024x813.png)
分かりやすい名前をつけてロールを作成します。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-11.50.22-1024x659.png)
次にEC2コンソールを開きます。
AWS Systems Manager セッションマネージャーで接続したい、EC2インスタンスを選択した状態で、[アクション] – [インスタンスの設定] – [IAM ロールの割り当て/置換] を開きます。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-11.53.15-1024x639.png)
先ほど作成したIAMロールを割り当てます。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-11.56.04-1024x436.png)
VPCエンドポイントの作成
インターネットに接続されているEC2インスタンスならVPCエンドポイントを作成する必要はありませんが、インターネットに接続されていないEC2インスタンスに接続する場合は次のようにVPCエンドポイントを作成する必要があります。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.37.00-1024x716.png)
AWSマネジメントコンソールよりVPCを開き、エンドポイントを開きます。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.38.17-575x1024.png)
インターフェースの作成
まずは、ここで次の3つのインターフェースを作成します。
- com.aws.リージョン名.ssm
- com.aws.リージョン名.ssmmessage
- com.aws.リージョン名.ec2message
[エンドポイントの作成] をクリックしてください。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.44.45.png)
サービス名を選択します。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.45.57-1024x838.png)
EC2インスタンスがあるVPCを選択し、EC2インスタンスにアクセスできるサブネットを選択します。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.47.02-1024x407.png)
ここでは新しいセキュリティグループを作成します。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.49.44-1024x433.png)
作成したセキュリティグループに対して次のインバウンドルールを追加します。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.50.45-1024x365.png)
作成したセキュリティグループを選択し、[エンドポイントの作成] をクリックします。
同様にして残り2つのセキュリティグループも作成します。
ゲートウェイの作成
作成するゲートウェイは1つです。エンドポイントの作成と基本は同じですが、若干設定する箇所が違います。ここでは次のゲートウェイを作成します。
- com.aws.リージョン名.s3
[エンドポイントの作成] をクリックします。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.55.56-1024x670.png)
EC2インスタンスがあるVPCとサブネットを選択します。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.56.35-1024x453.png)
ポリシーはフルアクセスにして、[エンドポイントの作成] をクリックします。
AWS Systems Manager セッション マネージャーからセッションの開始
AWSマネジメントコンソールからSystems Managerを開きます。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-11.57.25-1024x827.png)
セッションを開きます。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-11.59.57-1024x979.png)
[セッションの開始] をクリックします。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-12.00.36-1024x655.png)
対象のEC2インスタンスが表示されたら、対象のEC2インスタンスを選択し、[セッションの開始] をクリックします。
ここでなかなか表示されない場合は、EC2インスタンスを一度再起動してみてください。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-15.58.55-1024x412.png)
アクセスできました。
![](http://waku.nagoya/wp-content/uploads/2019/09/スクリーンショット-2019-09-26-16.04.16-1024x488.png)
ただ、どうもSafariだとキー入力を受け付けてくれないようでした。Chromeでやったら問題ありませんでした。
-
前の記事
Public SubnetとPrivate Subnetを使ったVPCネットワークの構築 2019.09.25
-
次の記事
AWS サイト間のVPN接続 2019.09.30