🧇
Raspberry Piに外部からセキュアに接続する
今回のユースケースとして出先のPCから自宅のRaspberry Pi(以下「ラズパイ」と略します)にセキュアにアクセスするためにはどうしたらいいかと疑問に思いやってみることにしました。
どうやってやるのか
結論からいうと、AWS Systems Manager(以下「SSM」と略します)を用いて、ラズパイに接続できるみたいです。
こちらの記事を参考にさせていただきました。ありがとうございます。
技術スタック
RaspberryPi上でUbuntu 22.04 LTS Desktopを動かしています。
手順
記事やドキュメントを参考に手順をまとめてみました。
- AWSでSSM用のIAMサービスロールを作成する
- AWSでマネージドノードのアクティベーションを作成する
- ラズパイでSSMエージェントをインストールする
- SSMからラズパイに接続する
案外簡単そうですね、、、。
詳細を書いていきます。
AWSでSSM用のIAMサービスロールを作成する
アクティベーションを作成するためにサービスロールを以下内容で作成しました
項目 | 内容 |
---|---|
名称 | SSMInstanceProfile(任意の名前) |
ポリシー | AmazonSSMManagedInstanceCore(AWS 管理ポリシー) |
信頼関係 | ssm.amazonaws.com |
AWSでマネージドノードのアクティベーションを作成する
ラズパイにSSMエージェントをインストールするためにアクティベーションを作成しておく必要があるのでこちらは以下内容で作成する
項目 | 内容 |
---|---|
インスタンス制限 | 1(任意の数) |
IAMロール | SSMInstanceProfile(上記で作成したロール名) |
デフォルトのインスタンス | RaspberryPi(任意の名前) |
ラズパイ上でSSMエージェントをインストールする
ラズパイ上で上記の手順でメモをした<activation-code>と<activation-id>を用いてSSMエージェントをインストールします。
▼以下はUbunutのパターンです
mkdir /tmp/ssm
curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/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 -E amazon-ssm-agent -register -code "<activation-code>" -id "<activation-id>" -region "region"
sudo service amazon-ssm-agent start
これで設定は完了です。
接続手順
Session Managerのマネージドインスタンスのところでインスタンス
を選択し、アクション -> Start Session
を選択すると、ブラウザ上でターミナルの画面が表示されます。
SSH経由であればポートを開放しなくてはならないので、セキュリティ面でとても不安ですが、SSMを利用すれば簡単かつ、セキュアに接続することができました。
Discussion