私の戦闘力は53万です

awsとgcpについて書きます

AWS 踏み台なしで接続 SSMセッションマネージャ

AWSではSSMセッションマネージャーを使うことで
踏み台サーバなしでPrivateのEC2へ接続できます。
 
ザックリとしたサンプル手順は下記のようになります。
 
1)VPCエンドポイントを作成
2)EC2のIAM設定
3)NW設定(EC2,VPCendpointのセキュリティグループ設定)
4)SSM Agentのアップデート
5)セッションマネージャ実行
 
下記詳細を紹介します。 

1)VPCエンドポイントを作成 

もしNATゲートウェイを利用している場合はここはスキップで問題ありません。
 
完全プライベートなsubnetの場合、VPCエンドポイントを作成します
(1) com.amazonaws.region.ssmmessages: 
(2) com.amazonaws.region.ec2messages:
  このエンドポイントを通じて、
  Systems Manager は SSM エージェントから 
  Systems Manager サービスへの呼び出しを行います。
 
VPCのページからエンドポイントを作成します。

f:id:remmemento:20191210064643p:plain

 
 
2)EC2のIAM設定
EC2をIAM Roleを設定します。
ポリシー名「AmazonEC2RoleforSSM」が付与されたIAMロールをEC2へ適用します
 
ロールの作成

f:id:remmemento:20191210064706p:plain

f:id:remmemento:20191210064726p:plain

f:id:remmemento:20191210064850p:plain

 
 
上記をEC2へ適用します

f:id:remmemento:20191210064809p:plain

 
 
 
3)NW設定(EC2,VPCendpoint)
VPCエンドポイントのセキュリティグループのインバウンド設定に、
EC2に設定したセキュリティグループIDを設定します。

f:id:remmemento:20191210064918p:plain

 
 
4)SSM Agentのアップデート
必要があれば、SSMのAgentをアップデートします
Run CommmandにAWS-UpdateSSMAgentがあるため、
こちらを対象のEC2に実行します。
もしランコマンドの画面で対象のEC2が画面に出てこなかったら
手動でEC2にログインし、Agentをアップデートします。
方法は下記を参照ください。
この場合は外部との通信が可能なようネットワーク設定を一時的に更新します。
 

f:id:remmemento:20191210064936p:plain

 
 
 
5)セッションマネージャ実行
準備ができたら接続します。
セッションマネージャから対象のインスタンスを選択し、
セッションの開始を実行します。

f:id:remmemento:20191210064958p:plain

おまけ
#ログイン後、ルート昇格もできるようです
sudo -s
[root@ip-172-30-1-65 ssm-user]#
 
#ルート昇格もできるようです
sudo -s
[root@ip-172-30-1-65 ssm-user]#
 
#https overでsshを実現しているようですね
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 ip-172-30-1-65.ap:35812 ip-172-30-0-5.ap-:https ESTABLISHED
tcp        0    929 ip-172-30-1-65.ap:35790 ip-172-30-0-5.ap-:https ESTABLISHED
tcp        0      1 ip-172-30-1-65.ap:60166 54.240.225.173:https    SYN_SENT
tcp        0      0 ip-172-30-1-65.ap:42598 ip-172-30-1-38.ap:https ESTABLISHED
 
#また、セッション履歴も残るため、ログイン履歴等もAWS側から管理できます
 

f:id:remmemento:20191210065021p:plain

Windowsの場合はPowershellになるため、GUIでの操作はできませんが、
Linuxであれば踏み台いらずなのはかなり良いと思います。
ぜひ機会があればお試しください。