2017年に書いたポートの開放することなく、Respberry Piに外からアクセスするの第2弾です。
自宅に設置したRaspberry Piに外出先からアクセスしたいことってありますよね。
でも、そのためだけにルーターのポートを解放するのも、セキュリティが心配。
今回はAWS Systems Manager Session Managerを使う方法をご紹介します。
SSHもVNCもポートの開放も不要ですよ!
AWS Systems Manager Session Managerとは
公式サイトによると
Session Manager はフルマネージド型 AWS Systems Manager 機能であり、インタラクティブなワンクリックブラウザベースのシェルや AWS CLI を介して Amazon EC2 インスタンス、オンプレミスインスタンス、および仮想マシン (VM) を管理できます。
基本的にはEC2へのログインに使うと便利なものですが、実はSystems Managerはオンプレ環境でも使用でき、Session Manager機能もEC2でなくても利用できるのです。
導入手順
以下、手順を追って説明します。
IAMサービスロールを作成する
IAMロールを作成します。
項目 | 内容 |
---|---|
名称 | SSMServiceRole(任意の名前) |
ポリシー | AmazonSSMManagedInstanceCore(AWS 管理ポリシー) |
信頼関係 | ssm.amazonaws.com |
アクティベーションを作成する
Raspberry PiにSSMエージェントをインストールする際に必要なアクティベーションキーを作成します。
マネジメントコンソールのハイブリッドアクティベーション
メニューから作成します。
項目 | 内容 |
---|---|
インスタンス制限 | 1(任意の数) |
IAM ロール | SSMServiceRole(上の手順で作ったもの) |
デフォルトのインスタンス名 | Raspberry Pi(任意の名前) |
作成したあと、画面上にアクティベーションコード
とアクティベーションID
が表示されるのでメモしておきます。
SSMエージェントをインストールする
ここはRaspberry Pi上での作業となります。
mkdir /tmp/ssm
sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_arm/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb
sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb
sudo service amazon-ssm-agent stop
sudo amazon-ssm-agent -register -code "[activation-code]" -id "[activation-id]" -region "ap-northeast-1"
sudo service amazon-ssm-agent restart
[activation-code]
と[activation-id]
は前の手順でメモしたものを使用します。
これで設定は完了です。
設置が完了すると、Session ManagerのマネージドインスタンスのところにRaspberry Piが追加されます。
接続手順
Session Managerのマネージドインスタンスのところでインスタンスを選択し、アクション
-> Start Session
を選択すると、ブラウザ上でターミナルの画面が表示されます。
これ、ブラウザの画面です。すごいですね。su - pi
とすることでpi
ユーザーへの切り替えもできます。
これでいつでもどこでもRaspberry Piと一緒です。
SSHもVNCも不要です。すごいですね。